COMP 3290 Introduction to Compiler Construction ROASS Fall 2007 Instructor

  • 格式:pdf
  • 大小:115.70 KB
  • 文档页数:2

Instructor
Gord Boyer
E2–413 EITC
474-8456
gboyer@cs.umanitoba.ca
Office Hours as posted on the office door and the web site. Subject to periodic
change.
Web Page
http://www.cs.umanitoba.ca/~comp3290/
Consultation
In your instructor’s office during listed office hours or by appointment.
Course Description
Introduction to the standard compiler phases: scanning, parsing, symbol-table management, code generation, and code optimization. The emphasis is on the simpler techniques for compiler construction such as recursive descent. Not to be held with the former 074.329 or 074.333. Prerequisites: COMP 2140 (or the former 074.214 or
074.206) (C) or COMP 2060F (or the former 074.206F) (C) and COMP 2280 (or the former 074.222 or 074.240) (C). COMP 2160 is recommended.
References
There is no prescribed textbook for this course. Many reference books are available in the library. An annotated list of available textbooks will be provided on request.
Grading
The course will be graded in three components:
Assignments 4–5 assignments (weighted equally) worth 35%
Term Test A short (~1 hour) term test worth 15%
Exam A 2-hour exam worth 50%
Assignments
Each assignment will include a significant coding effort and may include written questions. Students will work with a C language interpreter system provided by the instructor and will make changes/additions to the system to learn how scanning, parsing, and interpretation work in practice. Assignments must be handed in on (or before) the due date specified in the assignment. Late assignments will be accepted with a penalty of 25% of the total value of the te assignments will not be accepted once the sample solutions have been posted.
Term Test
The term test will be scheduled during class time. We will schedule the test such that it provides the least conflict with other tests, assignments, Co-Op interviews, etc. (an announcement will be posted when the date is set). No make-up test will be provided; if you do not write the test, the test percentage will be added to your exam component. (Note: you do not have the option of dropping your term test mark, so don't ask.)
Academic Dishonesty
Plagiarism in the assignments or any form of cheating on examinations is subject to serious academic penalty. If you are not sure what constitutes academic dishonesty consult the general calendar. Understand that this does not preclude discussion during the high-level design phase of your assignments. Joint coding efforts, etc. however, are forbidden. There are guidelines in the University’s general calendar that deal with academic dishonesty, which can be found at
.umanitoba.ca/calendar08/regulations/plagiarism.asp. Note that, as in all CS courses, to receive credit, each assignment must include a signed copy of the honesty document, which is available at: http://www.cs.umanitoba.ca/newsite/honesty.htm Course Outline (subject to time constraints)
1.Introduction
•Motivation & Terminology
•Compilation vs. Interpretation
•Separate Compilation & Linking
2.Scanning
•Ad-hoc techniques
•Regular Expressions and FSM scanners
•The Lex/Flex scanner generator
3.Parsing
•Grammars, Parsing and related Data Structures
•Recursive Descent Parsing
•LR parsing
•Operator Precedence Parsing
•The YACC/Bison parser generator
pilation Basics (overview)
•Semantic Analysis
•Code Generation
•Introduction to Optimization
5.Interpretation
•Handling Declarations
•Interpretation of Control Structures
•Interpreting Expressions & I/O Statements
6.Link Editing
•External References
•Address Constants
•The Linking Process。