This course examines the fundamental theory and practice of implementing today's programming languages. Students
should emerge with a good appreciation for the implementation issues and strategies behind making programs in high
level programming languages work correctly and efficiently on a target machine. A major part of the course is the
practical experience of implementing various phases of a compiler for a small object-oriented programming language.
Students learn translation methodology that is useful in many other situations in addition to compilation, including
command interpreters, report-generating systems, programmable applications, configuration file handling,
preprocessors, debuggers, static program analysis tools, testing tools, virtual machines, integrated development
environments, and many other software engineering tools.
Course Syllabus - |