|
ABSTRACT
Higher-order programming languages (i.e., languages in which procedures or labels can occur as values) are usually defined by interpreters which are themselves written in a programming language based on the lambda calculus (i.e., an applicative language such as pure LISP). Examples include McCarthy's definition of LISP, Landin's SECD machine, the Vienna definition of PL/I, Reynolds' definitions of GEDANKEN, and recent unpublished work by L. Morris and C. Wadsworth. Such definitions can be classified according to whether the interpreter contains higher-order functions, and whether the order of application (i.e., call-by-value versus call-by-name) in the defined language depends upon the order of application in the defining language. As an example, we consider the definition of a simple applicative programming language by means of an interpreter written in a similar language. Definitions in each of the above classifications are derived from one another by informal but constructive methods. The treatment of imperative features such as jumps and assignment is also discussed.
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
|
|
| |
6
|
Curry, H. B., and Feys, R., Combinatory Logic, Vol. I. North-Holland, Amsterdam, 1958
|
| |
7
|
Landin, P. J., A Lambda-Calculus Approach. Advances in Programming and Non-Numerical Computation, Pergamon Press, 1966, 97-141
|
| |
8
|
Floyd, R. W., Assigning Meaning to Programs. Proc. Sym. Applied Math. 19, Amer. Math. Soc. 1967, 19-32
|
| |
9
|
Manna, Z., The Correctness of Programs. J. Computer System Sci. 3 (May 1969), 119-127
|
 |
10
|
|
| |
11
|
Scott, D., Outline of a Mathematical Theory of Computation, Proc. Fourth Annual Princeton Conf. on Information Sciences and Systems (1970), 169-176
|
| |
11.1
|
Scott, D. Lattice Theory, Data Types, and Semantics. New York University Symposia in Areas of Current Interest in Computer Science, ed. R. Randell (1971).
|
| |
11.2
|
Scott, D. Lattice-theoretic Models for Various Type-free Calculi. Proc. Fourth International Congress for Logic, Methodology, and the Philosophy of Science, Bucharest (1972)
|
| |
11.3
|
Scott, D. Continuous Lattices. Proc. 1971 Dalhousie Conf., Springer Lecture Note Series, Springer-Verlag, Heidelburg
|
| |
12
|
Burstall, R. M., Formal Description of Program Structure and Semantics in First Order Logic. Machine Intelligence 5, ed. B. Meltzer and D. Michie, Edinburgh University Press, (1969) 79-98
|
| |
13
|
Lucas, P., Lauer, P., and Stigleitner, H., Method and Notation for Formal Definition of Programming Languages TR 25.087, IBM Laboratory, Vienna, June 1968
|
| |
14
|
Reynolds, J. C., GEDANKEN - A Simple Typeless Language Which Permits Functional Data Structures and Coroutines. ANL-7621, Argonne National Laboratory, Argonne, Ill. September 1969
|
| |
15
|
Morris, L., The Next 700 Programming Language Descriptions. Unpublished
|
| |
16
|
Park, D., Fixpoint Induction and Proofs of Program Properties. Machine Intelligence 5, ed. B. Meltzer and D. Michie, Edinburgh University Press (1969), 59-78
|
 |
17
|
|
| |
18
|
McCarthy, J., Towards a Mathematical Science of Computation. Proc. IFIP Congress 1962, 21-28
|
| |
19
|
Van Wijngaarden, A., Recursive Definition of Syntax and Semantics. Formal Language Description Languages for Computer Programming, ed. T. B. Steel, North-Holland, 1966, 13-24
|
 |
20
|
|
 |
21
|
|
 |
22
|
|
| |
23
|
|
 |
24
|
|
| |
25
|
Wozencraft, J. M., and Evans, A., Notes on Programming Linguistics, M. I. T., Cambridge, Mass., February 1971
|
| |
26
|
Barron, D. W., Buxton, J. N., Hartley, D. F., Nixon, E., and Strachey, C., The Main Features of CPL. Comput. J. 6 (July 1963), 134-143
|
| |
27
|
Cheatham, T. E., Fischer, A., and Jorrand, P. On the Basis for ELF - An Extensible Language Facility. Proc. AFIPS 1968 FJCC 33, pt. 2, MDI Publications, Wayne, Pa., 937-948
|
| |
28
|
deBakker, J. W., Semantics of Programming Languages. Advances in Information Systems Science 2, ed. J. T. Tou, Plenum Press, New York, 1969
|
CITED BY 124
|
|
|
|
|
Matthias Felleisen , Mitch Wand , Daniel Friedman , Bruce Duba, Abstract continuations: a mathematical semantics for handling full jumps, Proceedings of the 1988 ACM conference on LISP and functional programming, p.52-62, July 25-27, 1988, Snowbird, Utah, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Carl Hewitt , Peter Bishop , Irene Greif , Brian Smith , Todd Matson , Richard Steiger, Actor induction and meta-evaluation, Proceedings of the 1st annual ACM SIGACT-SIGPLAN symposium on Principles of programming languages, p.153-168, October 01-03, 1973, Boston, Massachusetts
|
|
|
|
|
|
Bruce Duba , Robert Harper , David MacQueen, Typing first-class continuations in ML, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.163-173, January 21-23, 1991, Orlando, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Christopher T. Haynes , Daniel P. Friedman , Mitchell Wand, Continuations and coroutines, Proceedings of the 1984 ACM Symposium on LISP and functional programming, p.293-298, August 06-08, 1984, Austin, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Karl Crary , David Walker , Greg Morrisett, Typed memory management in a calculus of capabilities, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.262-275, January 20-22, 1999, San Antonio, Texas, United States
|
|
|
|
|
|
Michael Sperber , Robert Glück , Peter Thiemann, Bootstrapping higher-order program transformers from interpreters, Proceedings of the 1996 ACM symposium on Applied Computing, p.408-413, February 17-19, 1996, Philadelphia, Pennsylvania, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Yasuhiko Minamide , Greg Morrisett , Robert Harper, Typed closure conversion, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.271-283, January 21-24, 1996, St. Petersburg Beach, Florida, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
J. Bell , F. Bellegarde , J. Hook , R. B. Kieburtz , A. Kotov , J. Lewis , L. McKinney , D. P. Oliva , T. Sheard , L. Tong , L. Walton , T. Zhou, Software design for reliability and reuse: a proof-of-concept demonstration, Proceedings of the conference on TRI-Ada '94, p.396-404, November 06-11, 1994, Baltimore, Maryland, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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, Revised Report on the Algorithmic Language Scheme, Higher-Order and Symbolic Computation, v.11 n.1, p.7-105, August 1998
|
|
|
|
|
|
|
|
|
Stephen Chong , Jed Liu , Andrew C. Myers , Xin Qi , K. Vikram , Lantian Zheng , Xin Zheng, Secure web application via automatic partitioning, ACM SIGOPS Operating Systems Review, v.41 n.6, December 2007
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.4
Processors
Subjects:
Interpreters
General Terms:
Languages
Keywords:
Applicative language,
Closure,
Continuation,
GEDANKEN,
Higher-order function,
Interpreter,
J-operator,
LISP,
Lambda calculus,
Language definition,
Order of application,
PAL,
Programming language,
Reference,
SECD machine
|