---
title: ByteBender Language and Compiler
subtitle: Het ontwerpen en implementeren van een programmeertaal voor de Sprockell CPU
showOnCv: true
type: University
abstract: Eigen programmeertaal met multithreading, synchronisatieprimitieven en shared memory, die wordt gecompileerd naar machine-instructies voor de Sprockell-processor, een eenvoudige educatieve CPU. De compiler verzorgt parsing, typechecking en codegeneratie en voert de gegenereerde code uit in de bijbehorende simulator.

content:
  - src: cover
    filetype: .webp

pdfFiles:
  - kind: report
    file: bytebender

quickLinks: []

keywords: []
supervisors: []
grade: 8
course:
  name: Concurrency and Compiler Construction (202200192)
  link: https://utwente.osiris-student.nl/onderwijscatalogus/extern/cursus?cursuscode=202200192&collegejaar=2023
keyFeatures:
  - "Taal met threads, locks en gedeeld geheugen."
  - "Frontend: parsing, typechecking en symboltabellen."
  - "Backend: codegeneratie voor de Sprockell-processor."
  - "De gegenereerde code draait op de Sprockell-simulator."
tags:
  - Compiler
  - Tooling
  - Haskell
  - Java
---

ByteBender is een programmeertaal en compiler die ik voor een vak heb gebouwd. De compiler vertaalt code naar machine-instructies voor de <a href="https://github.com/martijnbastiaan/sprockell" target='_blank'>Sprockell processor</a>, een eenvoudige CPU in Haskell die voor onderwijs wordt gebruikt, en de gegenereerde code draait in de bijbehorende simulator. De compiler doet parsing, typechecking en codegeneratie, en de taal zelf ondersteunt threads, locks en gedeeld geheugen.

