---
title: ByteBender Language and Compiler
subtitle: Designing and Implementing a programming language for the Sprockell CPU
showOnCv: true
type: University
abstract: A custom programming language and compiler designed to generate code for the Sprockell processor.

content:
  - src: cover
    filetype: .webp

pdfFiles:
  - kind: report
    file: bytebender

quickLinks: []

keywords: []
supervisors: []
grade: 8
keyFeatures:
  - "Custom Language: Designed for educational purposes with support for multithreading and synchronization."
  - "Frontend: Includes parsing, type-checking and symbol table management."
  - "Backend: Generates machine instructions for the Sprockell processor."
  - "Integration: Executes generated code on the Sprockell simulator."
  - "Concurrency: Supports thread creation, locks and shared memory operations."
tags:
  - Compiler
  - Tooling
  - Haskell
  - Java
---

ByteBender is a custom programming language and compiler developed as part of a university project. It translates high-level code into machine instructions for the <a href="https://github.com/martijnbastiaan/sprockell" target='_blank'>Sprockell processor</a>, a simple Haskell-based CPU designed for educational purposes. The project includes a frontend for parsing and type-checking, a backend for code generation and integration with the Sprockell simulator for execution. The language supports multithreading, synchronization primitives and shared memory operations.

This programming language was created as part of the elective [Concurrency and Compiler Construction (202200192)](https://utwente.osiris-student.nl/onderwijscatalogus/extern/cursus?cursuscode=202200192&collegejaar=2023)
