Lisp: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
fix parametri non esistenti, logo non ufficiale
fix prosa
 
(39 versioni intermedie di 30 utenti non mostrate)
Riga 9:
|tipizzazione = [[tipizzazione dinamica|dinamica]], [[tipizzazione forte|forte]]
|influenzato_da = [[Information Processing Language|IPL]]
|ha_influenzato = [[CLIPS]], [[CLU (linguaggio)|CLU]], [[COWSEL]], [[Dylan (linguaggio)|Dylan]], [[Falcon (linguaggio di programmazione)|Falcon]], [[Forth (linguaggio)|Forth]], [[Haskell (linguaggio)|Haskell]], [[Io (programmazione)|Io]], [[Ioke]], [[JavaScript]], [[Julia (linguaggio di programmazione)|Julia]], [[Logo (informatica)|Logo]], [[Lua]], [[Mathematica]], [[ML (linguaggio di programmazione)|ML]], [[Nu (linguaggio)|Nu]], [[OPS5]], [[Perl]], [[POP-2/11]], [[Python]], [[Qi (linguaggio)|Qi]], [[R (software)|R]], [[Shen]], [[Rebol]], [[Ruby (linguaggio di programmazione)|Ruby]], [[SmallTalkSmalltalk]], [[Tcl]]
|estensione = .lisp
|sistema_operativo = [[Linux]], [[Mac OS XmacOS]] e [[Windows]]
}}
 
'''Lisp''' ('''''Lis'''t '''P'''rocessor'') è una famiglia di [[linguaggi di programmazione]] con implementazioni sia [[Compilatore|compilate]] sia [[Interprete (informatica)|interpretate]], spessoassociata usatonel passato neiai progetti di [[intelligenza artificiale]]. È stato ideato nel [[1958]] da [[John McCarthy]]<ref name="MCCARTHY">{{Cita web|url=http://www-formal.stanford.edu/jmc/recursive.html|titolo=Recursive Functions of Symbolic Expressions and Their Computation by Machine, Part I|autore=John McCarthy|accesso=13 ottobre 2006|urlarchivio=https://web.archive.org/web/20131004215327/http://www-formal.stanford.edu/jmc/recursive.html|urlmorto=sì}}</ref> come [[linguaggio formale]], per studiare lela equazionicomputabilità di [[algoritmoFunzione ricorsivoricorsiva|ricorsionefunzioni ricorsive]] in(nel senso di [[Albert Thoralf Skolem|Skolem]]) unsu modelloespressioni computazionalesimboliche. È unstato linguaggioanche diil programmazioneprimo chelinguaggio sia basafacilitare suluno concettostile di programma come [[funzioneprogrammazione (informatica)|funzionefunzionale]].
 
== Descrizione ==
Il primo [[software libero]] (free software) con un ''core'' LISP è stato [[emacs]], diffuso [[editor (informatica)|editor]] di testo per terminale progettato negli anni ottanta da [[Richard Stallman]] sulle ''LISP machine'' dell'epoca e portato successivamente su tutti i [[sistema operativo|sistemi operativi]].
Commercialmente, la diffusione più rilevante del linguaggio è avvenuta con la sua integrazione in programmi di uso comune, come nel [[CAD]] [[AutoCAD]] ([[Autodesk|Autodesk inc.]]) o come nel [[publisher]] [[Interleaf]] ([[Interleaf|Interleaf Inc.]]), che utilizza una versione personalizzata di Lisp e strettamente integrata con le funzioni di programmazione dell'ambiente grafico.
 
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 [[sistema operativo|sistemi operativi]]. Commercialmente, la diffusione più rilevante del linguaggio è avvenuta con la sua integrazione in programmi di uso comune, come nel [[Computer-aided design|CAD]] [[AutoCAD]] ([[Autodesk|Autodesk inc.]]) o come nelnell'azienda [[publisher]]editrice [[Interleaf]] ([[Interleaf|Interleaf Inc.]]), che utilizza una versione personalizzata di Lisp e strettamente integrata con le funzioni di programmazione dell'ambiente grafico.
La [http://www.symbolics.com Symbolics Technology Inc.] ha realizzato negli anni '80 delle [[workstation]] e server con sistema operativo [[multitasking]] e [[Oggetto (informatica)|orientato agli oggetti]] con una potentissima [[interfaccia grafica]] di [[programmazione simbolica]], tutto interamente programmato in LISP anche il [[microcodice]] del [[processore LISP]]: [http://www.sts.tu-harburg.de/~r.f.moeller/symbolics-info/symbolics.html foto].
 
La [http://www.symbolics.com Symbolics Technology Inc.] ha realizzato negli anni '80ottanta delle [[workstation]] e server con sistema operativo [[multitasking]] e [[Oggetto (informatica)|orientato agli oggetti]] con una potentissima [[interfaccia grafica]] di [[programmazione simbolica]], tutto interamente programmato in LISP, anchecompreso il [[microcodice]] del [[processore LISP]]: [http://www.sts.tu-harburg.de/~r.f.moeller/symbolics-info/symbolics.html foto].
 
Le prime [[LISPM]] (LISP Machine) erano state implementate al [[Massachusetts Institute of Technology|MIT]]. Anche la [[Xerox]] produsse delle macchine LISPM (Dandylion, Dandytiger) come pure la Texas Instrument (TI Explorer).
Line 25 ⟶ 26:
{{citazione necessaria|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.
 
{{citazione necessaria|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 (linguaggio di programmazione)|Arc]].
 
== Programma di esempio ==
 
Gli esempi qui riportati sono scritti in Common LISP
<sourcesyntaxhighlight lang="lisp">
(format t "Hello, World!")
(princ "Hello, World!")
(print "Hello, World!")
(write "Hello, World!")
</syntaxhighlight>
</source>
Es: con Cmucl lisp GPL interprete e compilatore di codice macchina e/o [[bytecode]] provate a digitare:
 
Riga 64:
 
== Dialetti del LISP ==
* [[NyquistArc (linguaggio di programmazione)|NyquistArc]]
*[[AutoLISP]]
* [[ClojureAutoLISP]]
* [[Common LISPClojure]]
* [[SchemeCommon LISP]]
* [[Scheme]]
*[[Nyquist (linguaggio di programmazione)|Nyquist]]
* [[Nyquist (linguaggio di programmazione)|Nyquist]]
 
== Note ==
Line 74 ⟶ 75:
 
== Bibliografia ==
* [http://www.cs.cmu.edu/~dst/ D. Touretzky], [httphttps://www.cs.cmu.edu/~dst/LispBook/index.html ''Common Lisp - Un'introduzione graduale all'elaborazione simbolica''], Ed. Zanichelli, ISBN 88-08-12248-4
*{{cita testo|titolo=LISP: l'intelligenza artificiale|rivista=Micro & Personal Computer|numero=4|data=aprile 1980|pp=72-77|editore=Gruppo Editoriale Suono|città=Roma|url=https://archive.org/stream/MePC004#page/n71/mode/1up|OCLC=859585120}}
*{{cita testo|titolo=LISP: l'intelligenza artificiale - Seconda parte: le applicazioni|rivista=Micro & Personal Computer|numero=5|data=maggio/giugno 1980|pp=58-62|editore=Gruppo Editoriale Suono|città=Roma|url=https://archive.org/stream/MePC005#page/n57/mode/1up|OCLC=859585120}}
*{{cita libro|autore=Ken Tractor|titolo=Introduzione al LISP - Elementi fondamentali di programmazione|data=1984|editore=Franco Muzzio & c.|città=|url=https://archive.org/details/introduzioneallisp|ISBN=88-7021-256-4}}
 
== Voci correlate ==
* [[Car e cdr]]
* [[Car e cdr|car cdr]] e [[Cons (funzione)|cons]]: le funzioni fondamentali del Lisp per operare sulle [[Lista concatenata|liste]]
* [[Cons]]
* [[Common LISP]] - Il principale dialetto Lisp
* [[Common LISP]]
* [[Steel Bank Common Lisp]] - Interprete e compilatore Common ModLisp
* [[Steel Bank Common Lisp]]
* [[Lisp Toolkit]] per la creazione di interfacce grafiche multipiattaforma
* [[Lisp Toolkit]]
* [[:Categoria:Software in Lisp]]
 
== Altri progetti ==
{{interprogetto|commons=Category:Lisp (programming language)}}
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
* [http://www.lisp.it Italian Lisp User Group]
* {{FOLDOC}}
* [http://www.redchar.net "Il Mio Lisp", libro italiano sul linguaggio Lisp utilizzato nei software CAD]
* [{{cita web|http://www.lisp.it |Italian Lisp User Group]}}
* [ftp://ftp.lisp.it/pub/iso/lispnix-reskit.iso ''Common Lisp e Tools + manuali con distribuzione Knoppix pronta per l'uso''], (Lisp Live CD)
* [{{cita web|http://www.redchar.net |"Il Mio Lisp", libro italiano sul linguaggio Lisp utilizzato nei software CAD]}}
* [ftp{{cita web|http://ftpwww.lisplispnyc.itorg/pubstatic/iso/lispnixlisp-reskitres-kit.2004-12-23.iso ''|"Common Lisp e Tools + manuali con distribuzione Knoppix pronta per l'uso''], (Lisp Live CD)"}}
 
{{Principali linguaggi di programmazione}}
{{Controllo di autorità}}
{{portale|informatica}}
 
[[Categoria:Linguaggi di programmazione funzionali]]
[[Categoria:Linguaggi di programmazione imperativi]]
[[Categoria:Intelligenza artificiale]]