Information Technology 460
ITEC 460: Translator Design and Construction
Prerequisites: ITEC 352; and either ITEC 380 or ITEC 420; or permission of instructor.
Credit Hours: (3)
Logical design of and construction techniques for compilers and interpreters. Students will complete a major project implementing a compiler or an interpreter.
Detailed Description of Content of Course
1. Overview of language translation and interpretation
2. Regular expressions, finite state machines, and scanning
4. Top-down and bottom up parsing
5. Tools for generating lexical analyzers and parsers
6. Code generation: control structures, storage management, data types, procedures, optimization
7. Symbol tables
Detailed Description of Conduct of Course
Course material is primarily covered in lecture and in the student's reading of the text. A large amount of the student's time outside of class is spent designing and implementing a compiler. The language that is compiled may be specified by the instructor or designed by the student.
Goals and Objectives of the Course
Students who complete the course will be able to:
1. Analyze and write regular expressions and finite automata for a given language and write software that recognizes the language.
2. Analyze and write a grammar for a context free language and write a recursive descent parser for a language.
3. Describe and trace the operation of top-down and bottom-up parsing algorithms and describe their relative strengths.
4. Use tools to create a compiler for a given language.
Graded assignments include at least one in-class exam, a final exam, problem sets, and the compiler. Evaluation of the compiler will be based on the proportion of the source language that is successfully translated and on the quality of its implementation.
Other Course Information
Review and Approval
October 1, 1991 Updated for 1991-92 Ivan B. Liss, Chair
May 12, 1994 Reviewed for 1994-95 Edward G. Okie, Chair
Oct. 30, 1996 Prerequisite change Edward G. Okie, Chair
Sept. 25, 2001 Updated John P. Helm, Chair
Revised: June 1, 2012