Lisp

Da Wikipedia, l'enciclopedia libera.

Lisp (List Processor) è una famiglia di linguaggi di programmazione con implementazioni sia compilate che interpretate, spesso usato nei progetti di intelligenza artificiale. È stato ideato nel 1958 da John McCarthy come linguaggio formale, per studiare le equazioni di ricorsione in un modello computazionale. È un linguaggio di programmazione che si basa sul concetto di programma come funzione.

Il primo software libero (free software) con un core LISP è stato emacs, diffuso editor di testo per terminale progettato negli anni 80 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 inc.) o come nel publisher Interleaf (Interleaf Inc.), 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 '80 delle workstation e server con sistema operativo multitasking e orientato agli oggetti con una potentissima interfaccia grafica di programmazione simbolica, tutto interamente programmato in LISP anche il microcodice del processore LISP: foto.

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).

Questi progetti dimostrano le enormi possibilità di questo linguaggio, talvolta erroneamente considerato solo accademico. Complessi software LISP restano ancora in servizio presso enti governativi, militari, aerospaziali, compagnie aeree, compagnie petrolifere, ecc. per complessi giochi di simulazione e valutazione di strategie operative, dimostrando che i progetti scritti in LISP di Intelligenza Artificiale mediante linguaggio simbolico sono validi e tutt'ora non eguagliati da altri linguaggi.

Data la grande versatilità del linguaggio e quindi la facilità di estensione e personalizzazione da parte del programmatore, sono fioriti molti dialetti di LISP, tra cui, il più diffuso, e quello a cui solitamente ci si riferisce parlando di LISP, è il Common LISP. Altri sono lo Scheme e l'Arc.

Indice

[modifica] 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
     *

...

[modifica] Dialetti del LISP

[modifica] Bibliografia

[modifica] Voci correlate

[modifica] Lisp Live CD

[modifica] Collegamenti esterni

Principali linguaggi di programmazione (tutti)

Ada | ALGOL | APL | Awk | BASIC | C | C++ | C# | COBOL | Delphi | Eiffel | Fortran | Haskell | IDL | Java | JavaScript | J# | Lisp | LOGO | ML | Objective C | O'Caml | Pascal | Perl | PHP | PL/I | PLaSM | Prolog | Python | Ruby | SAS | Scheme | sh | Simula | Smalltalk | SQL | Transact-SQL | Visual Basic

Strumenti personali