L'interesse verso l'intelligenza artificiale (AI) si affacciò per la
prima volta verso la metà degli anni '50.
Linguistica, psicologia e matematica erano solo alcune aree interessate
alla AI.
L'esigenza in comune con le varie discipline era quella di trovare un
metodo che consentisse al computer di elaborare liste di dati simbolici.
IBM fu una delle prime compagnie ad interessarsi al problema. Nello
stesso tempo stava già sviluppando il FORTRAN.
Visto l'alto costo per lo sviluppo del FORTRAN pensarono di inserire in
quel linguaggio anche la funzione di elaborazione delle liste.
Così il List Processing Language fu integrato come estensione nel
FORTRAN stesso.
Nel 1958 John McCarthy fu incaricato di creare una lista di specifiche
per creare l'elaborazione simbolica. La prima definizione riguardava le
espressioni algebriche.
L'esperimento iniziale produsse una lista di esigenze di linguaggio, tra
cui le più importanti erano le espressioni ricorsive e quelle
condizionali, che a quell'epoca il FORTRAN non aveva ancora.
Nel 1956, presso il Dartmouth Summer Research Project on Artificial
Intelligence, John McCarthy sviluppò per l aprima volta le basi che
servivano per creare il Lisp.
Nel 1965 il primo dialetto Lisp fu creato. Nel 1970 venne costruito un
computer speciale (chiamato Lisp Machine) che doveva essere in
grado di elaborare programmi Lisp.
Nel 1986 il gruppo X3J13 fu formato per produrre una bozza ANSI per uno
standard comune delle funzioni Lisp. Ed infine, nel 1992, il gruppo
X3J13 pubblicò l'ANSI Common Lisp.
Le funzioni principali LISP
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.
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
Aree applicative LISP
Artificial Intelligence
AI Robots
Computer Games (Craps, Connect-4, BlackJack)
Pattern Recognition
Air Defense Systems
Implementation of Real-Time, embedded Knowledge-Based Systems