Team Project: The Construction of an SASL-Compiler

Lab Course  INFM2110
Readers
Denis HirnTim FischerLouisa LambrechtBjörn BambergTorsten Grust

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.