|
ABSTRACT
The formal definition of any namespace device found in a programming language can be given in terms of transformations on a semantic environment. It is worthwhile, therefore, to consider the implications of incorporating environments as bona fide data objects in a programming system.
In this article, we propose a treatment of environments and the mechanism by which they are reified and manipulated, that addresses these concerns. The language described below (Rascal) permits environments to be reified into data structures, and data structures to be reflected into environments, but gives users great flexibility to constrain the extent and scope of these processes. We argue that the techniques and operators developed define a cohesive basis for building large-scale modular systems using reflective programming techniques.
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
|
|
 |
2
|
|
| |
3
|
|
| |
4
|
|
 |
5
|
L. Cardelli , J. Donahue , M. Jordan , B. Kalsow , G. Nelson, The Modula–3 type system, Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.202-212, January 11-13, 1989, Austin, Texas, United States
[doi> 10.1145/75277.75295]
|
 |
6
|
C. Chambers , D. Ungar, Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.146-160, June 19-23, 1989, Portland, Oregon, United States
|
 |
7
|
H. Abelson , R. K. Dybvig , C. T. Haynes , G. J. Rozas , N. I. Adams, IV , D. P. Friedman , E. Kohlbecker , G. L. Steele, Jr. , D. H. Bartley , R. Halstead , D. Oxley , G. J. Sussman , G. Brooks , C. Hanson , K. M. Pitman , M. Wand , William Clinger , Jonathan Rees, Revised report on the algorithmic language scheme, ACM SIGPLAN Lisp Pointers, v.IV n.3, p.1-55, July, 1991
[doi> 10.1145/382130.382133]
|
 |
8
|
|
 |
9
|
|
 |
10
|
|
| |
11
|
DAHL, O., MYHRHAUG, B., AND NYGAARD, K. 1970. The Simula67 base common base language. Tech. rep., Norwegien Computing Center.
|
 |
12
|
|
 |
13
|
|
 |
14
|
|
 |
15
|
|
 |
16
|
|
| |
17
|
|
 |
18
|
|
 |
19
|
Paul Hudak , Simon Peyton Jones , Philip Wadler , Brian Boutel , Jon Fairbairn , Joseph Fasel , María M. Guzmán , Kevin Hammond , John Hughes , Thomas Johnsson , Dick Kieburtz , Rishiyur Nikhil , Will Partain , John Peterson, Report on the programming language Haskell: a non-strict, purely functional language version 1.2, ACM SIGPLAN Notices, v.27 n.5, p.1-164, May 1992
[doi> 10.1145/130697.130699]
|
| |
20
|
JAGANNATHAN, S. 1988. A programming language supporting first-class, parallel environments. Ph.D. thesis, MIT, Cambridge, Mass. (Also published as Tech. rep. LCS-TR 434.)
|
| |
21
|
|
 |
22
|
|
 |
23
|
|
 |
24
|
David Kranz , Norman Adams , Richard Kelsey , Jonathan Rees , Paul Hudak , James Philbin, ORBIT: an optimizing compiler for scheme, ACM SIGPLAN Notices, v.21 n.7, p.219-233, July 1986
|
 |
25
|
|
 |
26
|
|
 |
27
|
|
 |
28
|
|
 |
29
|
|
| |
30
|
|
| |
31
|
|
| |
32
|
PEYTON-JONES, S. L. 1987. The Implementation of Funetwnal Programming Languages. Prentice Hall.
|
 |
33
|
|
| |
34
|
REES 1993. Another Module System for Scheme Scheme48 documentation.
|
| |
35
|
SMITH~ B. 1982. Reflection and Semantics in a Procedural Language. Ph. D. thesis, MIT, Cambridge, Mass. (Also published as Tech. rep. LCS TR-272.)
|
| |
36
|
STEELE JR.~ G 1978. Rabbit: A Compiler for Scheme. Master's thesis, Massachusetts Institute of Technology, Cambridge, Mass.
|
| |
37
|
|
| |
38
|
|
| |
39
|
STRACHEY, C. AND WADSWORTH, C. 1974. Continuations: A mathematical semantics for handling full jumps. Technical Report PRG-11, Programming Research Group, Oxford University, Oxford, U.K.
|
 |
40
|
|
 |
41
|
|
| |
42
|
David Ungar , Randall B. Smith , Craig Chambers , Urs Hölzle, Object, Message, and Performance: How they Coexist in Self, Computer, v.25 n.10, p.53-64, October 1992
[doi> 10.1109/2.161280]
|
| |
43
|
U.S. Dept. of Defense 1982. Reference Manual for the ADA Programmzn9 Language. U.S. Dept. of Defense, Washington, D.C.
|
| |
44
|
WAND M. AND FRIEDMAN, D. P. 1988. The mystery of the tower revealed: A non-reflective description of the reflective tower. L~sp and Symbol. Comput 1, 1 (June), 11-38
|
| |
45
|
|
CITED BY 6
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gavin Bierman , Michael Hicks , Peter Sewell , Gareth Stoyle , Keith Wansbrough, Dynamic rebinding for marshalling and update, with destruct-time ?, ACM SIGPLAN Notices, v.38 n.9, p.99-110, September 2003
|
|
|
Peter Sewell , Gareth Stoyle , Michael Hicks , Gavin Bierman , Keith Wansbrough, Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction, Journal of Functional Programming, v.18 n.4, p.437-502, July 2008
|
|