Zomwe zidapangitsa Lisp kukhala wapadera

Β«Chiyankhulo chachikulu kwambiri cha mapulogalamu chomwe chinapangidwapoΒ«
- Alan Kay, "pa Lisp"

Zomwe zidapangitsa Lisp kukhala wapadera

McCarthy atapanga Lisp kumapeto kwa zaka za m'ma 1950, zinali zosiyana kwambiri ndi zilankhulo zomwe zinalipo kale, zomwe zinali zofunika kwambiri. Fortran.

Lisp adapereka malingaliro asanu ndi anayi atsopano:

1. Zoyenera. Mawu okhazikika ndi zomanga ngati-ndiye-mwina. Tsopano timawatenga mopepuka. Anali anatulukira McCarthy pakukula kwa Lisp. (Fortran panthawiyo anali ndi mawu a goto okha, ogwirizana kwambiri ndi malangizo a nthambi pa hardware yapansi.) McCarthy, pamene anali mu komiti ya Algol, adathandizira zofunikira ku Algol, kumene anafalikira ku zilankhulo zina.

2. Mtundu wa ntchito. Mu Lisp, ntchito ndi zinthu zamtundu woyamba - ndi mtundu wa data, monga manambala, zingwe, ndi zina zambiri, ndipo zimakhala ndi chiwonetsero chenicheni, zitha kusungidwa mosiyanasiyana, zitha kuperekedwa ngati mikangano, ndi zina zambiri.

3. Kubwereza. Kubwereza, ndithudi, kunalipo ngati lingaliro la masamu pamaso pa Lisp, koma Lisp anali chinenero choyamba chothandizira. (Izi mwina zimatanthauzidwa pakupanga ntchito ngati zinthu zapamwamba.)

4. Lingaliro latsopano la zosintha. Ku Lisp, zosintha zonse ndizolozera zogwira mtima. Makhalidwe ndi omwe mitundu ili nayo, osati zosinthika, ndipo kugawa kapena kumangirira zosinthika kumatanthauza kukopera zolozera, osati zomwe amaloza.

5. Kutolera zinyalala.

6. Mapulogalamu opangidwa ndi mawu. Mapulogalamu a Lisp ndi mitengo yamawu, iliyonse yomwe imabwezera mtengo. (Mawu ena a Lisp amatha kubweretsanso zinthu zingapo.) Izi zimasiyana ndi Fortran ndi zilankhulo zina zambiri zopambana zomwe zimasiyanitsa "mawu" ndi "ziganizo."

Zinali zachibadwa kukhala ndi kusiyana kumeneku ku Fortran chifukwa chinenerocho chinali chotsatira mzere (zosadabwitsa kwa chinenero chomwe mawonekedwe ake olowetsa anali khadi lokhomeredwa). Simunathe kukhala ndi ziganizo zosungidwa. Ndipo malinga ngati mumafunikira mawu a masamu kuti mugwire ntchito, panalibe chifukwa chokhalira ndi china chilichonse kubweza mtengo chifukwa sipangakhale chilichonse chomwe chikuyembekezera kubwezeredwa.

Zoletsazo zidachotsedwa pakubwera kwa zilankhulo zamagulu, koma panthawiyo kunali kuchedwa. Kusiyana pakati pa mawu ndi ziganizo kwakhazikitsidwa kale. Inadutsa kuchokera ku Fortran kupita ku Algol ndi kupitirira kwa mbadwa zawo.

Chilankhulo chikapangidwa ndi mawu okha, mutha kupanga mawu mwanjira iliyonse yomwe mukufuna. Mutha kulemba mwina (pogwiritsa ntchito syntax Arc)

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

kapena

(= x (if foo 1 2))

7. Mtundu wa chizindikiro. Makhalidwe ndi osiyana ndi zingwe, momwe mungayang'anire kufanana poyerekezera zolozera.

8. Chizindikiro cha code kugwiritsa ntchito zizindikiro.

9. Chilankhulo chonse chimapezeka nthawi zonse. Palibe kusiyana koonekeratu pakati pa nthawi yowerenga, kusonkhanitsa nthawi ndi nthawi yothamanga. Mutha kupanga kapena kuyendetsa kachidindo mukamawerenga, kapena kuwerenga kapena kuyendetsa kachidindo mukamalemba, kapena kuwerenga kapena kuphatikizira ma code pamene ikuyenda.

Khodi yothamanga powerenga imalola ogwiritsa ntchito kukonzanso mawu a Lisp; kuthamanga code pa nthawi yophatikiza ndiye maziko a macros; Runtime compilation ndiye maziko ogwiritsira ntchito Lisp ngati chilankhulo chowonjezera pamapulogalamu monga Emacs; ndipo potsiriza, kuwerenga kwa nthawi yothamanga kumalola mapulogalamu kuti azilankhulana pogwiritsa ntchito s-mawu, lingaliro lopangidwanso posachedwapa mu XML.

Pomaliza

Lisp atapangidwa koyamba, malingaliro awa anali otalikirana ndi machitidwe wamba omwe amatsatiridwa ndi zida zomwe zidapezeka kumapeto kwa zaka za m'ma 1950.

M'kupita kwa nthawi, chilankhulo chosasinthika, chophatikizidwa ndi kupambana kwa zilankhulo zodziwika bwino, pang'onopang'ono chinasintha kupita ku Lisp. Mfundo 1-5 tsopano zavomerezedwa kwambiri. Mfundo 6 ikuyamba kuwonekera pagulu. Mu Python, pali ndime 7 mwanjira ina, ngakhale palibe mawu oyenerera. Chinthu cha 8, chomwe (ndi chinthu 9) chimapangitsa kuti macros atheke ku Lisp, akadali ku Lisp, mwina chifukwa (a) amafunikira mabataniwo kapena china chake cholakwika, ndipo (b) ngati muwonjezera mphamvu zaposachedwa, mutha osanenanso kuti adayambitsa chilankhulo chatsopano, koma adangopanga chilankhulo chatsopano cha Lisp; -)

Ngakhale izi ndizothandiza kwa opanga mapulogalamu amakono, ndizodabwitsa kufotokozera Lisp molingana ndi kusiyana kwake ndi njira zachisawawa zomwe zimatengedwa m'zilankhulo zina. Izi mwina sizingakhale zomwe McCarthy ankaganiza. Lisp sanapangidwe kuti akonze zolakwika za Fortran; zidawoneka ngati zotulukapo zoyesera axiomatize kuwerengera.

Source: www.habr.com

Kuwonjezera ndemanga