In connection with the exam

Questions will be answered here.
What does "top-down" and "bottom-up" mean?
These are the traditional terms for two different parsing techniques. They refer to the way in which the parser tree is built during the parsing of the input string. I have used these terms at the lectures, but the book has chosen other ways of naming the techniques. In the book, the corresponding terms are "predictive" (Section 3.2) and "LR" (Section 3.3).

How much are you supposed to cover during the presentation?
At the final lecture, I will give a sketch of how all questions may be organized. It is important to point out that the speed you use at the exam should be much higher than the speed used at the lectures. At the lectures, material is explained to students who, except for preparation, do not know the material in advance and should learn it. At the exam, the material is presented to professionals with the purpose of demonstrating hos much the student knows. Choose interesting material, i.e., do not give too much of an introduction and do not dwell on trivial special cases.

How do you ensure that the code you put on the projector is written by the student you are examinating?
Obviously, I can't. This is one reason why all group members are responsible for all code, independent of who has written it. You must know the code written by fellow group members as well as your own.

I think what the book states about code generation is very different from your coverage at the lectures!
That's right; the approach is somewhat different. For the oral exam, my recommandation is that you use the lecture material on code templates and stack frame as the starting point

What can you talk about with respect to optimization?
The purpose of optimization and the different forms of optimization is a good starting point. Peep-hole optimization ought to be covered, including termination of the process (termination function); it could be an advantage to demonstrate this termination argument on an interesting example, i.e., an example which among other things contain patters which actually increase the size of the code. It is also fine to give a brief account of the register allocation problem at the end, even though this is a question in its own right.


Last modified: Tue Apr 24 10:30:30 CEST 2007
Kim Skak Larsen (kslarsen@imada.sdu.dk)