CS 3723
Programming Languages 
Spring 2013
  Topics for Final Exam  

The Final Exam is 8 May 2013, 8-10 am, (Note: Starts at 8 am, NOT at 7:30 am.)

The exam will cover selected topics from the whole course as outlined below, with emphasis on topics that came after the last exam, namely Ruby, Postscript, and Prolog


    * = favorite questions.

  1. Translating Tiny Into MIPS Assembler. * Question: For example, specifics about the translation of an addition in Tiny: what extra instructions are included inside the E function of the parser to handle an addition? (I might give you the parser code for E.) The code added to E is independent of the two expressions being added. Examples could look like, say, a*c + (b/14), or x + 9, but the extra code inside E has nothing to do with what is on either side of the "+" in the two previous examples.

    Similar questions could ask for the translation of an if-then-else statement (which is [ ? : ] in Tiny), or a while statment (which is { ? } in Tiny). (You got a similar question on Exam 2 about the translation of an assignment statement.)

  2. Lisp: cons, lisp, and append. Question: Be able to keep straight what each of these three does to two lists.

  3. Lisp: Representation of S-expressions. Question: Give the internal linked list representation of the S-expression ((a b) c (d e f)).

  4. Ruby: Regular Expressions. * Question: Using the objected-oriented version without $ variables. Something similar or related to Recitation 10.

  5. Ruby: Classes. * Question: Something similar or related to Recitation 11.

  6. Postscript: Paths, including clipping paths. * Question: Given a sample program, say what it does and what the output looks like.

  7. Postscript: Rotations and Translations. * Question: Given a sample program, say what it does and what the output looks like.

  8. 1 or 2 questions on Prolog. * Question: Given some facts and rules, describe what one of the rules means (how do you "read" the rule?). Describe the result of invoking a rule.

  9. (Recently added) Recursive-Descent Parsing. Some fairly simple question.

Revision date: 2013-04-23. (Please use ISO 8601, the International Standard.)