Describe first-class closures.
Understand the meaning of the adjectives static and dynamic in the context of programming languages.
Discuss scope as a type of binding from variable reference to declaration.
Differentiate between static and dynamic scoping.
Discuss the relationship between the lexical layout of a program and the representation and structure of a referencing environment for that program.
Define lexical addressing and consider how it obviates the need for identifiers in a program.
Discuss program translation as a means of improving the efficiency of execution.
Learn how to resolve references in functions to parts of the program not currently executing (i.e., the FUNARG problem).
Understand the difference between deep, shallow, and ad hoc binding in passing first-class functions as arguments to procedures.1
1. In this text we refer to subprograms and subroutines as procedures and to procedures that return a value as functions.
13.58.49.27