Lab homework assignments from a class on Compiler Design from the ETHz (spring 2018)
Find a file
2020-01-15 23:49:50 +01:00
.settings Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
benchmarks Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
docs Documentation 2020-01-15 23:42:51 +01:00
HW0 Homework 0 2020-01-15 22:17:50 +01:00
HWC Homework C 2020-01-15 22:39:02 +01:00
HWD Homework D 2020-01-15 22:39:17 +01:00
javali_tests Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
src/cd Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
test/cd Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
.classpath Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
.gitignore Homework 1 2020-01-15 22:29:20 +01:00
.project Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
build.xml Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
Grade.txt Add final grade 2020-01-15 22:40:05 +01:00
Javali tests.launch Homework B (benchmarks) 2020-01-15 22:38:07 +01:00
README.md Update 'README.md' 2020-01-15 23:49:50 +01:00

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.