Wat huet de Lisp speziell gemaach

«Déi gréisste Programméierungssprooch déi jeemools erstallt gouf«
- Alan Kay, "op Lisp"

Wat huet de Lisp speziell gemaach

Wéi de McCarthy de Lisp an de spéiden 1950er entwéckelt huet, war et radikal anescht wéi déi existéierend Sproochen, déi wichtegst vun deenen war Fortran.

D'Lisp huet néng nei Iddien agefouert:

1. Konditioune. Conditional Aussoen sinn wann-dan-aner Konstruktiounen. Elo huelen mir se selbstverständlech. Si woren erfonnt McCarthy während der Entwécklung vu Lisp. (Fortran deemools hat nëmmen goto Aussoen, enk mat enger Branche Instruktioun op der Basisdaten Hardware verbonnen.) McCarthy, iwwerdeems op der Algol Comité, Conditioune bäigedroen Algol, vu wou se verbreet op aner Sproochen.

2. Eng Funktiounstyp. Am Lisp sinn d'Funktiounen éischtklasseg Objeten - si sinn en Datentyp, grad wéi Zuelen, Saiten, asw., an hunn eng wuertwiertlech Representatioun, kënnen a Variablen gespäichert ginn, kënnen als Argumenter passéiert ginn, etc.

3. Rekursioun. Rekursioun, natierlech, existéiert als mathematescht Konzept virum Lisp, awer Lisp war déi éischt Programméierungssprooch fir et z'ënnerstëtzen. (Dëst ass vläicht implizéiert fir Funktiounen als éischtklasseg Objekter ze kreéieren.)

4. En neit Konzept vu Verännerlechen. Am Lisp sinn all Variabelen effektiv Indicateuren. Wäerter sinn wat Typen hunn, net Variablen, an d'Verännerlechen zouzeweisen oder bindend heescht Kopie vun Pointer, net op wat se weisen.

5. Gerempels Kollektioun.

6. Programmer besteet aus Ausdréck. Lisp Programmer si Beem vun Ausdrock, déi all e Wäert zréckginn. (E puer Lisp Ausdréck kënne verschidde Wäerter zréckginn.) Dëst kontrastéiert mam Fortran a vill aner erfollegräich Sproochen déi tëscht "Ausdréck" an "Aussoen" ënnerscheeden.

Et war natierlech dësen Ënnerscheed zu Fortran ze hunn well d'Sprooch Linn-orientéiert war (net iwwerraschend fir eng Sprooch hir Input Format war eng ausgepöppelt Kaart). Dir kënnt keng nestéiert Aussoen hunn. A soulaang wéi Dir mathematesch Ausdréck brauch fir ze schaffen, war et kee Sënn fir soss eppes e Wäert zréckzeginn, well et vläicht näischt wart op zréck.

D'Restriktiounen goufen mam Advent vu blockstrukturéierte Sproochen opgehuewen, awer deemools war et ze spéit. Den Ënnerscheed tëscht Ausdréck an Aussoen ass scho festgeluecht. Et ass vu Fortran op Algol a weider op hir Nokommen gaang.

Wann eng Sprooch komplett aus Ausdréck gemaach ass, kënnt Dir Ausdréck komponéieren wéi Dir wëllt. Dir kënnt entweder schreiwen (mat der Syntax Arc)

(if foo (= x 1) (= x 2))

oder

(= x (if foo 1 2))

7. E Symbol Typ. Charaktere sinn anescht wéi Strings, an deem Fall kënnt Dir d'Gläichheet kontrolléieren andeems Dir Pointer vergläicht.

8. Eng Notatioun fir Code benotzt Symbol Beem.

9. Déi ganz Sprooch ass ëmmer verfügbar. Et gëtt keen offensichtlechen Ënnerscheed tëscht Lieszäit, Kompiléierungszäit a Lafzäit. Dir kënnt Code kompiléieren oder lafen wärend Dir liest, oder liest oder leeft Code wärend Dir kompiléiert, oder liest oder kompiléiert Code wärend et leeft.

Code laafen beim Liesen erlaabt d'Benotzer dem Lisp seng Syntax nei ze programméieren; Lafen Code bei der Zesummesetzung ass d'Basis fir Makroen; Runtime Compilation ass d'Basis fir d'Lisp als Erweiderungssprooch a Programmer wéi Emacs ze benotzen; an endlech, Runtime liesen erlaabt Programmer ze kommunizéieren benotzt s-Ausdréck, eng Iddi kuerzem an XML nei erfonnt.

Konklusioun

Wéi de Lisp fir d'éischt erfonnt gouf, waren dës Iddien wäit ewech vun konventionelle Programméierungspraktiken diktéiert vun der Hardware déi an de spéide 1950er verfügbar ass.

Mat der Zäit huet d'Standardsprooch, verkierpert duerch den Erfolleg vu populäre Sproochen, sech lues a lues a Richtung Lisp entwéckelt. Punkten 1-5 sinn elo allgemeng ugeholl. De Punkt 6 fänkt am Mainstream un. Python huet Klausel 7 an iergendenger Form, obwuel et keng gëeegent Syntax gëtt. Den Artikel 8, deen (mat Punkt 9) Makroen zu Lisp méiglech mécht, ass nach ëmmer nëmmen zu Lisp, wahrscheinlech well (a) et déi Klammern erfuerdert oder eppes gläich Schlechtes, an (b) wann Dir dës lescht Erhéijung vun der Muecht bäidréit, kënnt Dir net méi behaapten eng nei Sprooch erfonnt ze hunn, mä nëmmen en neien Dialekt vu Lisp entwéckelt ze hunn; -)

Och wann dëst nëtzlech ass fir modern Programméierer, ass et komesch Lisp a punkto hiren Ënnerscheed vun den zoufälleg Techniken, déi an anere Sproochen ugeholl ginn, ze beschreiwen. Dëst ass vläicht net wat de McCarthy geduecht huet. Lisp war net entworf Fortran d'Feeler ze korrigéieren; et erschéngt méi als Nebenprodukt vum Versuch axiomatize Berechnungen.

Source: will.com

Setzt e Commentaire