Paul Graham je napovedal nov programski jezik Bel

Bel jezik je zapisan v bel jeziku.

Paul Graham je napovedal nov programski jezik Bel
Leta 1960 je John McCarthy opisal Lisp, novo vrsto programskega jezika. Pravim "nova vrsta", ker Lisp ni bil samo nov jezik, ampak nov način opisovanja jezikov.

Da bi definiral Lisp, je začel z majhnim nizom izjav, nekakšnimi aksiomi, ki jih je nato uporabil za pisanje tolmača za sam jezik.

Ni bil namenjen opisu programskega jezika v običajnem pomenu – jezika, ki se uporablja za ukaz računalniku, kaj naj naredi. V svojem delu iz leta 1960 je bil Lisp razumljen kot formalni model računanja, podoben Turingovemu stroju. McCarthy ni razmišljal o uporabi v računalnikih, dokler tega ni predlagal njegov podiplomski študent Steve Russell.

Lisp leta 1960 ni imel lastnosti, ki so skupne programskim jezikom. Na primer, ni bilo številk, napak ali I/O. Ljudje, ki so uporabljali Lisp kot osnovo za jezike, ki se uporabljajo za programiranje računalnikov, so morali te funkcije dodati sami. In to so storili tako, da so opustili aksiomatski pristop.

Tako je razvoj Lispa potekal v dveh - in na videz precej neodvisnih - stopnjah: formalni stopnji, predstavljeni v dokumentu iz leta 1960, in stopnji implementacije, v kateri je bil jezik prilagojen in razširjen za delovanje na računalnikih. Glavno delo, merjeno po številu izvedenih priložnosti, je potekalo v fazi implementacije. Lisp iz leta 1960, preveden v Common Lisp, vsebuje samo 53 vrstic. Naredi samo tisto, kar je potrebno za razlago izrazov. Vse ostalo je bilo dodano v fazi izvedbe.

Moja hipoteza je, da je Lisp kljub svoji težki zgodovini imel koristi od dejstva, da je njegov razvoj potekal v dveh fazah; da je prvotna vaja definiranja jezika z zapisom njegovega tolmača v njem dala Lispu njegove najboljše lastnosti. In če je tako, zakaj ne bi šli dlje?

Beautiful je poskus odgovora na vprašanje: kaj če bi namesto prehoda iz formalne faze v fazo izvajanja v zgodnji fazi ta prehod naredil čim pozneje? Če boste še naprej uporabljali aksiomatski pristop, dokler ne boste imeli nekaj blizu popolnemu programskemu jeziku, katere aksiome boste potrebovali in kako bo videti končni jezik?

Želim biti jasen glede tega, kaj Bel je in kaj ni. Čeprav ima veliko več funkcij kot McCarthyjev Lisp iz leta 1960, je Bel še vedno izdelek v formalni fazi. Tako kot Lisp, opisan v dokumentu iz leta 1960, ni jezik, ki bi ga lahko uporabili za programiranje. Predvsem zato, ker mu, tako kot McCarthyjevemu Lispu, ni pomembna učinkovitost. Ko dodam nekaj v Bel, opišem pomen dodatka, ne da bi poskušal zagotoviti učinkovito izvedbo.

Za kaj? Zakaj podaljšati formalno fazo? Eden od odgovorov je videti, kam nas lahko pripelje aksiomatski pristop, kar je samo po sebi zanimiva vaja. Če bi bili računalniki tako močni, kot bi si želeli, kako bi izgledali jeziki?

Verjamem pa tudi, da je mogoče z dodajanjem omejitev napisati učinkovito izvedbo, ki temelji na Belu. Če želite jezik, ki ima izrazno moč, jasnost in učinkovitost, bi bilo morda vredno začeti z izrazno močjo in jasnostjo ter nato dodati omejitve, namesto da bi šli v nasprotno smer.

Torej, če želite poskusiti napisati izvedbo, ki temelji na Belu, nadaljujte. Bom eden izmed prvih uporabnikov.

Navsezadnje sem reproduciral nekaj stvari iz prejšnjih narečij. Bodisi so njihovi snovalci pravilno razumeli ali pa ne vidim pravega odgovora, ker sem pod vplivom prej uporabljenih narečij – pokazal bo čas. Poskušal sem se tudi ne oddaljiti preveč od Lispovih konvencij. Kar pomeni, da če opazite odmik od Lispovih konvencij, morda obstaja razlog za to.

Nadaljevanje opisa jezika tukaj.

Hvala za prevod: Denis Mitropolsky

PS

Vir: www.habr.com

Dodaj komentar