Database Systems

Team Project: The Construction of an SASL-Compiler

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.