Chii chakaita Lisp akakosha

«Mutauro mukurusa wepurogiramu wati wagadzirwa«
- Alan Kay, "paLisp"

Chii chakaita Lisp akakosha

McCarthy paakagadzira Lisp mukupera kwema1950, yakanga yakasiyana zvakanyanya nemitauro yaivepo, iyo inonyanya kukosha yaive. Fortran.

Lisp akaunza mazano mapfumbamwe matsva:

1. Conditionals. Conditional statements ndeye kana-zve-zvimwe zvivakwa. Iye zvino tinovatora sechinhu chisina basa. Vakanga vari invented McCarthy panguva yekuvandudzwa kweLisp. (Fortran panguva iyoyo yaingova negoto statements, yakanyatsobatanidzwa kune murayiridzo webazi pamusoro pe hardware yepasi.) McCarthy, paaiva muAlgol komiti, akabatsira mamiriro ezvinhu kuAlgol, kubva kwavakapararira kune mimwe mitauro.

2. A function type. MuLisp, mabasa zvinhu zvekutanga-kirasi - imhando yedata, senge nhamba, tambo, nezvimwe, uye ine chaiyo inomiririra, inogona kuchengetwa mumhando, inogona kupfuudzwa senharo, nezvimwe.

3. Recursion. Recursion, hongu, yaivepo sepfungwa yemasvomhu pamberi peLisp, asi Lisp yaive yekutanga hurongwa mutauro kuitsigira. (Izvi zvimwe zvinorehwa mukugadzira mabasa sezvinhu zvekirasi yekutanga.)

4. Pfungwa itsva yezvinoshanduka. MuLisp, ese akasiyana anonongedzera anoshanda. Values ​​ndiwo marudzi ane, kwete akasiyana, uye kugovera kana kusunga zvinosiyana zvinoreva kukopa anonongedzera, kwete izvo zvavanonongedza.

5. Kuunganidza marara.

6. Zvirongwa zvinoumbwa nemashoko. Lisp zvirongwa miti yekutaura, imwe neimwe inodzosa kukosha. (Mamwe matauriro eLisp anogona kudzorera tsika dzakawanda.) Izvi zvinosiyana neFortran nemimwe mitauro yakawanda inobudirira inosiyanisa “mataurirwo” ne“zvirevo.”

Zvaive zvemuzvarirwo kuve nemusiyano uyu muFortran nekuti mutauro wacho waive wakanangana nemutsara (hazvishamise pamutauro waive nefomati yekupinza yaive kadhi rakabhowa). Hauna kukwanisa kuva nematatimendi. Uye chero waida matauriro esvomhu kuti ushande, pakanga pasina chikonzero chekuti chero chinhu chipi zvacho chidzose kukosha nekuti panogona kunge pasina chinhu chakamirira kudzorerwa.

Zvirambidzo zvakabviswa nekuuya kwemitauro yakaumbwa, asi panguva iyoyo yakanga yanyanya kunonoka. Musiyano pakati pematauriro nezvirevo wakatovapo. Yakapfuura kubva kuFortran kuenda kuAlgol uyezve kune vazukuru vavo.

Kana mutauro ukaitwa nemataurirwo akazara, unogona kunyora mataurirwo nenzira yaunoda. Unogona kunyora chero (uchishandisa syntax Arc)

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

kana

(= x (if foo 1 2))

7. Chimiro chechiratidzo. Hunhu hwakasiyana netambo, mune iyo kesi iwe unogona kutarisa kuenzana nekuenzanisa anonongedzera.

8. Chirevo chekodhi kushandisa miti yezviratidzo.

9. Mutauro wose unowanikwa nguva dzose. Hapana mutsauko uri pachena pakati penguva yekuverenga, unganidza nguva uye nguva yekumhanya. Iwe unogona kuunganidza kana kumhanyisa kodhi iwe uchiverenga, kana kuverenga kana kumhanya kodhi iwe uchiunganidza, kana kuverenga kana kuunganidza kodhi ichimhanya.

Kumhanya kodhi uchiverenga kunobvumira vashandisi kugadzirisa zvakare Lisp's syntax; kumhanya kodhi panguva yekuunganidza ndiyo hwaro hwemacros; Runtime compilation ndiyo hwaro hwekushandisa Lisp semutauro wekuwedzera muzvirongwa zvakaita seEmacs; uye pakupedzisira, kuverenga nguva yekumhanya kunobvumira mapurogiramu kuti ataure achishandisa s-mataurirwo, pfungwa ichangobva kuvandudzwa muXML.

mhedziso

Lisp payakatanga kugadzirwa, pfungwa idzi dzaive kure kure nemaitiro akajairwa ehurongwa anorairwa nehardware inowanikwa mukupera kwema1950.

Nekufamba kwenguva, mutauro wakasarudzika, wakamisikidzwa nekubudirira kwemitauro yakakurumbira, zvishoma nezvishoma wakashanduka wakananga kuLisp. Mapoinzi 1-5 ave kugamuchirwa nevakawanda. Point 6 iri kutanga kuoneka mumainstream. MuPython, pane clause 7 mune imwe nzira, kunyange zvazvo pasina syntax yakakodzera. Item 8, iyo (ine chinhu 9) inoita kuti macros agoneke muLisp, ichiri muLisp chete, pamwe nekuti (a) inoda aya mabara kana chimwe chinhu chakashata zvakaenzana, uye (b) kana ukawedzera uku kuwedzera kwesimba uku, unogona. havachazviti vakagadzira mutauro mutsva, asi kungova nemutauro mutsva weLisp; -)

Kunyangwe izvi zvichibatsira kuvagadziri vemazuva ano, zvinoshamisa kutsanangura Lisp maererano nemusiyano wayo kubva kumaitiro asina kujairika anotorwa mune mimwe mitauro. Izvi zvinogona kunge zvisiri izvo zvaifungwa naMcCarthy. Lisp haina kugadzirirwa kugadzirisa zvikanganiso zveFortran; zvaiita sechinhu chakabva pakuedza axiomatize kuverenga.

Source: www.habr.com

Voeg