Abin da ya sa Lisp ta musamman

«Yaren shirye-shirye mafi girma da aka taɓa ƙirƙira«
- Alan Kay, "a kan Lisp"

Abin da ya sa Lisp ta musamman

Lokacin da McCarthy ya haɓaka Lisp a ƙarshen 1950s, ya bambanta sosai da harsunan da ake dasu, mafi mahimmancin su shine. Fortran.

Lisp ya gabatar da sabbin ra'ayoyi guda tara:

1. Sharuɗɗa. Maganganun sharadi idan-sai-wani gini ne. Yanzu mun dauke su a banza. Sun kasance ƙirƙira McCarthy a lokacin ci gaban Lisp. (Fortran a lokacin yana da bayanan goto kawai, tare da haɗe-haɗe da umarnin reshe akan kayan aikin da ke ƙasa.) McCarthy, yayin da yake kan kwamitin Algol, ya ba da gudummawar sharuɗɗan ga Algol, daga inda suka bazu zuwa wasu harsuna.

2. Nau'in aiki. A cikin Lisp, ayyuka sune abubuwa na farko - su ne nau'in bayanai, kamar lambobi, kirtani, da dai sauransu, kuma suna da wakilci na ainihi, ana iya adana su a cikin masu canji, ana iya wuce su azaman muhawara, da dai sauransu.

3. Maimaitawa. Maimaituwa, ba shakka, ya kasance azaman ra'ayi na lissafi kafin Lisp, amma Lisp shine yaren shirye-shirye na farko don tallafawa shi. (Wataƙila wannan yana nufin ƙirƙirar ayyuka azaman abubuwa na aji na farko.)

4. Wani sabon ra'ayi na masu canji. A cikin Lisp, duk masu canji masifu ne masu tasiri. Ƙimar ita ce nau'ikan nau'ikan suna da, ba masu canji ba, kuma sanyawa ko ɗaure masu canji na nufin kwafin masu nuni, ba abin da suke nunawa ba.

5. Tarin shara.

6. Shirye-shiryen da suka ƙunshi maganganu. Shirye-shiryen Lisp bishiyoyi ne na maganganu, kowannensu yana mayar da darajar. (Wasu maganganun Lisp na iya dawo da ƙima da yawa.) Wannan ya bambanta da Fortran da sauran harsuna masu nasara waɗanda suka bambanta tsakanin “bayani” da “bayani.”

Yana da dabi'a don Fortran ya sami wannan bambance-bambance saboda yaren yana da layi (ba abin mamaki ba ga harshen wanda tsarin shigarwa ya kasance katin bugawa). Ba za ku iya samun bayanan gida ba. Kuma muddin kuna buƙatar maganganun lissafi don aiki, babu ma'ana a sami wani abu kuma ya dawo da ƙima saboda ƙila babu wani abu da zai jira a dawo da shi.

An ɗage hane-hane tare da fitowar harsunan da aka ƙera toshe, amma a lokacin ya yi latti. An riga an kafa bambanci tsakanin maganganu da maganganu. Daga Fortran ya wuce zuwa Algol har zuwa zuriyarsu.

Lokacin da harshe ya kasance gaba ɗaya na furci, za ku iya tsara maganganun yadda kuke so. Kuna iya rubuta ko ɗaya (ta amfani da ma'auni Arc)

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

ko

(= x (if foo 1 2))

7. Nau'in alama. Haruffa sun bambanta da kirtani, a cikin wannan yanayin zaku iya bincika daidaito ta hanyar kwatanta masu nuni.

8. Alamar alamar code ta amfani da bishiyoyi masu alama.

9. Harshen gaba ɗaya yana samuwa koyaushe. Babu wani bambanci a fili tsakanin lokacin karantawa, tara lokaci da lokacin gudu. Kuna iya haɗawa ko kunna code yayin da kuke karantawa, ko karantawa ko kunna code yayin da kuke haɗawa, ko karantawa ko haɗa lamba yayin da kuke aiki.

Gudun code yayin karatun yana ba masu amfani damar sake tsara tsarin haɗin gwiwar Lisp; lambar gudu a lokacin tattarawa shine tushen macro; Tarin lokacin aiki shine tushen amfani da Lisp azaman yaren faɗaɗawa a cikin shirye-shirye kamar Emacs; kuma a ƙarshe, karatun runtime yana ba da damar shirye-shirye don sadarwa ta amfani da s-bayanin, ra'ayin da aka sake ƙirƙira kwanan nan a cikin XML.

ƙarshe

Lokacin da aka fara ƙirƙira Lisp, waɗannan ra'ayoyin sun yi nisa daga ayyukan shirye-shirye na al'ada waɗanda kayan aikin da ake samu a ƙarshen 1950s suka tsara.

Bayan lokaci, tsofin harshe, wanda ke tattare da nasarar shahararrun harsuna, a hankali ya samo asali zuwa Lisp. An karɓi maki 1-5 yanzu ko'ina. Batu na 6 yana fara bayyana a cikin al'ada. A cikin Python, akwai juzu'i na 7 a wani nau'i, kodayake babu wani ma'ana da ya dace. Abu na 8, wanda (tare da abu na 9) ya sa macros ya yiwu a cikin Lisp, har yanzu yana cikin Lisp kawai, mai yiwuwa saboda (a) yana buƙatar waɗannan ƙididdiga ko wani abu mara kyau, kuma (b) idan kun ƙara wannan sabon haɓakar iko, zaku iya. ba ya ƙara da'awar ƙirƙira sabon harshe, amma kawai don ƙirƙirar sabon yare na Lisp; -)

Ko da yake wannan yana da amfani ga masu shirye-shirye na zamani, amma yana da ban mamaki a kwatanta Lisp dangane da bambancinsa da dabarun da ake amfani da su a wasu harsuna. Wataƙila wannan ba shine abin da McCarthy yake tunani ba. Ba a tsara Lisp don gyara kurakuran Fortran ba; ya bayyana fiye a matsayin samfurin gwaji axiomatize lissafin.

source: www.habr.com

Add a comment