Quod speciale fecit Lisp?

«Maxima programmatio linguarum semper creata est«
— Alan Kay, "on Lisp"

Quod speciale fecit Lisp?

Cum McCarthy in nuper 1950s Lisp succrevit, prorsus dissimilis fuit ab exsistentibus linguis, quarum maxima erat. Fortran.

Balbutire unde novas ideas introduxit:

1. Conditionales. Conditionales constitutiones sunt si-tunc-aliae constructiones. Nunc ea pro concesso accipimus. Erant invented McCarthy in evolutione Lisp. (Fortran eo tempore gata solum dicta, ramum instructioni in ferramentis subjectis arcte copulatum.) McCarthy, dum in comitio Algol conditionalia Algol contulit, unde ad alias linguas se diffundebat.

2. Munus genus. In Lisp, functiones objectorum primae classis sunt - species data sunt, sicut numeri, chordae, etc., et literam repraesentationem habent, in variabilibus condi possunt, ut argumenta praeteriri possunt, etc.

3. Recursion. Recursio, sane, exstitit ut conceptus mathematicus coram Lisp, sed Lisp primus programmationis lingua favere potuit. (Hoc fortasse significatum est in muneribus faciendis sicut objecta primae classis).

4. Nova notio variabilium. In Lisp, omnes variabiles argumenta efficaciora sunt. Valores species sunt quae habent, non variabiles, et variabiles differentias assignare vel ligare significat indicationes describendi, non id quod demonstrant.

5. Purgamentum collectio.

6. Programmata ex expressionibus. Programmata blandae sunt arbores vocum, quarum singulae reddit pretium. (Quaedam expressiones Lisp multiplices valores referre possunt.) Haec contraria cum Fortran et multis aliis linguis felicissimis quae inter "expressiones" et "dictiones" distinguunt.

Naturale erat hanc distinctionem habere in Fortran quod lingua orientata erat (non mirum in lingua cuius forma initus erat card impugnati). Dictis nidificasse non potuisti. Et dum mathematicis elocutionibus opus erat ad operandum, nihil puncti haberes quod aliud pretium redderet, quod ne quid expectans redderetur.

restrictiones elatae sunt adveniente linguarum obstructarum, sed tum sero erat. Distinctio vocum ac sententiarum iam probatum est. Transiit a Fortran ad Algol et ulterius ad posteros.

Cum dictio plane enunciationum fit, expressiones quovis modo componere potes. Potes scribere vel (utendo syntaxi arcum,)

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

uel

(= x (if foo 1 2))

7. Signum type. Characteres a chordis differentes sunt, quo in casu aequalitatem potes indicibus comparantibus.

8. Notatio in codice symbolis utens arboribus.

9. Tota lingua semper praesto est. Nulla manifesta differentia est inter legere tempus, tempus ordinare et currere tempus. Potes ordinare vel currere codicem dum legeris, vel codicem legere vel currere dum ordinas, vel legere vel ordinare codicem dum currit.

Currens codicem dum legere sinit utentes ad reprogram syntaxin Lisp; cursus code at compile tempus basis est macros; runtime compilatio fundamentum est ad linguam Lisp utendi extensio in programs sicut Emacs; ac demum, lectio runtime programmata communicare permittit ut s-expressiones utentes, idea nuper reinventa in XML.

conclusio,

Cum Lisp primum inventa est, hae notiones procul erant clamoris ab exercitiis programmandi conventionalibus dictatis ferramentis promptis in nuper 1950s.

Subinde lingua defalta, successu linguarum vulgarium indita, paulatim ad Lisp evolvitur. Puncta 1—5 nunc late accepta sunt. Punctum 6 incipit in amet apparere. Apud Pythonem est clausula 7 in aliqua forma, cum nulla sit apta syntaxis. Item 8, quod (cum item 9) efficit macros possibilis in Lisp, adhuc tantum in Lisp, probabiliter quia (a) requirit parentheses vel aliquid aeque malum, et si addideris hanc novissimam accessionem potentiae, potes. non iam novam linguam finxisse, sed novam tantum Lisporum dialectum elaborasse; -)

Etsi hoc utile est pro hodiernis programmatibus, mirum est describere Lispam secundum differentiam suam ab artificiis incertis in aliis linguis adhibitis. Hoc McCarthy cogitabat non esse. Lisp was not designed to correct's Errors Fortran; apparuit plus quam per-productum ex conatur axiomatize calculations.

Source: www.habr.com

Add a comment