Paul Graham najavio je novi programski jezik Bel

Bel jezik je napisan na bel jeziku.

Paul Graham najavio je novi programski jezik Bel
Godine 1960. John McCarthy opisao je Lisp, novu vrstu programskog jezika. Kažem "novi tip" jer Lisp nije bio samo novi jezik, već i novi način opisivanja jezika.

Kako bi definirao Lisp, započeo je s malim skupom iskaza, svojevrsnih aksioma, koje je zatim upotrijebio za pisanje tumača za sam jezik.

Nije bio cilj opisati programski jezik u uobičajenom smislu - jezik koji se koristi da kaže računalu što treba učiniti. U njegovom radu iz 1960. Lisp je shvaćen kao formalni model računanja sličan Turingovom stroju. McCarthy nije razmišljao o tome da ga koristi na računalima sve dok Steve Russell, njegov diplomirani student, to nije predložio.

Lisp 1960. nije imao značajke uobičajene za programske jezike. Na primjer, nije bilo brojeva, pogrešaka ili I/O. Dakle, ljudi koji su koristili Lisp kao osnovu za jezike koji se koriste za programiranje računala morali su sami dodati ove značajke. A to su učinili napuštanjem aksiomatskog pristupa.

Stoga je razvoj Lispa tekao u dvije - i naizgled prilično neovisne - faze: formalna faza, predstavljena u radu iz 1960., i faza implementacije, u kojoj je jezik prilagođen i proširen za rad na računalima. Glavni posao, mjereno brojem implementiranih prilika, odvijao se u fazi implementacije. Lisp iz 1960. godine, preveden na Common Lisp, sadrži samo 53 retka. Radi samo ono što je potrebno za tumačenje izraza. Sve ostalo dodano je u fazi implementacije.

Moja hipoteza je da je, unatoč svojoj teškoj povijesti, Lisp imao koristi od činjenice da se njegov razvoj odvijao u dvije faze; da je izvorna vježba definiranja jezika pisanjem njegovog tumača u njemu dala Lispu njegove najbolje kvalitete. I ako je tako, zašto ne ići dalje?

Bel je pokušaj da se odgovori na pitanje: što ako, umjesto prelaska iz formalne faze u fazu izvršenja u ranoj fazi, ovaj prijelaz bude napravljen što je kasnije moguće? Ako nastavite koristiti aksiomatski pristup dok ne dobijete nešto što je približno potpunom programskom jeziku, koji će vam aksiomi trebati i kako će izgledati rezultirajući jezik?

Želim razjasniti što Bel jest, a što nije. Iako ima puno više značajki od McCarthyjevog Lispa iz 1960., Bel je još uvijek proizvod u svojoj formalnoj fazi. Kao Lisp, opisan u dokumentu iz 1960., to nije jezik koji možete koristiti za programiranje. Uglavnom zato što, poput McCarthyjevog Lispa, ne mari za učinkovitost. Kada dodam nešto Belu, opisujem značenje dodatka bez pokušaja pružanja učinkovite implementacije.

Za što? Zašto produžiti formalnu fazu? Jedan odgovor je vidjeti kamo nas aksiomatski pristup može odvesti, što je samo po sebi zanimljiva vježba. Da su računala moćna koliko bismo željeli, kako bi jezici izgledali?

Ali također vjerujem da je moguće napisati učinkovitu implementaciju temeljenu na Belu dodavanjem ograničenja. Ako želite jezik koji ima izražajnu moć, jasnoću i učinkovitost, možda bi bilo vrijedno početi s izražajnom snagom i jasnoćom, a zatim dodati ograničenja, umjesto da idete u suprotnom smjeru.

Dakle, ako želite pokušati napisati implementaciju temeljenu na Belu, samo naprijed. Ja ću biti jedan od prvih korisnika.

U konačnici sam reproducirao neke stvari iz prethodnih dijalekata. Ili su njihovi dizajneri dobro shvatili ili pod utjecajem prijašnjih dijalekata ne vidim pravi odgovor - vrijeme će pokazati. Također sam se trudio ne udaljiti se previše od Lispovih konvencija. Što znači da ako vidite odmak od Lispovih konvencija, možda postoji razlog za to.

Nastavak opisa jezika ovdje.

Hvala na prijevodu: Denis Mitropolsky

PS

Izvor: www.habr.com

Dodajte komentar