Unformatted text preview:

What made LISP Different from other LanguagesSignificant Language FeaturesAreas of ApplicationGeorge Iashvili professor Kopec Date 5/07/2003 CIS 24 History of LISP Interest in artificial intelligence first surfaced in the mid 1950’s. Linguistics, psychology, and mathematics were only some areas of application for AI. Linguists were concerned with natural language processing, while psychologists were interested in modeling human information and retrieval. Mathematicians were more interested in automating the theorem proving process. The common need among all of these applications was a method to allow computers to process symbolic data in lists. IBM was one of the first companies interested in AI in the 1950s. It was at the 1956 Dartmouth Summer Research Project on Artificial Intelligence that John McCarthy first developed the basics behind Lisp. His motivation was to develop a list processing language for Artificial Intelligence. Due to the high cost associated with producing the first FORTRAN compiler, John McCathy decided to include the list processing functionality into FORTRAN. The FORTRAN List Processing Language (FLPL) was designed and implemented as an extension to FORTRAN. In 1958 John McCarthy took a summer position at the IBM Information Research Department. He was hired to create a set of requirements for doing symbolic computation. The first attempt at this was differentiation of algebraic expressions. This initial experiment produced a list of all the proposed language requirements, most notably recursion and conditional expressions. At the time, not even FORTRAN (the only high- level language in existence) had these functions. By 1965 the primary dialect of Lisp was created (version 1.5). By 1970 special-purpose computers known as Lisp Machines,were designed to run LISP programs. 1980 object-oriented concepts were integrated into the language. A programming system called LISP (for LISt Processor) has been developed for the IBM 704 computer by the Artificial Intelligence group at M.I.T. The system was designed to facilitate experiments with a proposed system called the Advice Taker, whereby a machine could be instructed to handle declarative as well as imperative sentences and could exhibit ``common sense'' in carrying out its instructions. The original proposal [1] for the Advice Taker was made in November 1958. The main requirement was a programming system for manipulating expressions representing formalized declarative and imperative sentences so that the Advice Taker system could make deductions. What made LISP Different from other Languages 1. Conditionals. A conditional is an if-then-else construct. We take these for granted now. They were invented by McCarthy in the course of developing LISP. (Fortran at that time only had a conditional goto, closely based on the branch instruction in the underlying hardware.) McCarthy, who was on the Algol committee, got conditionals into Algol, whence they spread to most other languages. 2. A function type. In Lisp, functions are first class objects-- they're a data type just like integers, strings, etc, and have a literal representation, can be stored in variables, can be passed as arguments, and so on. 3. Recursion. Recursion existed as a mathematical concept before Lisp ofcourse, but Lisp was the first programming language to support it. (It's arguably implicit in making functions first class objects.) 4. A new concept of variables. In LISP, all variables are effectively pointers. Values are what have types, not variables, and assigning or binding variables means copying pointers, not what they point to. Significant Language Features • Atoms & Lists - Lisp uses two different types of data structures, atoms and lists. Atoms are similar to identifiers, but can also be numeric constants Lists can be lists of atoms, lists, or any combination of the two • Functional Programming Style - all computation is performed by applying functions to arguments. Variable declarations are rarely used. • Reliance on Recursion - a strong reliance on recursion has allowed Lisp to be successful in many areas, including Artificial Intelligence • Garbage Collection - Lisp has built-in garbage collection, so programmers do not need to explicitly free dynamically allocated memory. Areas of Application Lisp totally dominated Artificial Intelligence applications for a quarter of a century, and is still the most widely used language for AI. In addition to its success in AI, Lisp pioneered the process of Functional Programming. Many programming language researchers believe that functional programming is a much better approach to software development, than the use of Imperative Languages (Pascal, C++, etc). Below is a short list of the areas where Lisp has been used: • Artificial Intelligence1. AI Robots 2. Computer Games (Craps, Connect-4, BlackJack) 3. Pattern Recognition • Air Defense Systems • Implementation of Real-Time, embedded Knowledge-Based Systems • Tree Traversal (Breath/Depth First


View Full Document

CUNY CISC 3160 - History of LISP

Download History of LISP
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view History of LISP and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view History of LISP 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?