Cyhoeddodd Paul Graham iaith raglennu newydd Bel

Ysgrifennir yr iaith Bel yn yr iaith Bel.

Cyhoeddodd Paul Graham iaith raglennu newydd Bel
Ym 1960, disgrifiodd John McCarthy Lisp, math newydd o iaith raglennu. Rwy'n dweud "math newydd" oherwydd nid dim ond iaith newydd oedd Lisp, ond ffordd newydd o ddisgrifio ieithoedd.

I ddiffinio Lisp, dechreuodd gyda set fach o ddatganiadau, math o axioms, a ddefnyddiodd wedyn i ysgrifennu cyfieithydd ar gyfer yr iaith ei hun.

Nid oedd yn bwriadu disgrifio iaith raglennu yn yr ystyr arferol - iaith a ddefnyddir i ddweud wrth gyfrifiadur beth i'w wneud. Yn ei waith yn 1960, roedd Lisp yn cael ei ddeall fel model ffurfiol o gyfrifiannu yn debyg i'r Turing Machine. Ni feddyliodd McCarthy am ei ddefnyddio ar gyfrifiaduron nes i Steve Russell, ei fyfyriwr graddedig, ei awgrymu.

Nid oedd gan Lisp yn 1960 y nodweddion a oedd yn gyffredin i ieithoedd rhaglennu. Er enghraifft, nid oedd unrhyw rifau, gwallau nac I/O. Felly roedd yn rhaid i bobl a ddefnyddiodd Lisp fel sail i'r ieithoedd a ddefnyddir i raglennu cyfrifiaduron ychwanegu'r nodweddion hyn eu hunain. A gwnaethant hyn trwy roi'r gorau i'r ymagwedd axiomatig.

Felly, aeth datblygiad Lisp yn ei flaen mewn dau gam - a gweddol annibynnol i bob golwg -: cam ffurfiol, a gyflwynwyd mewn papur yn 1960, a cham gweithredu, lle cafodd yr iaith ei haddasu a'i hymestyn i redeg ar gyfrifiaduron. Roedd y prif waith, o'i fesur yn ôl nifer y cyfleoedd a roddwyd ar waith, yn digwydd yn ystod y cam gweithredu. Mae Lisp o 1960, a gyfieithwyd i Common Lisp, yn cynnwys dim ond 53 llinell. Nid yw'n gwneud ond yr hyn sy'n angenrheidiol i ddehongli'r ymadroddion. Ychwanegwyd popeth arall yn y cam gweithredu.

Fy rhagdybiaeth yw bod Lisp, er gwaethaf ei hanes anodd, wedi elwa o’r ffaith bod ei ddatblygiad wedi digwydd mewn dau gam; fod yr ymarferiad gwreiddiol o ddiffinio iaith trwy ysgrifenu ei dehonglydd ynddi yn rhoddi ei rhinweddau goreu i Lisp. Ac os felly, beth am fynd ymhellach?

Beautiful yn ymgais i ateb y cwestiwn: beth os, yn lle symud o’r cam ffurfiol i’r cam gweithredu yn gynnar, y trosglwyddwyd y newid hwn mor hwyr â phosibl? Os byddwch chi'n parhau i ddefnyddio'r dull axiomatig nes bod gennych chi rywbeth yn agos at iaith raglennu gyflawn, pa axiomau fydd eu hangen arnoch chi, a sut olwg fydd ar yr iaith sy'n deillio ohono?

Rwyf am fod yn glir ynghylch beth yw Bel a beth nad ydyw. Er bod ganddo lawer mwy o nodweddion na Lisp 1960 McCarthy, mae Bel yn dal i fod yn gynnyrch yn ei gyfnod ffurfiol. Fel Lisp, a ddisgrifiwyd mewn papur o 1960, nid yw'n iaith y gallwch ei defnyddio i raglennu. Yn bennaf oherwydd, fel McCarthy's Lisp, nid yw'n poeni am effeithlonrwydd. Pan ychwanegaf rywbeth at Bel, disgrifiaf ystyr yr ychwanegiad heb geisio darparu gweithrediad effeithlon.

Am beth? Pam ymestyn y cam ffurfiol? Un ateb yw gweld i ble y gall y dull axiomatig fynd â ni, sy'n ymarfer diddorol ynddo'i hun. Pe bai cyfrifiaduron mor bwerus ag yr hoffem iddynt fod, sut olwg fyddai ar ieithoedd?

Ond credaf hefyd ei bod yn bosibl ysgrifennu gweithrediad effeithlon yn seiliedig ar Bel trwy ychwanegu cyfyngiadau. Os ydych chi eisiau iaith sydd â phŵer mynegiannol, eglurder, ac effeithlonrwydd, efallai y byddai’n werth dechrau gyda phŵer mynegiannol ac eglurder, ac yna ychwanegu cyfyngiadau, yn hytrach na mynd i’r cyfeiriad arall.

Felly os ydych chi am geisio ysgrifennu gweithrediad yn seiliedig ar Bel, ewch ymlaen. Byddaf yn un o'r defnyddwyr cyntaf.

Yn y pen draw, atgynhyrchais rai pethau o dafodieithoedd blaenorol. Naill ai cafodd eu dylunwyr bethau’n iawn, neu gael eu dylanwadu gan dafodieithoedd a ddefnyddiwyd yn flaenorol, nid wyf yn gweld yr ateb cywir - amser a ddengys. Ceisiais hefyd beidio â chrwydro'n rhy bell oddi wrth gonfensiynau Lisp. Sy'n golygu, os gwelwch yn symud i ffwrdd oddi wrth gonfensiynau Lisp, efallai y bydd rheswm dros hynny.

Disgrifiad parhaus o'r iaith yma.

Diolch am y cyfieithiad: Denis Mitropolsky

PS

Ffynhonnell: hab.com

Ychwanegu sylw