dst@dst.boltz.cs.cmu.edu (Dave Touretzky) (12/02/89)
A new tech report is available on evaltrace notation: Visualizing Evaluation In Applicative Languages David S. Touretzky and Peter Lee School of Computer Science Carnegie Mellon University Pittsburgh, PA 15213-3890 Report CMU-CS-89-198 In this article we present a technique for visualizing evaluation in applicative languages that helps to graphically explain a number of basic concepts, including lexical vs. dynamic scoping, the true nature of the EVAL/APPLY duality, closures, local and special variables, and macro expansion. Called ``evaltrace notation,'' it appears in a recent textbook by the first author and has been employed in several courses at Carnegie Mellon. Although our discussion focuses primarily on the notation itself, we also provide some insights into the implementation of Lisp and Scheme interpreters and the differences between the lexical and dynamic scoping disciplines. It is our hope that evaltrace notation will be widely adopted by Lisp educators. In support of this, we have made available a set of LaTeX macros to allow others to produce evaltrace diagrams similar to the ones that appear here. ================ This report is available without charge by writing to the School of Computer Science at the address above, or by sending email to Ms. Catherine Copetas: copetas+@cs.cmu.edu. Remember to ask for report number CMU-CS-89-198. The LaTeX macros mentioned in the abstract are available via anonymous FTP; see the tech report for retrieval instructions.