|
CS 3723
Programming Languages
Fall 2013 |
Final Exam
Topics and Review
|
Note: There won't be any further
changes to this page.
Topics Omitted:
- No finite automata, no NFAs, no DFAs, no subset algorithm,
no ε-moves, etc. No NFAs to implement a regular
expression. All that stuff omitted.
(But regular expressions in Ruby are included.)
- No introductory material, no course overview, etc.
- No Shift-reduce parsers.
- No C/C++/Java comparisons, except for storage management.
Topics Covered and Sample Questions or Types of Questions:
- Grammars (CF grammars, derivations, parse trees):
(Some of this topic comes up in other parts.)
- Recursive-descent Parsers:
(Some of this topic comes up in other parts.)
- MIPS assembly language:
(Some of this topic comes up in other parts.)
- Tiny language:
(Some of this topic comes up in other parts.)
- Tiny compiler:
Type of Question: A question about translating a Tiny statement
such as if-then-else (that is
[ ? : ])
or a while (that is { ? }) or
assignment or something else to MIPS assembly language.
- Lisp:
Type of Question: Simple Lisp expression to evaluate.
(For example, at the start of
Workpage 3.)
Type of Question: Simple recursive Lisp function to write.
(For example, like the work of problems in
Workpage 2.)
Type of Question: Recursive Lisp function involving
a list to write. (For example, like the work of problems at the end of
Workpage 3.
I may say that you must use car
and cdr.
Special Note: To write Lisp, you need to get into
"Lisp mode" as a way of thinking. Students frequently write
things like car(x) in place of the correct
(car x) on exams, even though they surely know better.
- Ruby (emphasis on regular expressions in Ruby):
Type of Question: Something involving regular expressions.
Perhaps give you a Ruby program involving regular expressions
and ask you what it does, or ask you to write such a program.
- Postscript:
Type of Question: Something involving centering or
right-justifying some text using the stringwidth function.
Type of Question: Perhaps something involving
translations and rotations.
- Activation Records:
See the page: Activation Records
Type of Question: I give you a specific simple MIPS
function and a specific call to use with this function.
You show each step of how an activation record would be used
for the call, including inserting actual parameters, doing the call,
allocating the activation record, handling the return address,
handling the return value, doing the actual return,
and using the final return value.
- Storage Management:
Type of Question: Some question based on the material in
the Storage Management page.
- Prolog (If we get to prolog -- hey, we did!):
Type of Question: Perhaps simple question related to the
first example (geneology).
We also covered (will cover, hopefully!) two other examples:
suppliers-supplies, and CS courses and data.
Revision date: 2013-12-05.
(Please use ISO
8601, the International Standard.)
|