[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 
>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.