A new solution of Dijkstra's concurrent programming problem
Communications of the ACM
A model and stack implementation of multiple environments
Communications of the ACM
Additional comments on a problem in concurrent programming control
Communications of the ACM
Solution of a problem in concurrent programming control
Communications of the ACM
Thunks: a way of compiling procedure statements with some comments on procedure declarations
Communications of the ACM
Definitional interpreters for higher-order programming languages
ACM '72 Proceedings of the ACM annual conference - Volume 2
Proceedings of ACM conference on Proving assertions about programs
SEMANTICS OF COMMUNICATING PARALLEL PROCESSES
SEMANTICS OF COMMUNICATING PARALLEL PROCESSES
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
The Function of FUNCTION in LISP, or Why the FUNARG Problem Should be Called the Environment Problem
Micro-Planner Reference Manual
Micro-Planner Reference Manual
LISP 1.5 Programmer's Manual
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
The Calculi of Lambda Conversion. (AM-6) (Annals of Mathematics Studies)
Definitional Interpreters Revisited
Higher-Order and Symbolic Computation
Ercatons and organic programming: say good-bye to planned economy
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the dynamic extent of delimited continuations
Information Processing Letters
On the static and dynamic extents of delimited continuations
Science of Computer Programming
A syntactic correspondence between context-sensitive calculi and abstract machines
Theoretical Computer Science
Lazy evaluation and delimited control
Proceedings of the 36th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On the dynamic extent of delimited continuations
Information Processing Letters
Magic-sets for localised analysis of Java bytecode
Higher-Order and Symbolic Computation
Electronic Notes in Theoretical Computer Science (ENTCS)
TRX: a formally verified parser interpreter
ESOP'10 Proceedings of the 19th European conference on Programming Languages and Systems
Capsules and closures: a small-step approach
Logic and Program Semantics
Hi-index | 0.03 |
Inspired by ACTORS [7, 17], we haveimplemented an interpreter for a LISP-like language, SCHEME, based on thelambda calculus [2], but extended for side effects, multiprocessing,and process synchronization. The purpose of this implementation is tutorial.We wish to:1.alleviate the confusion caused by Micro-PLANNER, CONNIVER, etc., byclarifying the embedding of non-recursive control structures in a recursivehost language like LISP.2.explain how to use these control structures, independent of such issues as pattern matching and data base manipulation.3.have a simple concrete experimental domain for certain issues ofprogramming semantics and style.This paper is organized into sections. The first section is a short“reference manual” containing specifications for all the unusual features ofSCHEME. Next, we present a sequence of programming examples which illustratevarious programming styles, and how to use them. This will raise certainissues of semantics which we will try to clarify with lambda calculus in thethird section. In the fourth section we will give a general discussion of theissues facing an implementor of an interpreter for a language based on lambdacalculus. Finally, we will present a completely annotated interpreter forSCHEME, written in MacLISP [13], to acquaint programmers with the tricks ofthe trade of implementing non-recursive control structures in a recursivelanguage like LISP.This report describes research done at the Artificial Intelligence Laboratory of the Massachusetts Institute of Technology. Support for the laboratory‘sartificial intelligence research is provided in part by the Advanced ResearchProjects Agency of the Department of Defense under Office of Naval Researchcontract N00014-75-C-0643.