Paul Graham tilkynnti um nýtt forritunarmál Bel

Bel tungumálið er skrifað á Bel tungumálinu.

Paul Graham tilkynnti um nýtt forritunarmál Bel
Árið 1960 lýsti John McCarthy Lisp, nýrri tegund af forritunarmáli. Ég segi "ný tegund" vegna þess að Lisp var ekki bara nýtt tungumál, heldur ný leið til að lýsa tungumálum.

Til að skilgreina Lisp byrjaði hann á litlu setti af staðhæfingum, einskonar setningafræði, sem hann notaði síðan til að skrifa túlk fyrir tungumálið sjálft.

Það var ekki ætlað að lýsa forritunarmáli í venjulegum skilningi - tungumáli sem notað er til að segja tölvu hvað hún ætti að gera. Í verkum sínum árið 1960 var Lisp skilin sem formlegt reiknilíkan í ætt við Turing-vélina. McCarthy hugsaði ekki um að nota það í tölvum fyrr en Steve Russell, framhaldsnemi hans, stakk upp á því.

Lisp árið 1960 hafði ekki þá eiginleika sem voru sameiginlegir með forritunarmál. Til dæmis voru engar tölur, villur eða I/O. Þannig að fólk sem notaði Lisp sem grunn fyrir tungumálin sem notuð voru til að forrita tölvur þurfti að bæta þessum eiginleikum við sjálfir. Og þetta gerðu þeir með því að yfirgefa axiomatic nálgunina.

Þannig fór þróun Lisp fram í tveimur - og að því er virðist nokkuð sjálfstæð - stig: formlegu stigi, kynnt í blaði frá 1960, og innleiðingarstig, þar sem tungumálið var aðlagað og stækkað til að keyra á tölvum. Meginvinnan, ef hún er mæld með fjölda útfærðra tækifæra, fór fram á innleiðingarstigi. Lisp frá 1960, þýtt á Common Lisp, inniheldur aðeins 53 línur. Það gerir aðeins það sem þarf til að túlka orðatiltækin. Öllu öðru var bætt við á innleiðingarstigi.

Mín tilgáta er sú að þrátt fyrir erfiða sögu hafi Lisp notið góðs af því að þróun þess hafi átt sér stað í tveimur áföngum; að sú upphaflega æfing að skilgreina tungumál með því að skrifa túlk þess í það gaf Lisp bestu eiginleika þess. Og ef svo er, hvers vegna ekki að ganga lengra?

Bel er reynt að svara spurningunni: hvað ef í stað þess að færa sig frá formlegu stigi yfir á framkvæmdarstigið á frumstigi yrði þessi umskipti gerð eins seint og hægt er? Ef þú heldur áfram að nota axiomatic nálgun þar til þú hefur eitthvað nálægt fullkomnu forritunarmáli, hvaða axiomatics þarftu og hvernig mun tungumálið sem myndast líta út?

Ég vil hafa það á hreinu hvað Bel er og hvað ekki. Þótt það hafi miklu fleiri eiginleika en Lisp frá McCarthy frá 1960, er Bel enn vara á formlegum stigi. Eins og Lisp, sem lýst er í blaði frá 1960, er það ekki tungumál sem þú getur notað til að forrita. Aðallega vegna þess að, eins og Lisp eftir McCarthy, er henni sama um skilvirkni. Þegar ég bæti einhverju við Bel, lýsi ég merkingu viðbótarinnar án þess að reyna að veita skilvirka útfærslu.

Til hvers? Hvers vegna lengja formlega áfangann? Eitt svar er að sjá hvert axiomatic nálgunin getur leitt okkur, sem er áhugaverð æfing í sjálfu sér. Ef tölvur væru eins öflugar og við viljum að þær séu, hvernig myndu tungumál líta út?

En ég tel líka að það sé hægt að skrifa skilvirka Bel-byggða útfærslu með því að bæta við takmörkunum. Ef þú vilt tungumál sem hefur tjáningarkraft, skýrleika og skilvirkni gæti verið þess virði að byrja á tjáningarkrafti og skýrleika og bæta síðan við takmörkunum frekar en að fara í gagnstæða átt.

Svo ef þú vilt prófa að skrifa útfærslu byggða á Bel skaltu halda áfram. Ég mun vera einn af fyrstu notendum.

Að lokum endurskapaði ég suma hluti úr fyrri mállýskum. Annaðhvort hafa hönnuðir þeirra rétt fyrir sér eða verið undir áhrifum frá áður notuðum mállýskum, ég sé ekki rétta svarið - tíminn mun leiða það í ljós. Ég reyndi líka að fara ekki of langt frá Lisp venjum. Sem þýðir að ef þú sérð hverfa frá Lisp-samþykktunum gæti verið ástæða fyrir því.

Áframhaldandi lýsing á tungumálinu hér.

Takk fyrir þýðinguna: Denis Mitropolsky

PS

Heimild: www.habr.com

Bæta við athugasemd