OrganisationExercisesTools and SupportForum

Exercises Compiler Construction, WS 2012/2013


Information on the tools we use in this course can be found on the tools page.

Homework policy

Programming is a creative process. Individuals must reach their own understanding of problems and discover paths to their solutions. During this time, discussions with friends and colleagues are encouraged, and they must be acknowledged when you submit your written work. When the time comes to write code, however, such discussions are no longer appropriate. Each program must be entirely your own work!

Do not, under any circumstances, permit any other student to see any part of your program, and do not permit yourself to see any part of another student's program. In particular, you may not test or debug another student's code, nor may you have another student test or debug your code. If you can't get code to work, consult the teaching assistant!

You may look in the library (including the internet, etc.) for ideas on how to solve homework problems, just as you may discuss problems with your classmates. All sources must be acknowledged.

The standard penalty for violating these rules on one part of one assignment is to receive a zero for the entire assignment. In case of repeated violations you will not be able to finish this course successfully.

Homework solutions must be neat and well organized. This includes commenting of code as well as following code conventions.

Late homework submissions will not be accepted.

The above policies were adapted from policies used by Norman Ramsey at Purdue University in Spring 1996.


Announcements regarding the exercises will be posted to the Compiler Construction forum.

Exercise sheets

Exercise sheets were available here during WS2012/2013.


The compiler project will follow the setup of the compiler construction course at UCLA which is taught by Jens Palsberg. On their course homepage, you will find grammar specifications, interpreters and example files for each step of the project. Beware: We will use a slightly different MiniJava grammar (and a different parser generator)!

Slides and Material

DateMaterialLast update
2012-10-25Organisation, Tools, SableCC, Visitor Pattern2012-10-25
2012-11-08Polyglot C/OCaml Hello-World Program2012-11-15
2012-11-15Example Eclipse project based on the article on concrete-to-abstract syntax transformations in SableCC.2012-11-15