1. What is the difference between an actual and formal parameter?

  2. With which of the parameter passing techniques could you implement a swap function? (A swap function exchanges the values of the actuals.)

  3. Which of the parameter passing techniques entail stack allocation for formals?

  4. Write a procedure definition and code that calls it that runs differently with pass by value and pass by reference.

  5. Write a procedure definition and code that calls it that runs differently with pass by value result and pass by reference.

  6. Suppose f is a procedure defined to take one parameter of type int by value result. Which of the following calls might result in an error? If your answer is "it depends," explain why.
  7. Discuss one advantage of pass by value over pass by reference.

  8. Discuss one advantage of pass by reference over pass by value.

  9. Pass by name is normally implemented such that the actual parameter is reevaluated each time it is used in the procedure. What implementation shortcut allows more efficient implementation in pure functional languages, and what feature of pure functional languages permits this shortcut?

  10. What is an L-value?

  11. In C++, is it possible for a function to return an L-value?