Programming Language Technology
The aim of the course is to give understanding of how programming languages are designed, documented, and implemented.
The course covers the basic techniques and tools needed to write interpreters, and gives a summary introduction to compilation as well.
Those who have passed the course should be able to: Define the lexical structure of programming languages by using regular expressions, explain the functioning of finite automata, and implement lexical analysers by using standard tools. Define the syntax of programming languages by using context-free grammars, explain the principles of LL and LR parsing, and implement parsers by using standard tools. Define and implement abstract syntax. Master the technique of syntax-directed translation and its efficient implementation in their chosen programming language. Formulate typing rules and implement type checkers. Formulate operational semantic rules and implement interpreters. Write simple code generators.