ACM Home Page
Please provide us with feedback. Feedback
Environments as first class objects
Full text PdfPdf (1.18 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Munich, West Germany
Pages: 98 - 110  
Year of Publication: 1987
ISBN:0-89791-215-2
Authors
D. Gelernter  Yale University
S. Jagannathan  Massachusetts Institute of Technology
T. London  AT&T Bell Laboratories
Sponsor
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 7,   Downloads (12 Months): 34,   Citation Count: 9
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/41625.41634
What is a DOI?

ABSTRACT

We describe a programming language called Symmetric Lisp that treats environments as first-class objects. Symmetric Lisp allows programmers to write expressions that evaluate to environments, and to create and denote variables and constants of type environment as well. One consequence is that the roles filled in other languages by a variety of limited, special purpose environment forms like records, structures, closures, modules, classes and abstract data types are filled instead by a single versatile and powerful structure. In addition to being its fundamental structuring tool, environments also serve as the basic functional object in the language. Because the elements of an environment are evaluated in parallel, Symmetric Lisp is a parallel programming language; because they may be assembled dynamically as well as statically, Symmetric Lisp accommodates an unusually flexible and simple (parallel) interpreter as well as other history-sensitive applications requiring dynamic environments. We show that first-class environments bring about fundamental changes in a language's structure: conventional distinctions between declarations and expressions, data structures and program structures, passive modules and active processes disappear.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
Reference Manual for the ADA Programming Language. United States Dept. of Defense, 1982.
2
 
3
M. Atkinson and R. Morrison. Types, Bindings, and Parameters in a Persistent Environment. in Persistence and Data Types Papers for the Appin Workshop, University of St. Andrews, August 1985.
4
5
 
6
William Clinger and et. al. The Revised Revised Revised Report on Scheme or An UnCommon Lisp. Technical Report AI-TM 848, MIT Artifical Intelligence Laboratory, 1985.
7
8
 
9
David Gelernter. Symmetric Programming Languages. Technical Report TR 353, Yale University Dept. of Computer Science, December 1984.
 
10
David Gelernter. Symmetry and the Non- Evolution of Programming Languages. Technical Report TR 486, Yale University Dept. of Computer Science, June 1986.
 
11
David Gelernter, Nick Carriero, Sarat Chandran, and Silvia Chang. Parallel programming in Linda. In Int. Conf. Parallel Processing, August 1985.
 
12
David Gelernter, Suresh Jagannathan, and Thomas London. Parallelism, Persistence and Meta-Cleanliness in the Symmetric Lisp Interpreter. Technical Report, Yale University Dept. of Computer Science, 1986.
 
13
 
14
R. Greenblat, T. Knight, $. Holoway, D. Moon, and D. Weirtreb. The LISP Machine. In Interactive Programming Environments, pages 326- 352, McGraw-Hill.
15
 
16
 
17
 
18
Robert Keller, Gary Lindstrom, and Suhas Patil. A Loosely-Coupled Applicative Multi- Processing System. in A FIPS Conference Proceedings, pages 613-622, June 1979.
19
 
20
 
21
22
 
23
 
24
D. A. Turner. A New Implementation Technique for Applicative Languages. Software - Practice and Experience, (9):31-49, 1979.
25
 
26
 
27
Niklaus Wirth. The Design and Implementation of Modula. Software Practice and Experience, 1980.

CITED BY  9

Collaborative Colleagues:
D. Gelernter: colleagues
S. Jagannathan: colleagues
T. London: colleagues