Description
To reveal the general concepts and theoretical foundations of programming language translation and implementation. Emphasis will be placed on imperative languages.
Recommended for all students interested in programming languages and techniques used to build software tools (i.e., debuggers, browsers).
Credits: 4†
01:198:211 or 14:332:331; 01:198:314.
Please note that courses for which a student has received a grade of D cannot be used to satisfy prerequisite requirements.
Semesters Offered:Spring
Topics: Compilers
Methods of language specification
Lexical analysis
Top-down (recursive descent) and bottom-up (LR) parsing methods
Semantics-driven translation
Code generation
Symbol tables and intermediate code forms
Procedures and run time stacks
Recursion implementation
Code Optimization
Expected Work: Work will consist primarily of a large programming project, usually the implementation of a working compiler for a simulated abstract machine. Some additional written homework will be assigned. Previous knowledge of C or C++ will be useful.
Exams: A midterm and a final examination
† - Can be taken for graduate credit.