Team Project: The Construction of an SASL-Compiler

- Readers
- Torsten Grust • Tim Fischer • Nico Faden
- Meetings
- Mon 12:15-13:45, B305.1 (Sand 13)
Meetings
We will have (almost) weekly meetings
- at Sand 13, 72076 Tübingen in room B305.1
- on Mondays 12:15-13:45 (14.04, 28.04., 05.05., 12.05., 19.05., 26.05., 02.06., 16.06., 23.06.).
Participation is obligatory (attendance is not optional like in lectures).
Project Description
What happens when you let the compiler for your favourite language loose on source code? Here you will find an answer for the non-strict functional programming language SASL.
Based on a detailed tutorial, you will build a complete compiler (including lexer, parser and optimizer) yourself, giving you a feel for what has to happen before the programs of a higher-level language can actually be executed.
The code that your compiler will produce will be executable on a simple virtual machine (SK-Reduction Machine), which will also be part of your effort.
In the end, you will have a simple but complete implementation of a compiler and virtual machine for SASL.
Goal
Complete implementation of a compiler and a virtual machine for SASL including
- lexer, parser, optimizer
- simple execution machine (SK-Reduction Machine)
Content
- the functional programming language SASL
- compiler construction
- design patterns for compiler construction
Technical Fundamentals
- Knowledge of at least one programming language, e.g., Haskell / Java / C++ / C
- Knowledge of a functional programming language (Scheme/Racket, Haskell, Scala, …) is not necessary, but an advantage.