Results 1 -
6 of
6
Scheme: An interpreter for extended lambda calculus
- MEMO 349, MIT AI LAB
, 1975
"... Inspired by ACTORS [7, 17], we have implemented an interpreter for a LISP-like language, SCHEME, based on the lambda 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 cause ..."
Abstract
-
Cited by 64 (2 self)
- Add to MetaCart
Inspired by ACTORS [7, 17], we have implemented an interpreter for a LISP-like language, SCHEME, based on the lambda 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., by clarifying the embedding of non-recursive control structures in a recursive host 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 of programming semantics and style. This paper is organized into sections. The first section is a short “reference manual ” containing specifications for all the unusual features of SCHEME. Next, we present a sequence of programming examples which illustrate various programming styles, and how to use them. This will raise certain issues of semantics which we will try to clarify with lambda calculus in the third section. In the fourth section we will give a general discussion of the issues facing an implementor of an interpreter for a language based on lambda calculus. Finally, we will present a completely annotated interpreter for SCHEME, written in MacLISP [13], to acquaint programmers with the tricks of the trade of implementing non-recursive control structures in a recursive language like LISP.
Alma-0: An Imperative Language that Supports Declarative Programming
, 1998
"... Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma-0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Al ..."
Abstract
-
Cited by 49 (10 self)
- Add to MetaCart
Architecture The Alma Abstract Architecture (AAA) is the virtual architecture used during the intermediate code generation phase of the Alma-0 compiler. The AAA combines the features of the abstract machines for imperative languages and for logic programming languages. The compiler compiles the Alma-0 programs into AAA programs. In a second phase the AAA instructions are translated into C statements. As the Alma-0 language itself, the AAA aims to combine the best of both worlds; elements were taken from virtual machines used to compile imperative languages (in particular the RISC architecture described in Wirth [1996, pp. 55--59], and from the WAM machine used to compile a logical language (see Ait-Kaci [1991]). Still, the AAA resembles most the virtual machines used in the compilation of imperative languages. The additions made to provide for the extensions of the Alma-0 language are ---the failure handling instructions ONFAIL, FAIL, 40 \Delta Krzysztof R. Apt et al ---the log ...
The Paradigms of Programming
- Communications of the ACM
, 1979
"... tee) cited Professor Floyd for "helping to found the following important subfields of computer science: the theory of parsing, the semantics of programming languages, automatic program verification, automatic program synthesis, and analysis of algo-rithms." Professor Floyd, who received bo ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
tee) cited Professor Floyd for "helping to found the following important subfields of computer science: the theory of parsing, the semantics of programming languages, automatic program verification, automatic program synthesis, and analysis of algo-rithms." Professor Floyd, who received both his A.B. and B.S. from the University of Chicago in 1953 and 1958, respectively, is a self-taught computer scientist. His study of computing began in 1956, when as a night-operator for an IBM 650, he found the time to learn about programming between loads of card hoppers. Floyd implemented one of the first Algol 60 compilers, finishing his work on this project in 1962. In the process, he did some early work on compiler optimization. Subsequently, in the
Artificial Intelligence, Logic And Formalizing Common Sense
- Philosophical Logic and Artificial Intelligence
, 1990
"... This article discusses the problems and difficulties, the results so far, and some improvements in logic and logical languages that may be required to formalize common sense. Fundamental conceptual advances are almost certainly required. The object of the paper is to get more help for AI from philos ..."
Abstract
-
Cited by 19 (3 self)
- Add to MetaCart
This article discusses the problems and difficulties, the results so far, and some improvements in logic and logical languages that may be required to formalize common sense. Fundamental conceptual advances are almost certainly required. The object of the paper is to get more help for AI from philosophical logicians. Some of the requested help will be mostly philosophical and some will be logical. Likewise the concrete AI approach may fertilize philosophical logic as physics has repeatedly fertilized mathematics.
Accelerating Partial Order Planners by Improving Plan and Goal Choices
- In Proceedings of the Seventh International Conference on Tools with Artificial Intelligence
, 1995
"... We describe some simple domain-independent improvements to plan-refinement strategies for well-founded partial order planning that promise to bring this style of planning closer to practicality. One suggestion concerns the strategy for selecting plans for refinement among the current (incomplete) ca ..."
Abstract
-
Cited by 15 (2 self)
- Add to MetaCart
We describe some simple domain-independent improvements to plan-refinement strategies for well-founded partial order planning that promise to bring this style of planning closer to practicality. One suggestion concerns the strategy for selecting plans for refinement among the current (incomplete) candidate plans. We propose an A* heuristic that counts only steps and open conditions, while ignoring "unsafe conditions" (threats). A second suggestion concerns the strategy for selecting open conditions (goals) to be established next in a selected incomplete plan. Here we propose a variant of a strategy suggested by Peot & Smith and studied by Joslin & Pollack; the variant gives top priority to unmatchable open conditions (enabling the elimination of the plan), secondhighest priority to goals that can only be achieved uniquely, and otherwise uses LIFO prioritization. The preference for uniquely achievable goals is a "zerocommitment " strategy in the sense that the corresponding plan refinem...
The qualitative process engine: A study in assumption-based truth maintenance
- In Qualitative Reasoning Workshop Abstracts. Qualitative Reasoning Group, University of Illinois at Urbana-Champaign
, 1987
"... This paper describes how to use an assumption-based truth maintenance system (ATMS) to significantly speed up qualitative reasoning. Specifically, we introduce three organizing abstractions for ATMS-based problem solvers (many-worlds databases, justify/interpret cycles, and closed-world tables). We ..."
Abstract
-
Cited by 4 (0 self)
- Add to MetaCart
This paper describes how to use an assumption-based truth maintenance system (ATMS) to significantly speed up qualitative reasoning. Specifically, we introduce three organizing abstractions for ATMS-based problem solvers (many-worlds databases, justify/interpret cycles, and closed-world tables). We illustrate their utility by describing the Qualitative Process Engine (qPE), an implementation of Qualitative Process theory that is roughly 95 times-faster and signficantly simpler than the previous implementation. After analyzing gPE's performance, we draw some general conclusions about the advantages and disadvantages of assumption-based truth maintenance systems. Program:ENGINEERING

