This page has been validated.

Contents

Introduction 1
Modularity 1
LISP-like Languages 2
Structure of the Paper 2
Part Zero — LISP and Interpreters 4
Recursion Equations 4
An Interpreter for LISP Recursion Equations 7
Part One — Variable Scoping Disciplines 13
Procedures as Data 13
Local Procedures 18
Lexical Scoping 21
Top Levels versus Referential Transparency 25
Part Two — State 31
Decomposition of State 31
Side Effects and Local State 32
Side Effects in the Interpreter 34
Equipotency of SETQ and RPLACA 38
Side Effects and Equality 39
Dynamic Scoping as a State-Decomposition Discipline 43
Summary 51
Acknowledgements 52
Notes 53
{Can George do Better?} 53
{Debugging} 53
{Driver Loop with Side Effects} 54
{EVALQUOTE} 55
{Gaussian} 56
{LABELS} 57
{LABELS with Side Effects}* 59
{Primitive Operators} 60
{PROGN Wizadry} 61
{QUOTE Mapping} 63
{QUOTE Shafts the Compiler} 63
{RPLACA Can Alter CAR Instead} 64
{S-expression Postulates and Notation} 65
{This ain't A-lists} 66
{Value Quibble} 67
{Weber} 68
{Y-operator} 70
References 71