Lab homework assignments from a class on Compiler Design from the ETHz (spring 2018)
.settings | ||
benchmarks | ||
docs | ||
HW0 | ||
HWC | ||
HWD | ||
javali_tests | ||
src/cd | ||
test/cd | ||
.classpath | ||
.gitignore | ||
.project | ||
build.xml | ||
Grade.txt | ||
Javali tests.launch | ||
README.md |
Compiler design homework assignment
The goal is to create a compiler from a subset of Java (JavaLi) to 32bit Intel assembly. The structure is the following:
- HW0: write an assembly program that reads numbers (not graded). PDF
- HW1: implement a code generator that translates assignment statements to IA32. PDF
- HW2: construct a lexer (lexical analyzer) and a parser (syntax analyzer) for the complete JavaLi programming language. PDF
- HW3: develop a semantic analyzer. PDF
- HW4: build a IA32 back-end for the compiler, a generator of IA32 for the complete JavaLi language. PDF
- HWB: implement as many optimizations as possible (focusing on speed and correctness). PDF
- HWC: review the code of other teams for HW1 and write up a report. PDF
- HWD: review the code of other teams for HW4 and write up a report. PDF
Follow the commit history to obtain the code at the end of each assignment.
License
Copyright (c) 2018 Carlos Galindo, Levin Moser, teaching group of Compiler Design (ETH Zürich). All rights reserved.