Pols Grehems paziņoja par jaunu programmēšanas valodu Bel

Bel valoda ir rakstīta Bel valodā.

Pols Grehems paziņoja par jaunu programmēšanas valodu Bel
1960. gadā Džons Makartijs aprakstīja Lisp, jauna veida programmēšanas valodu. Es saku "jauns veids", jo Lisp nebija tikai jauna valoda, bet gan jauns valodu aprakstīšanas veids.

Lai definētu Lispu, viņš sāka ar nelielu apgalvojumu kopumu, sava veida aksiomām, kuras pēc tam izmantoja, lai uzrakstītu tulku pašai valodai.

Tas nebija paredzēts, lai aprakstītu programmēšanas valodu parastajā nozīmē - valodu, ko izmanto, lai pateiktu datoram, kas jādara. Savā 1960. gada darbā Lisps tika saprasts kā formāls skaitļošanas modelis, kas līdzīgs Tjūringa mašīnai. Makartijs nedomāja par tā izmantošanu datoros, kamēr viņa maģistrants Stīvs Rasels to neieteica.

Lisp 1960. gadā nebija programmēšanas valodām raksturīgo funkciju. Piemēram, nebija skaitļu, kļūdu vai I/O. Tāpēc cilvēkiem, kuri izmantoja Lisp kā datoru programmēšanas valodu pamatu, šīs funkcijas bija jāpievieno pašiem. Un viņi to izdarīja, atsakoties no aksiomātiskās pieejas.

Tādējādi Lisp izstrāde noritēja divos un šķietami diezgan neatkarīgos posmos: formālajā posmā, kas tika ieviests 1960. gada dokumentā, un ieviešanas posmā, kurā valoda tika pielāgota un paplašināta, lai tā darbotos datoros. Galvenais darbs, ja to mēra pēc realizēto iespēju skaita, notika ieviešanas posmā. Lisp no 1960. gada, tulkots Common Lisp, satur tikai 53 rindas. Tas dara tikai to, kas nepieciešams izteicienu interpretācijai. Viss pārējais tika pievienots ieviešanas stadijā.

Mana hipotēze ir tāda, ka, neskatoties uz sarežģīto vēsturi, Lisp guva labumu no tā, ka tā attīstība notika divās fāzēs; ka sākotnējais valodas noteikšanas uzdevums, ierakstot tajā tās tulku, piešķīra Lispam tās labākās īpašības. Un ja tā, kāpēc gan neiet tālāk?

Bel ir mēģinājums atbildēt uz jautājumu: kā būtu, ja tā vietā, lai pārietu no formālās stadijas uz izpildes stadiju agrīnā stadijā, šī pāreja tiktu veikta pēc iespējas vēlu? Ja turpināsit izmantot aksiomātisko pieeju, līdz jums ir kaut kas tuvu pilnīgai programmēšanas valodai, kādas aksiomas jums būs vajadzīgas un kāda izskatīsies iegūtā valoda?

Es gribu tikt skaidrībā par to, kas ir Bels un kas tas nav. Lai gan tam ir daudz vairāk funkciju nekā McCarthy 1960. gada Lisp, Bel joprojām ir produkts savā formālajā fāzē. Tāpat kā Lisp, kas aprakstīts 1960. gada dokumentā, tā nav valoda, kuru varat izmantot programmēšanai. Galvenokārt tāpēc, ka, tāpat kā Makartija Lisp, tam nerūp efektivitāte. Kad es kaut ko pievienoju Bel, es aprakstu papildinājuma nozīmi, nemēģinot nodrošināt efektīvu ieviešanu.

Par ko? Kāpēc pagarināt formālo posmu? Viena atbilde ir redzēt, kur mūs var aizvest aksiomātiskā pieeja, kas pats par sevi ir interesants uzdevums. Ja datori būtu tik spēcīgi, kā mēs tos vēlētos, kā izskatītos valodas?

Bet es arī uzskatu, ka ir iespējams uzrakstīt efektīvu Bel balstītu ieviešanu, pievienojot ierobežojumus. Ja vēlaties valodu, kurai ir izteiksmīgs spēks, skaidrība un efektivitāte, iespējams, ir vērts sākt ar izteiksmes spēku un skaidrību un pēc tam pievienot ierobežojumus, nevis doties pretējā virzienā.

Tātad, ja vēlaties mēģināt uzrakstīt ieviešanu, pamatojoties uz Bel, turpiniet. Es būšu viens no pirmajiem lietotājiem.

Galu galā es atveidoju dažas lietas no iepriekšējiem dialektiem. Vai nu to dizaineri pareizi sapratuši, vai arī iepriekš lietotu dialektu iespaidā neredzu pareizo atbildi – laiks rādīs. Es arī centos nenoklīst pārāk tālu no Lisp konvencijām. Tas nozīmē, ka, ja redzat attālināšanos no Lisp konvencijām, tam var būt iemesls.

Valodas apraksta turpinājums šeit.

Paldies par tulkojumu: Deniss Mitropoļskis

PS

Avots: www.habr.com

Pievieno komentāru