Dè rinn Lisp sònraichte

«An cànan prògramaidh as motha a chaidh a chruthachadh a-riamh«
- Alan Kay, "air Lisp"

Dè rinn Lisp sònraichte

Nuair a leasaich McCarthy Lisp anmoch anns na 1950n, bha e gu tur eadar-dhealaichte bho na cànanan a bh’ ann, agus b’ e am fear as cudromaiche dhiubh sin. Fortran.

Thug Lisp a-steach naoi beachdan ùra:

1. Cùmhnantan. Tha aithrisean cumhach nan togalaichean eile ma tha. A-nis bidh sinn gan gabhail gu dòigheil. Bha iad dh'innlich McCarthy aig àm leasachadh Lisp. (Cha robh aig Fortran aig an àm ach aithrisean fhaighinn, ceangailte gu dlùth ri stiùireadh meur air a’ bhathar-cruaidh bunaiteach.) Nuair a bha e air comataidh Algol, chuir e cumhachan ri Algol, às an do sgaoil iad gu cànanan eile.

2. Seòrsa gnìomh. Ann an Lisp, tha gnìomhan nan nithean den chiad ìre - tha iad nan seòrsa dàta, dìreach mar àireamhan, sreangan, msaa, agus tha riochdachadh litireil aca, faodar an stòradh ann an caochladairean, faodar an toirt seachad mar argamaidean, msaa.

3. Ath-chuairteachadh. Bha ath-chuairteachadh, gu dearbh, ann mar bhun-bheachd matamataigeach ro Lisp, ach b’ e Lisp a’ chiad chànan prògramaidh a thug taic dha. (Is dòcha gu bheil seo air a thuigsinn ann a bhith a’ cruthachadh ghnìomhan mar nithean den chiad ìre.)

4. Bun-bheachd ùr de chaochladairean. Ann an Lisp, tha na caochladairean uile nan comharran èifeachdach. Is e luachan na tha aig seòrsaichean, chan e caochladairean, agus tha sònrachadh no ceangaltach caochladairean a’ ciallachadh a bhith a’ dèanamh copaidh air comharran, chan e na tha iad a’ comharrachadh.

5. Cruinneachadh sgudal.

6. Prògraman air a dhèanamh suas de abairtean a. Is e craobhan de dh’ abairtean a th’ ann am prògraman lisp, agus tha gach fear dhiubh a’ tilleadh luach. (Faodaidh cuid de dh’ abairtean Lisp iomadh luach a thilleadh.) Tha seo eadar-dhealaichte bho Fortran agus mòran chànanan soirbheachail eile a tha a’ dèanamh eadar-dhealachadh eadar “aithrisean” agus “aithrisean.”

Bha e nàdarrach an t-eadar-dhealachadh seo a bhith ann an Fortran leis gu robh an cànan stèidhichte air loidhne (chan eil e na iongnadh dha cànan aig an robh cruth cur-a-steach na chairt punch). Cha b' urrainn dhut aithrisean neadachaidh a bhith agad. Agus fhad ‘s a bha feum agad air abairtean matamataigeach airson a bhith ag obair, cha robh adhbhar ann gum biodh dad sam bith eile air luach a thilleadh oir is dòcha nach biodh dad a’ feitheamh ri tilleadh.

Chaidh na cuingeadan a thogail nuair a thàinig cànanan le structar bloc, ach ron àm sin bha e ro fhadalach. Tha an t-eadar-dhealachadh eadar abairtean agus aithrisean air a dhearbhadh mar-thà. Chaidh e seachad bho Fortran gu Algol agus nas fhaide gu an sliochd.

Nuair a tha cànan air a dhèanamh gu tur de abairtean, faodaidh tu abairtean a sgrìobhadh ann an dòigh sam bith a thogras tu. Faodaidh tu an dàrna cuid sgrìobhadh (a’ cleachdadh a’ cho-chàradh Arc)

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

no

(= x (if foo 1 2))

7. Seòrsa samhla. Tha caractaran eadar-dhealaichte bho shreathan, agus mar sin faodaidh tu sgrùdadh a dhèanamh airson co-ionannachd le bhith a’ dèanamh coimeas eadar comharran.

8. Teacsa airson còd a a’ cleachdadh craobhan samhla.

9. Tha an cànan gu lèir an-còmhnaidh ri fhaighinn. Chan eil eadar-dhealachadh follaiseach eadar ùine leughaidh, ùine cruinneachaidh agus ùine ruith. Faodaidh tu còd a chur ri chèile no a ruith fhad 's a tha thu a' leughadh, no a' leughadh no a' ruith còd fhad 's a tha thu a' cur ri chèile, no a' leughadh no a' cur ri chèile còd fhad 's a tha e a' ruith.

Tha còd ruith fhad ‘s a tha e a’ leughadh a’ leigeil le luchd-cleachdaidh co-chàradh Lisp ath-chlàradh; tha còd ruith aig àm cruinneachaidh na bhunait airson macros; tha cruinneachadh runtime mar bhunait airson Lisp a chleachdadh mar chànan leudachaidh ann am prògraman leithid Emacs; agus mu dheireadh, tha leughadh runtime a’ leigeil le prògraman conaltradh a’ cleachdadh s-expressions, beachd a chaidh ath-chruthachadh o chionn ghoirid ann an XML.

co-dhùnadh

Nuair a chaidh Lisp a chruthachadh an toiseach, bha na beachdan sin fada bho chleachdaidhean prògramadh gnàthach a bha air an òrdachadh leis a’ bhathar-cruaidh a bha ri fhaighinn aig deireadh na 1950n.

Thar ùine, mean air mhean thàinig an cànan bunaiteach, air a riochdachadh le soirbheachas chànanan mòr-chòrdte, gu Lisp. Thathas a-nis a’ gabhail ri puingean 1-5 gu farsaing. Tha puing 6 a’ tòiseachadh a’ nochdadh anns a’ phrìomh shruth. Ann am Python, tha clàs 7 ann an cruth air choreigin, ged nach eil co-chòrdadh iomchaidh ann. Nì 8, a tha (le nì 9) a’ dèanamh macros comasach ann an Lisp, fhathast ann an Lisp a-mhàin, is dòcha air sgàth (a) gu bheil feum air na bragan sin no rudeigin a cheart cho dona, agus (b) ma chuireas tu ris an àrdachadh cumhachd as ùire seo, faodaidh tu chan eil iad ag ràdh tuilleadh gun do chruthaich iad cànan ùr, ach a-mhàin gun do leasaich iad dualchainnt ùr Lisp; -)

Ged a tha seo feumail do luchd-prògramaidh an latha an-diugh, tha e neònach cunntas a thoirt air Lisp a thaobh an eadar-dhealachaidh eadar na dòighean air thuaiream a chaidh a chleachdadh ann an cànanan eile. Is dòcha nach e seo a bha McCarthy a’ smaoineachadh. Cha deach Lisp a dhealbhadh gus mearachdan Fortran a cheartachadh; nochd e nas motha mar fo-toradh de bhith a’ feuchainn àireamhachadh axiomatize.

Source: www.habr.com

Cuir beachd ann