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 je opisao Lisp, novu vrstu programskog jezika. Kažem "novi tip" jer Lisp nije bio samo novi jezik, već novi način opisivanja jezika.

Da bi definisao Lisp, počeo je sa malim skupom iskaza, nekom vrstom aksioma, koje je potom koristio da napiše tumač za sam jezik.

Nije imao za cilj da opiše programski jezik u uobičajenom smislu - jezik koji se koristi da se kompjuteru kaže šta da radi. U svom radu iz 1960. godine, Lisp je shvaćen kao formalni model računanja sličan Turing mašini. McCarthy nije razmišljao o tome da ga koristi na kompjuterima sve dok Steve Russell, njegov diplomirani student, to nije predložio.

Lisp 1960. godine nije imao karakteristike zajedničke programskim jezicima. Na primjer, nije bilo brojeva, grešaka ili I/O. Dakle, ljudi koji su koristili Lisp kao osnovu za jezike koji se koriste za programiranje računara morali su sami da dodaju ove karakteristike. I to su učinili tako što su napustili aksiomatski pristup.

Stoga se razvoj Lisp-a odvijao u dvije - i naizgled prilično nezavisne - faze: formalnu fazu, uvedenu u dokumentu iz 1960. godine, i fazu implementacije, u kojoj je jezik prilagođen i proširen za rad na računarima. Glavni posao, ako se mjeri brojem implementiranih mogućnosti, odvijao se u fazi implementacije. Lisp iz 1960. godine, preveden na Common Lisp, sadrži samo 53 reda. Radi samo ono što je neophodno za tumačenje izraza. Sve ostalo je dodato u fazi implementacije.

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

struk je pokušaj da se odgovori na pitanje: šta ako se, umjesto prelaska iz formalne faze u fazu izvršenja u ranoj fazi, ova tranzicija izvrši što je kasnije moguće? Ako nastavite da koristite aksiomatski pristup dok ne dobijete nešto blizu potpunog programskog jezika, koji će vam aksiomi biti potrebni i kako će rezultujući jezik izgledati?

Želim da bude jasno šta Bel jeste, a šta nije. Iako ima mnogo više karakteristika od McCarthyjevog Lisp-a iz 1960. godine, Bel je još uvijek proizvod u svojoj formalnoj fazi. Kao i Lisp, opisan u radu iz 1960. godine, to nije jezik koji možete koristiti za programiranje. Uglavnom zato što, kao McCarthy's Lisp, ne brine o efikasnosti. Kada dodam nešto Belu, opisujem značenje dodatka bez pokušaja da obezbedim efikasnu implementaciju.

Za što? Zašto produžiti formalnu fazu? Jedan od odgovora je da vidimo gdje nas aksiomatski pristup može odvesti, što je samo po sebi zanimljiva vježba. Da su kompjuteri moćni koliko bismo želeli da budu, kako bi jezici izgledali?

Ali također vjerujem da je moguće napisati efikasnu implementaciju zasnovanu na Belu dodavanjem ograničenja. Ako želite jezik koji ima izražajnu moć, jasnoću i efikasnost, 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 da pokušate da napišete implementaciju zasnovanu na Belu, samo napred. Ja ću biti jedan od prvih korisnika.

Konačno, reproducirao sam neke stvari iz prethodnih dijalekata. Ili su njihovi dizajneri dobro shvatili, ili pod utjecajem ranije korištenih dijalekata, ne vidim pravi odgovor - vrijeme će pokazati. Takođe sam pokušao da ne odstupim previše od Lisp konvencija. Što znači da ako vidite odmak od Lisp konvencija, možda postoji razlog za to.

Nastavak opisa jezika ovdje.

Hvala na prevodu: Denis Mitropolsky

PS

izvor: www.habr.com

Dodajte komentar