ByteBender Language and Compiler

University Project

Designing and Implementing a programming language for the Sprockell CPU

Custom programming language with multithreading, synchronization primitives and shared memory, compiled to machine instructions for the Sprockell processor, a simple educational CPU. The compiler covers parsing, type checking and code generation, then runs its output in the accompanying simulator.

Report


PDF Preview

About the project


ByteBender is a programming language and compiler I built as a course project. It compiles to machine instructions for the Sprockell processor, a simple Haskell-based CPU used for teaching, and the generated code runs in the accompanying simulator. The compiler does parsing, type checking and code generation, and the language itself supports threads, locks and shared memory.

This project was created as part of Concurrency and Compiler Construction (202200192)

Grade: 8

Key features


  • Language with threads, locks and shared memory.
  • Frontend: parsing, type checking and symbol tables.
  • Backend: code generation for the Sprockell processor.
  • Generated code runs on the Sprockell simulator.