Exam 3 Study Guide

Introduction

This guide doesn’t go much beyond my earlier instructions, which told you to study Lisp, and chapters 8 and 14 of the Sebesta book.  But you can check this over to make sure you are studying the right things.

LISP Programming

This will not be an open book exam.  You will be given some [ Lisp reference material ] to use during the exam instead.

You should be able to translate simple algorithms into Lisp, be able to tell what Lisp will print for various input lines, be able to draw box and pointer diagrams, …

Sebesta Chapter 8

Parameter Passing Methods: Call by name, call by reference, call by value.

Know how parameters are passed in Java and C/C++.  How is call by reference accomplished in C, which operates strictly with call by value?  How are parameters passed in lisp?  What happens if you declare a variable to be “special” in lisp?  What are C++ templates, and what is the problem that they solve? (Generic subprograms.)

Linking separately-compiled modules in C/C++.  The role of the linker, how symbols are resolved.

Sebesta Chapter 14

The only new item in here that you are responsible for is Lambda expressions.  Don’t worry about Scheme, ML, or Haskell syntax.  Concentrate on Common Lisp; use the other languages as reinforcements for concepts we have covered in Common Lisp.