Computer Science 3675
Section 001
Fall 2006
Practice questions for quiz 4

  1. What is the purpose of the static link in a frame in the run-time stack?

  2. What is the purpose of the dynamic link in a frame in the run-time stack?

  3. What information is stored in a function closure?

  4. In C, you are not allowed to write a function inside another function. But C does allow you to treat a function as a value. Does C need to use function closures?

  5. What is one important motivation for including exception handling in a programming language?

  6. Are backtracking and exception handling the same thing? For example, can you use the exception handling mechanism of Java to do backtracking?

  7. Using backtracking, write a Cinnameg program fragment that will print all solutions (x,y) to equation xy - 2x2 + y = 10, where x and y are both integers in the range 0,...,100. Do not use a loop or recursion. Your program fragment can fail when it is done.

  8. True or false.

    1. When a variable occurs in a logic programming goal, the interpreter is being asked whether that goal holds for all values of the variable.

    2. In logic programming, a variable in an axiom might be used as an input variable sometimes, and as an output variable at other times, when computation uses that axiom.

  9. Unification is a form of pattern matching. Which of the following is not a characteristic of unification?

    1. Unification never changes the binding of a bound variable.
    2. Unification is symmetric; unifying A with B has exactly the same effect as unifying B with A.
    3. Unification is very slow, and is only used rarely during computations of logic programs.
    4. Unification can bind unbound variables.