The aim of the course is to give understanding of how programming languages are designed, documented, and implemented.
course covers the basic techniques and tools needed to write
interpreters, and gives a summary introduction to compilation as well.
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