---
# System prepended metadata

title: Homework 4 - Kompilatorer backend

---

# Homework 4 - Kompilatorer Del 2: Backend
Denna delen av läxan handlar om att implementera semantic analysis av era språk samt en backend. Denna backend kan vara i form av att kompilera till något annat språk såsom t.ex C eller generera maskinkod direkt. Om ni vill generera maskinkod kan ni använda er av något bibliotek som LLVM eller Cranelift.

Ni har till och med nästa övning **(3e November)** på er att göra färdigt er kompilator eller interpreter.

## Läxa
1. Skriv färdigt era parsers
2. Implementera semantic analysis
    * Variabler defninerade
    * Typer korrekt (Om ni har typer)
    * Etc..
3. Implementera en backend till er kompilator
### Alternativ 1 (Kompilator):
Kompilera till maskinkod själv eller genom t.ex LLVM eller Cranelift.
### Alternativ 2 (Transpiler):
Kompilera till ett annat språk som i sin tur går att kompilera (t.ex C)

## Resurser
* [LLVM Guide](https://mukulrathi.com/create-your-own-programming-language/llvm-ir-cpp-api-tutorial/) Genomgång av LLVM IR och LLVMs API
* [Officiell tutorial från LLVM](https://llvm.org/docs/tutorial/MyFirstLanguageFrontend/LangImpl03.html) 


