Final Exam
The Final Exam is tied with Exam #3.
The Final Exam consists of two parts, one take home and the other in-class.
Final Exam: Part I
Suppose you are asked to implement boolean literals
true
and false
in your interpreters (both
Hobbes and Schobbes). +
should compute the "or" of two
booleans; *
should compute the "and" of two booleans;
==
should compare if they are equal.
Write a 2–3 page LaTeX paper describing how you would go about this. You do not have to give any code (and probably shouldn't unless you actually do implement this feature). Instead describe the steps you'd take.
Some things to consider:
- What do you start with? What's your overall workflow? (Hint: what do you always start with? What is your overall workflow in the past?)
- What changes do you have to make to the Schobbes front end?
- What changes do you have to make to the Hobbes interpreter?
- What else has to change?
Don't worry about specific changes. That is, don't describe the
code necessary to get +
to work with booleans.
Describe what has to change, and give a little indication
of how (e.g., "add another method for the multiple dispatch").
Final Exam: Part II
Part II is a normal in-class exam, consisting of short- and long-answer questions based on these topics as covered all semester:
- Language design (efficiency versus flexibility)
- Interpreters versus compilers
- Programming paradigms: procedural, object-oriented, functional,
and logical.
- Hint: come up with problems that would be easy to solve in one paradigm but not the others.
This part will be worth 10–25 points.