Lisp (List Processor) è una famiglia di linguaggi di programmazione con implementazioni sia compilate sia interpretate, associata nel passato ai progetti di intelligenza artificiale. È stato ideato nel 1958 da John McCarthy come linguaggio formale per studiare la computabilità di funzioni ricorsive (nel senso di Skolem) su espressioni simboliche. È stato anche il primo linguaggio a facilitare uno stile di programmazione funzionale.
Descrizione
Il primo software libero con un nucleo LISP è stato emacs, diffuso editor di testo per terminale progettato negli anni ottanta da Richard Stallman sulle LISP machine dell'epoca e portato successivamente su tutti i sistemi operativi. Commercialmente, la diffusione più rilevante del linguaggio è avvenuta con la sua integrazione in programmi di uso comune, come nel CAD AutoCAD (Autodesk) o come nell'azienda editrice Interleaf, che utilizza una versione personalizzata di Lisp e strettamente integrata con le funzioni di programmazione dell'ambiente grafico.
La Symbolics Technology Inc. ha realizzato negli anni ottanta delle workstation e server con sistema operativo multitasking e orientato agli oggetti con una potentissima interfaccia grafica di programmazione simbolica, interamente programmato in LISP, compreso il microcodice del processore LISP.
Le prime LISPM (LISP Machine) erano state implementate al MIT. Anche la Xerox produsse delle macchine LISPM (Dandylion, Dandytiger) come pure la Texas Instrument (TI Explorer).
per complessi giochi di simulazione e valutazione di strategie operative.
, sono fioriti molti dialetti di LISP, tra cui, il più diffuso, e quello a cui solitamente ci si riferisce parlando di LISP, è Common LISP. Altri sono Scheme e Arc.
Programma di esempio Gli esempi qui riportati sono scritti in Common LISP (format t "Hello, World!") (princ "Hello, World!") (print "Hello, World!") (write "Hello, World!") Es: con Cmucl lisp GPL interprete e compilatore di codice macchina e/o bytecode provate a digitare:
* (format t "~&Hello, world!~%") Hello, world! NIL
Per compilare quanto sopra scrivere in un file di testo dal nome "test.lisp" quanto segue:
(defun miotest () (format t "~&Hello, world!~%"))
Lanciate Cmucl e da linea comandi del lisp interprete digitare:
# lisp .... * (compile-file "..../test.lisp")
Il comando trasforma e compila il file in test.x86 (codice macchina X86), quindi basta digitare:
* (require:test) * (miotest) Hello, world! NIL
...
Dialetti del LISP Arc AutoLISP Clojure Common LISP Scheme Nyquist
Note
Bibliografia D. Touretzky, Common Lisp - Un'introduzione graduale all'elaborazione simbolica, Zanichelli, ISBN 88-08-12248-4
Voci correlate Car e cdr Cons Common LISP Steel Bank Common Lisp Lisp Toolkit :Categoria:Software in Lisp
Altri progetti
Collegamenti esterni
Categoria:Linguaggi di programmazione funzionali Categoria:Linguaggi di programmazione imperativi Categoria:Intelligenza artificiale