[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: WANTED: information on first class environments
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
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:
 A Symmetric Language. Yale University TR, DCS-RR/568, May 1989.
(I'll be glad to send you a copy if you're interested.)
 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.)
 Environments as First-Class Object. 14th ACM Symposium on
Principles of Programming Languages, Jan. 1987.
 Parallelism, Persistence and Meta-Cleanliness in the Symmetric Lisp
Interpreter. SIGPLAN '87 Conf. on Interpreters and Interpretative Techniques.