Programming Languages Directory

Site Topics

C Programming Language
Assembling Computers
CIS
Computer Science Careers
Women and Computer Science
ADA Programming Language
ALGOL Programming Language
APL Programming Language
AWK Programming Language
Basic Programming Language
C++ Programming Language
COBOL Programming Language
Delphi Programming Language
Eiffel Programming Language
Euphoria Programming Language
Forth Programming Language
FORTRAN Programming Language
HTML Programming Language
ICON Programming Language
Java Programming Language
Javascript Programming Language
LISP Programming Language

 

The LISP Programming Language

Free resources updated everyday:

XXXLINKSXX

Interest in artificial intelligence first surfaced in the mid 1950. 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. At the same time, the FORTRAN project was still going on. Because of the high cost associated with producing the first FORTRAN compiler, they decided to include the list processing functionality into FORTRAN. The FORTRAN List Processing Language (FLPL) was designed and implemented as an extention 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 of language requirements, most notably was recursion and conditional expressions. At the time, not even FORTRAN (the only high-level language in existance) had these functions.

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. 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 was the year that object-oriented concepts were integrated into the language.

By 1986, the X3J13 group formed to produce a draft for ANSI Common Lisp standard. Finally in 1992, X3J13 group published the American National Standard for Common Lisp.

Significant Language Features

  • Atoms & Lists- Lisp uses two different types of data structures, atoms and lists.
    • Atomsare 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.
  • Uniform Representation of Data and Code- example: the list (A B C D)
    • a list of four elements (interpreted as data)
    • is the application of the function named A to the three parameters B, C, and D (interpreted as code)
  • 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 Intelligence

1. AI Robots
2. Computer Games (Craps, Connect-4, BlackJack)
3. Pattern Recognition

  • Air Defense Systems
  • Implementation of Real-Time, embedded Knowledge-Based Systems
  • List Handling and Processing
  • Tree Traversal (Breath/Depth First Search)
  • Educational Purposes (Functional Style Programming)

Sample Program

Source Code: (Hello World)
;;; HWorld.lsp

;;; ================================================== ;;;
;;; =========== HELLO WORLD SIMULATION ============== ;;;
;;; ================================================== ;;;

;;; This function simply returns the string Hello World that is in quotes.

(DEFUN HELLO ()
"HELLO WORLD"
)

This program was created, tested and run using the XLISP-STAT 2.1, Release 3.45 (Beta) compiler. Copyright (c) 1989-1994, by Luke Tierney.

This program simply demonstrates the return of a string from a function call, in the Lisp programming language. The program will display the message "Hello world" each time the function HELLO is called.

 

 

 

 

 

 

 


 



 

Site Topics

LOGO Programming Language
Mathematica Programming Language
MATLAB Programming Language
Miranda Programming Language
Modula-2 Programming Language
Oberon Programming Language
Pascal Programming Language
PERL Programming Language
PL/I Programming Language
Prolog Programming Language
Python Programming Language
REXX Programming Language
SAS Programming Language
Scheme Programming Language
SED Programming Language
Simula Programming Language
Smalltalk Programming Language
SNOBOL Programming Language
Database Programming Language
Visual Basic Programming Language
Visual C++ Programming Language
XML Programming Language

 

 

 

 

C Programming Language | Assembling Computers | CIS | Computer Science Careers | Women and Computer Science | ADA Programming Language | ALGOL Programming Language | AWK Programming Language | Basic Programming Language | C++ Programming Language | COBOL Programming Language | Delphi Programming Language | Eiffel Programming Language | Euphoria Programming Language | Forth Programming Language | FORTRAN Programming Language | HTML Programming Language | ICON Programming Language | Java Programming Language | Javascript Programming Language | LISP Programming Language | LOGO Programming Language | Mathematica Programming Language | MATLAB Programming Language | Miranda Programming Language | Modula-2 Programming Language | Oberon Programming Language | Pascal Programming Language | PERL Programming Language | PL/I Programming Language | Prolog Programming Language | Python Programming Language | REXX Programming Language | SAS Programming Language | Scheme Programming Language | SED Programming Language | Simula Programming Language | Smalltalk Programming Language | SNOBOL Programming Language | Database Programming Language | Visual Basic Programming Language | Visual C++ Programming Language | XML Programming Language | Home | Site Map