Description
This course covers concepts and techniques used in the description and definition of programming languages, and in the construction of their translators.
Alex Borgida, Ulrich Kremer, Barbara Ryder
Credits: 3
Category: B
Prerequisites: 16:198:513, and an undergraduate compiler course (or permission of instructor)
Semesters Offered:Fall
Topics: Topics chosen from among:
* LR parsing techniques
* syntax-directed translation, attribute grammars;
* type systems, type checking and polymorphism;
* data abstraction;
* object-oriented, functional and logic programming paradigms (using Prolog, SML/Scheme and C++/Java);
* language semantics (axiomatic, denotational);
* exception handling;
* topics in compiling for parallel architectures;
* machine independent optimization and compile-time analysis
Expected Work: Written homework, with three programming assignments. A final examination, and possibly a midterm.