Paul Graham anoncis novan programlingvon Bel

La Bel-lingvo estas skribita en la Bel-lingvo.

Paul Graham anoncis novan programlingvon Bel
En 1960, John McCarthy priskribis Lisp, novan specon de programlingvo. Mi diras "nova tipo" ĉar Lisp estis ne nur nova lingvo, sed nova maniero priskribi lingvojn.

Por difini Lisp, li komencis per malgranda aro da deklaroj, speco de aksiomoj, kiujn li tiam uzis por skribi interpretiston por la lingvo mem.

Ĝi ne intencis priskribi programlingvon en la kutima senco - lingvo uzata por diri al komputilo kion fari. En lia 1960 laboro, Lisp estis komprenita kiel formala modelo de komputado simila al la Turing Maŝino. McCarthy ne pensis pri uzado de ĝi sur komputiloj ĝis Steve Russell, lia gradstudanto, sugestis ĝin.

Lisp en 1960 ne havis la ecojn komunajn al programlingvoj. Ekzemple, ekzistis neniuj nombroj, eraroj aŭ I/O. Do homoj, kiuj uzis Lisp kiel bazon por la lingvoj uzataj por programi komputilojn, devis mem aldoni ĉi tiujn funkciojn. Kaj ili faris tion forlasante la aksioman aliron.

Tiel, la evoluo de Lisp daŭrigis en du - kaj ŝajne sufiĉe sendependaj - stadioj: formala etapo, lanĉita en artikolo de 1960, kaj efektivigstadio, en kiu la lingvo estis adaptita kaj etendita por funkcii per komputiloj. La ĉefa laboro, se mezurita per la nombro da efektivigitaj ŝancoj, okazis en la efektiviga stadio. Lisp el 1960, tradukita en Common Lisp, enhavas nur 53 liniojn. Ĝi faras nur kion necesas por interpreti la esprimojn. Ĉio alia estis aldonita en la efektiviga stadio.

Mia hipotezo estas ke, malgraŭ sia malfacila historio, Lisp profitis el tio, ke ĝia evoluo okazis en du fazoj; ke la origina ekzerco difini lingvon skribante en ĝi sian interpretiston donis al Lisp ĝiajn plej bonajn kvalitojn. Kaj se jes, kial ne iri plu?

bel estas provo respondi la demandon: kio se, anstataŭ transiri de la formala stadio al la ekzekutstadio en frua etapo, ĉi tiu transiro estus farita kiel eble plej malfrue? Se vi daŭre uzas la aksioman aliron ĝis vi havos ion proksiman al kompleta programlingvo, kiajn aksiomojn vi bezonos, kaj kia aspektos la rezulta lingvo?

Mi volas esti klara pri kio Bel estas kaj kio ĝi ne estas. Kvankam ĝi havas multe pli da ecoj ol la 1960 Lisp de McCarthy, Bel daŭre estas produkto en sia formala fazo. Kiel Lisp, priskribita en artikolo de 1960, ĝi ne estas lingvo, kiun vi povas uzi por programi. Ĉefe ĉar, kiel McCarthy's Lisp, ĝi ne zorgas pri efikeco. Kiam mi aldonas ion al Bel, mi priskribas la signifon de la aldono sen provi havigi efikan efektivigon.

Por kio? Kial etendi la formalan etapon? Unu respondo estas vidi kien la aksioma aliro povas konduki nin, kio estas interesa ekzerco en si mem. Se komputiloj estus tiel potencaj kiel ni ŝatus, kiel aspektus lingvoj?

Sed mi ankaŭ kredas, ke eblas verki efikan Bel-bazitan efektivigon per aldonado de limigoj. Se vi volas lingvon kiu havas esprimpovon, klarecon kaj efikecon, eble indas komenci per esprimpovo kaj klareco, kaj poste aldoni limigojn, prefere ol iri en la kontraŭa direkto.

Do se vi volas provi skribi efektivigon bazitan sur Bel, daŭrigu. Mi estos unu el la unuaj uzantoj.

Finfine, mi reproduktis kelkajn aferojn el antaŭaj dialektoj. Aŭ iliaj dezajnistoj trafis ĝin, aŭ estante influitaj de antaŭe uzataj dialektoj, mi ne vidas la ĝustan respondon - la tempo diros. Mi ankaŭ provis ne tro malproksimiĝi de Lisp-konvencioj. Kio signifas, ke se vi vidas malproksimiĝon de Lisp-konvencioj, eble ekzistas kialo por tio.

Daŭra priskribo de la lingvo ĉi tie.

Dankon pro la traduko: Denis Mitropolsky

PS

fonto: www.habr.com

Aldoni komenton