FACTOID # 127: Costa Rica leads the world in per capita exports of bananas, cassava, melons, and pineapples to the United States. Unsuprisingly, they’re also first in pesticide use.
 
 Home   Encyclopedia   Statistics   Countries A-Z   Flags   Maps   Education   Forum   FAQ   About 
 
WHAT'S NEW
RECENT ARTICLES
More Recent Articles »
 

SEARCH ALL

FACTS & STATISTICS    Advanced view

Search encyclopedia, statistics and forums:

 

 

(* = Graphable)

 

 


Encyclopedia > Planner programming language

Planner (often seen in publications as "PLANNER") is a programming language designed by Carl Hewitt at MIT, and first published in 1969. Hewitt (then a student of Marvin Minsky, Seymour Papert and Mike Paterson) championed the "procedural embedding of knowledge" in the form of high level procedural plans in contrast to the logical approach pioneered by John McCarthy who advocated expressing knowledge declaratively in mathematical logic for artificial intelligence (AI). This raised a fundamental question: "What is the difference between the procedural and logical approaches?" It took several years to provide an answer to this question. Computer code (HTML with JavaScript) in a tool that uses syntax highlighting (colors) to help the developer see the purpose of each piece of code. ... Carl Hewitt is a US scientist who is an emeritus professor from MIT. He is known for his design of Planner that was the first Artificial Intelligence programming language based on procedural plans that were invoked using pattern-directed invocation from assertions and goals. ... The Massachusetts Institute of Technology, or MIT, is a research and educational institution located in the city of Cambridge, Massachusetts, USA. MIT is a world leader in science and technology, as well as in many other fields, including management, economics, linguistics, political science, and philosophy. ... 1969 (MCMLXIX) was a common year starting on Wednesday (the link is to a full 1969 calendar). ... Marvin Lee Minsky (born August 9, 1927), sometimes affectionately known as Old Man Minsky, is an American scientist in the field of artificial intelligence (AI), co-founder of MITs AI laboratory, and author of several texts on AI and philosophy. ... Seymour Papert Seymour Papert (born March 1, 1928 Pretoria, South Africa) is an MIT mathematician, computer scientist, and prominent educator. ... John McCarthy (born September 4, 1927, in Boston, Massachusetts, sometimes known affectionately as Uncle John McCarthy), is a prominent computer scientist and notable Usenetter who received the Turing Award in 1971 for his major contributions to the field of Artificial Intelligence. ... Mathematical logic is a discipline within mathematics, studying formal systems in relation to the way they encode intuitive concepts of proof and computation as part of the foundations of mathematics. ... Hondas intelligent humanoid robot Artificial intelligence (AI) is defined as intelligence exhibited by an artificial entity. ...

Contents


Early History of Planner

According to Hewitt [2006], Planner was the first language to feature procedural plans that were called by pattern-directed invocation using goals and assertions. A subset called Micro-Planner was implemented by Gerry Sussman, Eugene Charniak and Terry Winograd and was used in Winograd's natural-language understanding program SHRDLU, Eugene Charniak's story understanding work, and some other projects. This generated a great deal of excitement in the field of AI. It also generated controversy because it proposed an alternative to the logic approach that had been one of the mainstay paradigms for AI. Gerald Jay Sussman is the Matsushita Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). ... Terry Allen Winograd (born February 24, 1946) is a professor of computer science at Stanford University. ... SHRDLU [1] was an early natural language understanding computer program, developed by Terry Winograd at MIT from 1968-1970. ...


Bruce Anderson at the University of Edinburgh implemented a subset of Planner called PICO-PLANNER and Julian Davies at Edinburgh implemented Popler, essentially the whole of Planner. At SRI, Jeff Rulifson, Jan Derksen, and Richard Waldinger developed QA4 which built on the constructs in Planner and introduced a context mechanism to provide modularity for expressions in the data base. Also at SRI, Earl Sacerdoti and Rene Reboh implemented QA4 as an extension of Interlisp, in a language called QLISP which was efficient enough to be used in several applications. Bob Kowalski, who had been one of the principal members of the logic paradigm community, then adapted in collaboration with Alain Colmerauer some theorem proving ideas into a form similar to a subset of Micro Planner called Prolog. Indeed, Hewitt considers Prolog to be largely a reinvention of a subset of Micro Planner, e.g., Micro Planner (unlike Prolog) had the capability to use pattern-directed invocation of procedural plans from assertions as well as goals. But compare Kowalski's paper on the early history of logic programming. Using Prolog, Kowalski hoped to save the logic paradigm as a viable approach to Artificial Intelligence. The University of Edinburgh, founded in 1583, is a renowned centre for teaching and research in Edinburgh, Scotland. ... This article needs to be cleaned up to conform to a higher standard of quality. ... Interlisp (also seen with a variety of capitalizations) was a version of the Lisp programming language originally developed in 1967 at Bolt, Beranek and Newman in Cambridge, Massachusetts. ... Robert Kowalski (born May 15, 1941 in Bridgeport, Connecticut, USA) is a Polish-American logician who has spent much of his career in the UK. Robert Anthony Kowalski has been important in the development of logic programming, especially the programming language Prolog. ... Professor Alain Colmerauer is the creator of the logic programming language Prolog for computers. ... Prolog is a logic programming language. ... Logic programming (sometimes called logical programming) is programming that makes use of pattern-directed invocation of procedures from assertions and goals. ...


Control structure controversy

As related in Hewitt [2006], computer memories were very small by current standards because they were expensive, being made of iron ferrite cores at that time. So Planner adopted the then common expedient of using backtracking control structures to economize on the use of computer memory. In this way, the computer only had to store one possibility at a time in exploring alternatives. Backtracking is a strategy for finding solutions to constraint satisfaction problems. ...


One implementation decision in Micro Planner had unfortunate consequences. Lisp had adopted the programming pun of identifying NIL, the empty list with logical false (at memory location 0) because testing for 0 was faster than anything else. Because of the pun, testing for NIL was extremely common in Lisp programs. Micro Planner extended this pun also to use NIL as a signal to begin backtracking. In Micro Planner, it was common to write programs to perform some operation on every element of a list by using a loop to process the first element of a list, take the rest of the list, and then jump back to the top of the loop to test if the list was empty. If the list tested empty, then the program would go on to do other things. Such a program never made it to testing the empty list after processing all the elements because when the last element was processed and the rest of the list was taken, NIL was returned as a value. The Micro Planner interpreter took this as the signal to begin backtracking and began undoing all the work of processing the elements of the list! People were dumbfounded.


In this and several other ways, backtracking proved unwieldy helping to fuel the great control structure debate. Hewitt investigated some alternatives in his thesis.


Control structure characterizations

Using program schemas, Hewitt in collaboration with Mike Paterson proved that recursion is more powerful than iteration and parallelism more powerful than sequential recursion. (He also conjectured that coroutines are more powerful than recursion but couldn't convincingly prove it until recently using a more powerful formalism.) A Sierpinski triangle —a confined recursion of triangles to form a geometric lattice. ... Iteration is the repetition of a process, typically within a computer program. ... Parallel computing is the simultaneous execution of the same task (split up and specially adapted) on multiple processors in order to obtain results faster. ... Coroutines are program components like subroutines. ...


Hairy control structure

According to Hewitt [2006], Peter Landin had introduced an even more powerful control structure using his J (for Jump) operator that could perform a nonlocal goto into the middle of a procedure invocation. In fact the J operator could jump back into the middle of a procedure invocation even after it had already returned. Drew McDermott and Gerald Sussman called Landin's concept the "Hairy Control Structure" and used it in the form of a nonlocal goto for the Conniver programming language. Scott Fahlman used Conniver in his planning system for robot construction tasks. This is related to what are now called Re-invocable Continuations. Peter Landin is a British computer scientist. ... Gerald Jay Sussman is the Matsushita Professor of Electrical Engineering at the Massachusetts Institute of Technology (MIT). ... In computing, a continuation is a representation of the execution state of a program (for example, the register contents and call stack) at a certain point in time. ...


Difficulties in communication were a root cause of the control structure difficulties.


Control structures are patterns of passing messages

Hewitt reported: ... we have found that we can do without the paraphernalia of "hairy control structure" (such as possibility lists, non-local gotos, and assignments of values to the internal variables of other procedures in CONNIVER.)... The conventions of ordinary message-passing seem to provide a better structured, more intuitive foundation for constructing the communication systems needed for expert problem-solving modules to cooperate effectively. The Actor model provided the foundation for solving the Artificial Intelligence control structure problem. It took considerable time to develop programming methodologies for the Actor model. Indeed, the implementation of the Scientific Community Metaphor requires sophisticated message passing that is still the subject of research. In computer science, the Actor model, first published in 1973, is a mathematical model of concurrent computation. ... The Scientific Community Metaphor was published in 1981 by Bill Kornfeld and Carl Hewitt as an approach to extending pattern directed invocation programming languages ( Planner) that invoke high level procedural plans on the basis of messages, , assertions and goals. ...


Limitation of mathematical logic

This developed into a controversy about the possibility of using mathematical logic as a programming language. See indeterminacy in computation. The upshot is that the procedural approach has a different mathematical semantics (see denotational semantics) from the semantics of mathematical logic. Mathematical logic is a discipline within mathematics, studying formal systems in relation to the way they encode intuitive concepts of proof and computation as part of the foundations of mathematics. ... The neutrality of this article is disputed. ... In computer science, denotational semantics is an approach to formalizing the semantics of computer systems by constructing mathematical objects (called denotations or meanings) which express the semantics of these systems. ...


References

  • Carl Hewitt. PLANNER: A Language for Proving Theorems in Robots IJCAI 1969
  • Gerry Sussman and Terry Winograd. Micro-planner Reference Manual AI Memo No, 203, MIT Project MAC, July 1970.
  • Terry Winograd. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language MIT AI TR-235. January 1971.
  • Carl Hewitt. Procedural Embedding of Knowledge In Planner IJCAI 1971.
  • Gerry Sussman, Terry Winograd and Eugene Charniak. Micro-Planner Reference Manual (Update) AI Memo 203A, MIT AI Lab, December 1971
  • Carl Hewitt. Description and Theoretical Analysis (Using Schemata) of Planner, A Language for Proving Theorems and Manipulating Models in a Robot AI Memo No. 251, MIT Project MAC, April 1972.
  • Bruce Anderson. Documentation for LIB PICO-PLANNER School of Artificial Intelligence, Edinburgh University. 1972
  • Bruce Baumgart. Micro-Planner Alternate Reference Manual Stanford AI Lab Operating Note No. 67, April 1972.
  • Eugene Charniak. Toward a Model of Children's Story Comprehension MIT AI TR-266. December 1972.
  • Julian Davies. Popler 1.6 Reference Manual University of Edinburgh, TPU Report No. 1, May 1973.
  • Jeff Rulifson, Jan Derksen, and Richard Waldinger. QA4, A Procedural Calculus for Intuitive Reasoning SRI AI Center Technical Note 73, November 1973.
  • Robert Kowalski Predicate Logic as Programming Language Memo 70, Department of Artificial Intelligence, Edinburgh University. 1973
  • Pat Hayes. Computation and Deduction Mathematical Foundations of Computer Science: Proceedings of Symposium and Summer School, Štrbské Pleso, High Tatras, Czechoslovakia, September 3-8, 1973.
  • Carl Hewitt, Peter Bishop and Richard Steiger. A Universal Modular Actor Formalism for Artificial Intelligence IJCAI 1973.
  • Drew McDermott and Gerry Sussman. The Conniver Reference Manual MIT AI Memo 259A. January 1974.
  • Earl Sacerdoti, et. al., QLISP A Language for the Interactive Development of Complex Systems AFIPS. 1976
  • William Kornfeld and Carl Hewitt. The Scientific Community Metaphor MIT AI Memo 641. January 1981.
  • Carl Hewitt. The Challenge of Open Systems Byte Magazine. April 1985
  • Robert Kowalski. The limitation of logic Proceedings of the 1986 ACM fourteenth annual conference on Computer science.
  • Robert Kowalski. The Early Years of Logic Programming CACM January 1988.
  • Carl Hewitt and Gul Agha. Guarded Horn clause languages: are they deductive and logical? in Artificial Intelligence at MIT, Vol. 2. MIT Press 1991.
  • Carl Hewitt. The repeated demise of logic programming and why it will be reincarnated What Went Wrong and Why: Lessons from AI Research and Applications. Technical Report SS-06-08. AAAI Press. March 2006.

External links

  • Alain Colmerauer's and Philippe Roussel's 1992 account of the birth of Prolog

  Results from FactBites:
 
Programming Language - MSN Encarta (578 words)
Programming Language, in computer science, artificial language used to write a sequence of instructions (a computer program) that can be run by a computer.
For instance, programming languages such as Fortran and COBOL were written to solve certain general types of programming problems—Fortran for scientific applications, and COBOL for business applications.
Assembly languages are intermediate languages that are very close to machine language and do not have the level of linguistic sophistication exhibited by other high-level languages, but must still be translated into machine language.
  More results at FactBites »


 

COMMENTARY     


Share your thoughts, questions and commentary here
Your name
Your comments
Please enter the 5-letter protection code

Want to know more?
Search encyclopedia, statistics and forums:

 


Lesson Plans | Student Area | Student FAQ | Reviews | Press Releases |  Feeds | Contact
The Wikipedia article included on this page is licensed under the GFDL.
Images may be subject to relevant owners' copyright.
All other elements are (c) copyright NationMaster.com 2003-5. All Rights Reserved.
Usage implies agreement with terms.