|

|
Wentworth
Institute of Technology
|
|
Computer
Science Department
|
|
Semester
Year
|
|
Comp603
Compiler Design
|
|
Instructor:
|
Department Office:
|
|
Dr. Karina Assiter |
Dobbs
|
|
Dobbs 3-303
|
|
|
617.989.4835
|
|
|
assiterk@wit.edu
|
|
|
|
|
|
|
|
|
|
|
|
|
Please select the
area of your interest:
|
|
|
|
|
|
|
|
|
|
|
|
|
Course Description
|
|
This course covers the principles and techniques used in the design of
compilers. Compilers are the programs that translate code written in
higher-level languages such as C++ into executable code. Topics include
lexical and semantic analysis, parsing, translation, code generation and
optimization.
|
|
|
|
|
|
|
|
|
|
|
Course Goals and
Learning Objectives
|
|
Students will be:
·
Competent in
programming language design and implementation.
·
Aware of concepts of
abstract language classification, context free grammars, symbol tables,
code optimization and parsing techniques.
·
Understand language
and parsing topics covered in pre-requisite courses, such as programming
languages, Introduction to Algorithms and Discrete Mathematics.
·
Competent in
large-scale software planning and design.
·
Competent in
communicating and negotiating on a team-based project.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Meeting Type and
Duration
|
|
|
|
Class Type
|
Hours
|
|
Recitation
|
3
|
|
Lab
|
2
|
|
|
|
|
|
|
|
|
|
|
|
Pre-requisite/Co-requisite
|
- Comp433 - Assembly Language
- Comp310 - Object-Oriented Data Structures
- Comp501 - Introduction to Programming
Languages
|
|
Students must have successfully completed the prerequisite(s) in order to
take this course.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Suggested Readings
|
- Algorithms for Compiler Design, O.G. Kakde, Laxmi Publications, 2003.
- Engineering a Compiler, K.D. Copper & Linda Torczon, Elsevier
2004.
- Programming Language Processors in Java, D.A. Watt & Deryck F. Brown, Pearson
Education Limited, 2000.
|
|
|
|
|
|
|
|
|
|
|
|
|
Attendance Policy
|
|
Regular attendance at every class is expected, and anyone who fails
to meet this requirement may be requested to withdraw from Wentworth. In
addition students with poor attendance may be withdrawn from the class with
a grade of "WA". The attendance policies are more fully explained
in the Wentworth Catalogue. You are responsible for all material given in
class as well as in assigned readings.
|
|
|
|
|
|
|
|
|
|
|
Assignments/Submitted
Work/Late Work
|
|
The course will consist of designing a compiler (a large
program) to translate programs written in a class-specified language to
executable code. Therefore, assignments for the course will be the results
of the completed phases of the project:
1. Language specification
2. Lexical Analyzer (depends on language
specification)
3. Syntactic Analyzer (depends on lexical
analyzer)
4. Semantic Analyzer. (depends on Syntactic
analyzer)
5. Code Generation (depends on Semantic analyzer)
6. Interpretation (depends on code generation)
Each phase of compiler design depends on the results of the previous
phase so it is imperative that students submit assignments ON TIME.
|
|
|
|
|
|
|
|
|
|
|
Grading and Student
Evaluation System
|
- Language Specification - 10%
- Lexical Analyzer - 15%
- Syntax Analyzer - 15%
- Semantic Analyzer - 15%
- Code generator – 15%
- Interpreter – 10%
- Exams (2) - 20%
|
|
|
|
|
|
|
|
|
|
|
Topics
|
|
|
|
|
|
Week
|
Topics
|
Readings
|
|
1
|
Introduction
|
|
|
2
|
Language Specification
|
|
|
3
|
Syntactic Analysis
|
|
|
4
|
Lexical Analysis
|
|
|
5
|
Grammers
|
|
|
6
|
Parsing
|
|
|
7
|
Semantic Analysis (contextual Analysis)
|
|
|
8
|
Code Structure
|
|
|
9
|
Type checking
|
|
|
10
|
Storage management
|
|
|
11
|
Code Generation
|
|
|
12
|
Interpretation
|
|
|
13
|
Error Handling
|
|
|
14
|
Code Optimization
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|