Compiler Construction
2001-02
Principal lecturer: Dr Alan Mycroft (am@cl.cam.ac.uk)
Taken by: Part IB, Part II (General), Diploma
Syllabus
Past exam questions
Here are various items for the 2001/02 version of this course:
- Lecture notes in Postscript and PDF form (as issued in lectures):
part 1
(or as PDF),
Dr Norman's additional notes
(or as PDF) and
part 2
(or as PDF).
N.B. the printed notes for section 7.1 (tree
grammars for code generation) inadvertently include the algorithm
(i.e. line 8 on page 38 to end of page 40) which is no longer part of the
course.
N.B. The concept of generating code using
tree grammars (i.e. the rest of section 7.1) remains part of the course.
- ERRATA.
- Lambda interpreter in ML.
Instructions: read the file! You can run the examples by loading ML and
saying use "lambda.ml"; then
e.g. try(exampletotry); or try(exampleFac7);.
- Makefile and example
Lex and
Yacc sources.
Instructions: Download these three files to an empty directory and say "make".
Run it by saying "calc". Input lines are things like "1+2*3" "(1+2)*3" etc.
- Makefile and
ZIPped sources for Jlex/cup example.
Instructions: Download both these files to an empty directory and say "make".
Then look at minimal.lex and minimal.cup (note that these
are the only user-written files (the rest is Java admin)).
Run it by saying "java parser". Input lines are things like "1+2*3;" "(1+2)*3;" etc.
Thanks to Dr Norman for this example.
(N.B. I've checked that this works on the linux PWF -- so it's your problem, not mine
or Dr Norman's, if it doesn't work elsewhere.)
IB | II(G) | Dip
Provisional information only
Generated at 11:07.58 on 19/9/2001