CS 3723
Programming Languages 
Spring 2013
  Topics for Exam 2  

The exam is 8 April 2013.


    * = favorite questions.

  1. Recursive-Descent Parsers. * Question: I might ask you to write a portion of a RD parser or to comment on a given RD parser. Or how about: Why can't we use a grammar rule like E ---> E + T | T in recursive descent? What did we do to take care of this problem?

  2. MIPS Assembler Language. Question: Explain how MIPS (using our conventions) might take numbers already in variables a and b, add them, and leave the result in a variable c. (I would not necessarily expect you to remember all the details, but definitely to have the sequence of steps correct.)

  3. Translating Tiny Into MIPS Assembler. * Question: I may ask you some specifics about the translation of one of the main constructs we dealt with: assignment, while loop, or if-then-(optional)-else. (I might give you parially completed compiler code for the construct and ask you to complete it.)

  4. Basics of Lisp. Question:Ask for answers to a few questions like those in Question 9.1 of Recitaiont 9.

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

  6. Writing Simple Recursive Lisp Functions. * Question: Write a recursive Lisp function with one parameter n that will add n terms of a series (like the harmonic series we had), or multiply n terms of a product (like raising to a power). Call this function with n = 10.

  7. Recursice List Processing in Lisp. * Question: Write a recursive Lisp function involving a list that will carry out some task on the list, as we've seen with various example functions and problems.

  8. C++, C, and Java. Question: What design goals did Stroustrup have for C++ in addition to adding object-oriented features?

  9. Storage Allocation. Question: Describe the two things that can go wrong with storage allocation in C/C++ if a user does the allocation/deallocation him/herself.

  10. Ruby. Introductory material. Question: Is it permissible to use "RUBY" to designate Ruby?


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