Programming Language Technology
About
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.
Prerequisites and selection
Entry requirements
The requirements for the course is to have successfully completed courses corresponding to 60 credits in the subject of Computer Science, including
7.5 credits in programming (for example DIT142 Functional programming, DIT952 Objektorienterad programmering and design, or equivalent);
7.5 credits in data structures (for example DIT960 Data structures, DIT725 Logic, algorithms and data structures or equivalent).
English: English 6/English B or the equivalent level of an internationally recognized test, for example TOEFL, IELTS.
Selection
Selection is based upon the number of credits from previous university studies, maximum 165 credits.