Lisp: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
Riga 1:
'''[[w:Lisp|Lisp]]''', che significa "'''
Usato oggi per creare
Il '''Lisp''' è un linguaggio di programmazione elegante, sintatticamente semplice e di facile apprendimento, usato per la sua flessibilità e la propensione a manipolare variabili con astrazione di oggetti complessi quali liste di dati. La sua particolare caratteristica funzionale e ricorsiva lo rende tanto flessibile da essere l'unico linguaggio in grado di interpretare/compilare se stesso con un polimorfismo
Per questo manuale ''on-line'' useremo vari interpreti/compilatori
== Breve storia ==
Tra il '59 ed i primi anni '70 il linguaggio trova interesse nelle applicazioni di ricerca finanziate dal DARPA che in seno ad alcune Università prestigiose quali il MIT e Carnegie-Mellon University creano su macchine a 36bit dell'epoca i primi porting di un interprete LISP curato personalmente da McCarthy.▼
Qui nasce la leggenda del polimorfismo del LISP; Viene creato un codice
Da questo progetto nasce anche la prima idea di open
Negli anni '80 si sviluppano hardware dedicati con processori stack machine specializzate nella manipolazioni di liste nella quale la memoria e l'architettura sono orientate a scelte specifiche per questo tipo di linguaggio, nascono le
▲Tra il 59 ed i primi anni 70 il linguaggio trova interesse nelle applicazioni di ricerca finanziate dal DARPA che in seno ad alcune Università prestigiose quali il MIT e Carnegie-Mellon University creano su macchine a 36bit dell'epoca i primi porting di un interprete LISP curato personalmente da McCarthy.
▲Qui nasce la leggenda del polimorfismo del LISP; Viene creato un codice lisp per compilare il LISP, da una idea del team il compilatore compila l'interprete ed il compilatore stesso rendendo ancora più veolce il codice esistente ed aprendo la strada ai sistemi di simulazione delle architetture dei processori. Dobbiamo comunque attendere gli anni 70 per vedere i primi progetti hardware al MIT di Lispmachine che faranno da motore alla economia ed al settore ricerca creando anche i primi hacker della storia ed una vasta ricaduta in aziende con molteplici specializzazioni messe a punto sulle macchine Lisp di questa epoca. Dobbiamo al LISP la nascita dei sistemi esperti, del programmi di problem solving le macchine inferenziali, il math solving, i database relazionali e gli esperimenti sul linguaggio naturale di query SQL, la tecnologia di elaborazione di immagine con software di RayTracing e le prime animazioni digitali.
▲Da questo progetto nasce anche la prima idea di open Source la GNU fundation, idea di Richard Stallman coinvolto ai progetti lispmachine del MIT, che con una lispmachine mise a punto in LISP "Emacs", un editor molto usato, ed i primi programmi server e client per la posta elettronica.
Negli anni '90
▲Negli anni 80 si sviluppano hardware dedicati con processori stack machine specializzate nella manipolazioni di liste nella quale la memoria e l'architettura sono orientate a scelte specifiche per questo tipo di linguaggio, nascono le LispMachine. Alle macchine LISP sono collegate le connection machine con 65535 processori, sono connesse con hardware per l'elaborazione grafica. Si crea la prima branca di esperti in elaborazione grafica e di immagini.
▲Negli anni 90 avvine il declino delle macchine LISP, l'evoluzione dei processori RISC e le potenze di calcolo in continua crescita portano queste architetture ad essere soppiantate da sistemi ad alte prestazioni con processori RISC a 64bit che interpretano e compilano codice lisp in linguaggio macchina senza l'ausilio del supporto di un hardware dedicato. Nascono tra molti dialetti di LISP un linguaggio LISP portabile tra le piattaforme Hardware il COMMON LISP ed il CLOS come linguaggio orientato agli oggetti.
== Per iniziare ==
Line 38 ⟶ 37:
Come abbiamo appena visto inserendo una lista composta da elementi separati da spazi tra 2 parentesi aperta e chiusa otteniamo l'esecuzione. Il processore LISP elabora (valuta) il comando inserito, sommando tutti termini che compongono la lista.
Avete appena scritto il vostro primo programma in LISP. Il Lisp esegue immediatamente i comandi introdotti sotto forma di liste che voi
La sintassi e molto semplice:
Line 61 ⟶ 60:
== Tipi dati nel Lisp ==
Nel
<source lang=lisp>
> (setq test 12)
Line 82 ⟶ 81:
== Variabili nel LISP ==
Le variabili in
Le variabili quindi assumono un significato ed un tipo solo quando il processo di EVAL le considera per l'esecuzione di una funzione.
Line 89 ⟶ 88:
float f1, Tarc, ...;
Nel
<source lang=lisp> > (setq val1 10)
10
Line 100 ⟶ 99:
> (+ val1 val2)
188
> (setq val2 "la casa al mare") <--- cambio di tipo della
"la casa al mare"
> (+ val1 val2 ) <------- errore si tenta la somma di tipi diversi
Line 107 ⟶ 106:
== Numeri ==
Il
Operazioni semplici di addizioni di una lista di elementi numerici.
<source lang=lisp> > (+ 1 4 6 7)
18</source>
Operazioni su più elementi della lista con
<source lang=lisp>> (* (/ 7 6 ) (+ 4 (* 4 6)))
98/3</source>
Line 117 ⟶ 116:
<source lang=lisp> > (/ 1 2)
1/2</source>
Il meccanismo di calcolo ed il risultato sono perfettamente controllabili dal
<source lang=lisp> > (* (/ 1 2 ) 6)</source>
Line 138 ⟶ 137:
Per calcolare funzioni complesse è un valido strumento interattivo adatto a trattare matrici o risolvere sistemi matematicamente complessi.
===
===
===
'''Introduzione''' ''da zero.''
Line 242 ⟶ 241:
<br />
==
==
==
<source lang=lisp>(0(1 2 3)(4 5)6(7 8)9)</source>
== Visione in Lisp ==
La visione artificiale è resa possibile da potenti
L'immagine
<source lang=lisp>
(camera-right '( (1 0 1 1 1 1 1 1 0 ... )
Line 263 ⟶ 262:
(1 0 1 1 1 1 1 1 0 ... ))</source>
Array di dimensione finite 800x600 che rappresenta la risoluzione del sistema di visione. Il linux existe un set di strumenti per convertire immagini da vari formati al formato testuale
Line 310 ⟶ 309:
== Web e Lisp? ==
Un uso insolito e poco pubblicizzato è
Prerequisiti:
- Installare nel proprio server Linux Guile (
- nella Vs. directory di apache ../www/cgi-bin/..ecc... copiate il file qui sotto
Line 336 ⟶ 335:
Il prodotto Web per eccellenza, stabilità e per modularità di interfaccia e potenza resta comunque Allegro della Franz Inc. della quale rimando a questo sito la trattazione di una implimentazione aziendale con database e transaction manager.
== TCP ed il
Lo sviluppo di internet e dei sistemi di comunicazione coinvolge anche linguaggi come il
Un ottimo test per vedere la semplicità della chiamate al Layer TCP/IP e per provare la stabilità di questo codice che trasmette indisturbato all'infinito.
|