Technical issues of separation in function cells and value cells (1988)
19 days ago
- #Programming Languages
- #Namespace
- #Common Lisp
- The paper discusses the technical, philosophical, and political arguments surrounding the adoption of a single namespace (Lisp1) versus distinct namespaces (Lisp2) for functions and values in Common Lisp.
- Common Lisp adopted lexical scoping from Scheme but retained separate namespaces for functions and values, unlike Scheme's single namespace approach.
- The distinction between Lisp1 (single namespace) and Lisp2 (separate namespaces) affects syntax, evaluation rules, and compiler optimizations, with trade-offs in readability, performance, and programming style.
- Macros in Common Lisp present semantic challenges, especially regarding namespace conflicts, but are pragmatically valuable for code abstraction and optimization.
- Transitioning from Lisp2 to Lisp1 semantics would introduce compatibility issues, requiring significant changes to existing code and compiler implementations, with potential impacts on performance and space efficiency.