First-class extents

Adding environments as first-class entities to a language can greatly enhance its expressiveness. But first-class environments rely on identifiers, the syntax of variables, and thus do not mesh well with lexically-scoped languages. We present first-class extents as an alternative. First-class extents are founded upon lexical variables with dynamic extent. They are defined directly on the variables themselves rather than on their syntax. They therefore do not cause variable name capturing problems that plague first-class environments. Moreover, distinguishing variables from locations allows first-class extents to be orthogonal to imperative and control features.

[1]  M.N. Sastry,et al.  Structure and interpretation of computer programs , 1986, Proceedings of the IEEE.

[2]  Daniel P. Friedman,et al.  Embedding continuations in procedural objects , 1987, TOPL.

[3]  James S. Miller,et al.  Free variables and first-class environments , 1991, LISP Symb. Comput..

[4]  D. Friedman,et al.  A Reflective System is as Extensible as its Internal Representations: An Illustration , 1992 .

[5]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[6]  K. Nørmark SIMULATION OF OBJECT-ORIENTED CONCEPTS AND MECHANISMS IN SCHEME , 1990 .

[7]  Uday S. Reddy,et al.  Objects as closures: abstract semantics of object-oriented languages , 1988, LISP and Functional Programming.

[8]  Suresh Jagannathan,et al.  Environments as first class objects , 1987, POPL '87.

[9]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

[10]  Joseph E. Stoy,et al.  Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory , 1981 .

[11]  Samuel N. Kamin Inheritance in smalltalk-80: a denotational definition , 1988, POPL '88.

[12]  Gregory F. Johnson,et al.  Stores and partial continuations as first-class objects in a language and its environment , 1988, POPL '88.

[13]  Jens Palsberg,et al.  A Denotational Semantics of Inheritance and Its Correctness , 1994, Inf. Comput..

[14]  Brian Cantwell Smith,et al.  Reflection and semantics in LISP , 1984, POPL.

[15]  D. H. Bartley,et al.  Revised4 report on the algorithmic language scheme , 1991, LIPO.

[16]  Matthias Felleisen,et al.  Hygienic macro expansion , 1986, LFP '86.

[17]  Jonathan Rees,et al.  Object-oriented programming in scheme , 1988, LFP '88.