An axiomatic basis for computer programming
Communications of the ACM
The predictive analyzer and a path elimination technique
Communications of the ACM
The Design and Analysis of Computer Algorithms
The Design and Analysis of Computer Algorithms
Second-order mathematical theory of computation
STOC '70 Proceedings of the second annual ACM symposium on Theory of computing
From Understanding Computation to Understanding Neural Circuitry
From Understanding Computation to Understanding Neural Circuitry
Communications of the ACM
Communications of the ACM
A portable compiler: theory and practice
POPL '78 Proceedings of the 5th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A practical decision method for propositional dynamic logic (Preliminary Report)
STOC '78 Proceedings of the tenth annual ACM symposium on Theory of computing
Generalized procedure calling and content-directed invocation
Proceedings of the 1977 symposium on Artificial intelligence and programming languages
Hi-index | 0.03 |
We consider the problem of automating some of the duties of programmers. We take as our point of departure the claim that data management has been automated to the point where the programmer concerned only about the correctness (as opposed to the efficiency) of his program need not involve himself in any aspect of the storage allocation problem. We focus on what we feel is a sensible next step, the problem of automating aspects of control. To accomplish this we propose a definition of control based on a fact/heuristic dichotomy, a variation of Chomsky's competence/performance dichotomy. The dichotomy formalizes an idea originating with McCarthy and developed by Green, Hewitt, McDermott, Sussman, Hayes, Kowalski and others. It allows one to operate arbitrarily on the control component of a program without affecting the program's correctness, which is entirely the responsibility of the fact component. The immediate objectives of our research are to learn how to program keeping fact and control separate, and to identify those aspects of control amenable to automation.