Cosa ha fatto in modo diverso da Lisp

1. Condizionale Un condizionale è una costruzione IF-Then-Else. Ora diamo loro per scontato. Sono stati inventati da McCarthy mentre sviluppava Lisp. (Fortran in quel momento ha avuto solo un goto condizionale, basato da vicino l’istruzione di trasferimento nell’hardware sottostante.) McCarthy, che era sul comitato dell’algolo, introdotto condizionato in Algol, da cui hanno esteso la maggior parte delle altre lingue.
2 . Un tipo di funzione. In Lisp, le funzioni sono oggetti di prima classe, sono un tipo di dati come numeri interi, catene, ecc. E hanno una rappresentazione letterale, può essere immagazzinata nelle variabili, può essere trasmessa come argomenti, e così via.
3 . Recupero La ricorsione è esistita come un concetto matematico da prima di Lisp, ovviamente; Ma Lisp è stato il primo linguaggio di programmazione per supportarlo. (Si potrebbe dire che è implicito nel fare le funzioni di prima classe oggetti.)
4. Un nuovo concetto di variabili. In Lisp, tutte le variabili sono, infatti, puntatori. I valori hanno tipi, non variabili e assegnabili o variabili di collegamento significa copiare cacca, non a ciò che puntano.
5. Raccolta della spazzatura.
6. Programmi composti da espressioni. I programmi BLisp sono gli alberi di espressioni, ognuno dei quali restituisce un valore. (In alcuni lisp le espressioni possono restituire diversi valori.) Questo contrasta con Fortran e la maggior parte delle lingue successive, che distinguono tra espressioni e dichiarazioni.
Era naturale avere questa distinzione a Fortran, perché (come previsto in una lingua In cui il formato di input è stato le carte perforate), la lingua è stata orientata alle linee. Le dichiarazioni non possono essere fornite. Pertanto, mentre avevi bisogno di espressioni per la matematica al lavoro, non ha avuto senso rendere qualcos’altro che restituisca un valore, perché non poteva esserci nulla che lo aspettasse.
Questa limitazione è scomparsa con l’arrivo delle lingue strutturate in blocchi , Ma da allora era già troppo tardi. La distinzione tra espressioni e dichiarazioni è stata rafforzata. È stato trasmesso da Fortran ad Algol e da lì ai suoi discendenti.
Quando una lingua è fatta interamente da espressioni, puoi farlo come vuoi. Qui puoi dire (usare la sintassi dell’arco):
(se foo (= x 1) (= x 2))
o
(= x (se foo 1 2)
7. Un tipo di simbolo. I simboli differiscono dalle catene in cui l’uguaglianza può essere dimostrata confrontando un puntatore.
8. Una notazione per il codice usando alberi di simbolo.
9. Tutta la lingua è sempre disponibile. Non c’è una vera distinzione tra il tempo di lettura, il tempo di compilazione e il runtime. È possibile compilare o eseguire il codice durante la lettura, leggere o eseguire il codice durante la compilazione e leggere o compilare il codice in runtime.
Il codice di esecuzione al tempo di lettura consente agli utenti di riprogrammare la sintassi della Lisp; Eseguire il codice in tempo di compilazione è la base delle macro; La compilazione di runtime è la base dell’uso di Lisp come linguaggio di estensione in programmi come Emacs; E la lettura del tempo di esecuzione consente ai programmi di comunicare utilizzando le espressioni-S, un’idea reinventata di recente come XML.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *