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:
  1. Grammars (CF grammars, derivations, parse trees):
    (Some of this topic comes up in other parts.)


  2. Recursive-descent Parsers:
    (Some of this topic comes up in other parts.)


  3. MIPS assembly language:
    (Some of this topic comes up in other parts.)


  4. Tiny language:
    (Some of this topic comes up in other parts.)


  5. 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.


  6. 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.


  7. 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.


  8. 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.


  9. 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.


  10. Storage Management:
    Type of Question: Some question based on the material in the Storage Management page.


  11. 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.)