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

Topics covered:
1. Overview of language translation and interpretation
2. Regular expressions, finite state machines, and scanning
3. Grammars
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.


Assessment Measures

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


None.

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