Course Details

  • Course Number: 16:198:515
  • Course Type: Graduate
  • Semester 1: Fall
  • Credits: 3
  • Description:

    This course covers concepts and techniques used in the description and definition of programming languages, and in the construction of their translators.

  • Category: B (M.S.), B (Ph.D.)
  • Prerequisite Information:

    An undergraduate data structures and algorithms course, and an undergraduate compiler course (or permission of instructor)

  • 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.