ham@Polya.Stanford.EDU (Peter R. Ham) (07/21/89)
I'm interested in first class environments in programming languages like Scheme. I heard something about XScheme including this. Can anyone give me any pointers to XScheme or its documentation or any other systems or papers concerning first class environments? -- Peter Ham PO Box 3430 (h)(415) 324-9645 MS Computer Science Student Stanford, CA ham@polya.stanford.edu Stanford University 94309 (o)(415) 723-2513
jagannathan-suresh@CS.YALE.EDU (Suresh Jagannathan) (07/22/89)
In article <HAM.89Jul20100607@Polya.Stanford.EDU> ham@Polya.Stanford.EDU (Peter R. Ham) writes: >I'm interested in first class environments in programming languages >like Scheme. Symmetric Lisp is a programming language whose fundamental program and data structure is a first-class parallel environment. In the symmetric programming model, the representation of programs is identical to the representation of data structures. To specify a computation, the programmer specifies a data structure. The specified data structure can be examined, parameterized, composed with other structures, and projected yet it has the semantics of a naming environment -- it defines a scope and the bindings within it implicitly affect the evaluation of expressions as the program executes. A program in this model is an environment containing reducible expressions; the object returned as the result of evaluating a program is the same environment with each reducible expression replaced by its value. Parallelism is an important part of this model. Whenever two elements of a Symmetric Lisp program occur as separate elements of the same structure, they may evaluate simultaneously (subject only to basic data dependencies). A first-class environment is a non-strict object: a program's components may be examined (since a program is a data structure) even as its other elements continue to evaluate. Non-strictness and first-class environments combine to form an interesting symbiosis; much of the Symmetric Lisp effort has focussed on investigating their interaction. ----- You may be interested in the following references for more information: [1] A Symmetric Language. Yale University TR, DCS-RR/568, May 1989. (I'll be glad to send you a copy if you're interested.) [2] A Programming Language Supporting First-Class Parallel Environments. MIT Laboratory for Computer Science TR-434. December, 1988. (A slightly revised version of my Ph.D thesis of the same title.) [3] Environments as First-Class Object. 14th ACM Symposium on Principles of Programming Languages, Jan. 1987. [4] Parallelism, Persistence and Meta-Cleanliness in the Symmetric Lisp Interpreter. SIGPLAN '87 Conf. on Interpreters and Interpretative Techniques. 1987.