Abstract:
Namespace management is fundamental (in a practical sense) to the design of any programming language: how are naming environments built, and how are they used? Modern programming languages come equipped with a variety of mechanisms to create and manipulate naming environments. These mechanisms fall into two broad categories: program structures and data structures. Program structures and data structures are treated differently in modern programming languages. Program structures are not considered to be data structures: they cannot be examined, nor can they be used as components of other data structures. Nor are data structures considered to be programs: they do not specify a scope, nor can they contain expressions as primitive components. This thesis presents a new programming model called the symmetric model in which the representation of programs is identical to the representation of data: to specify a computation, one defines a data structure. This data structure possesses the seman...
Citations
|
806
|
A Theory of Type Polymorphism in Programming
– Milner
- 1978
|
|
249
|
Recursive functions of symbolic expressions and their computation by machine
– MCCARTHY
- 1960
|
|
194
|
Guardians and actions: Linguistic support for robust, distributed programs
– Liskov, Scheifler
- 1983
|
|
166
|
A new implementation technique for applicative languages
– Turner
- 1979
|
|
156
|
A non-strict functional language with polymorphic types
– Miranda
|
|
118
|
Revised report on the algorithmic language Algol 60
– Naur
- 1963
|
|
101
|
A Structural View of the Cedar Programming Environment
– Swinehart, Zellweger, et al.
|
|
86
|
Operational Semantics and Polymorphic Type Inference
– Tofte
- 1987
|
|
84
|
The Interlisp programming environment
– Teitelman, Masinter
- 1981
|
|
73
|
Common LISP: The Language
– Jr
- 1984
|
|
63
|
The mystery of the tower revealed: A non-reflective description of the reflecitve tower
– Wand, Friedman
- 1988
|
|
58
|
The implementation of procedurally reflective languages
– Rivi`eres, Smith
- 1984
|
|
48
|
Concurrent Prolog: A Progress Report
– Shapiro
- 1986
|
|
47
|
Inferring Types in Smalltalk
– Suzuki
- 1981
|
|
34
|
the ultimate imperative
– Sussman, Lambda
- 1976
|
|
30
|
The Standard ML core language
– Milner
- 1985
|
|
21
|
Logic programming and compiler writing
– Warren
- 1980
|
|
17
|
Type' is not a type: Preliminary report
– Meyer, Reinhold
- 1986
|
|
9
|
The art of the interpreter or, the modularity complex
– Sussman
- 1978
|
|
7
|
An Abstract Implementation for a Generalized Dataflow Language
– Weng
- 1979
|
|
4
|
The revised MacLisp manual
– Pitman
- 1983
|
|
3
|
ID Reference Manual (Version 88.0
– Nikhil
- 1988
|
|
1
|
A Compiler for the Tagged-Token Dataflow Architecture
– Traub
- 1986
|
|
1
|
Error Data Values in the Data-Flow Language VAL
– Wetherell
- 1982
|