Paul Graham kondig nuwe programmeertaal Bel

Die Bel-taal is in die Bel-taal geskryf.

Paul Graham kondig nuwe programmeertaal Bel
In 1960 het John McCarthy Lisp beskryf, 'n nuwe soort programmeertaal. Ek sê "nuwe tipe" want Lisp was nie net 'n nuwe taal nie, maar 'n nuwe manier om tale te beskryf.

Om Lisp te definieer, het hy begin met 'n klein stel operateurs, 'n soort aksiomas, wat hy toe gebruik het om 'n tolk vir die taal self te skryf.

Hy was nie van plan om 'n programmeertaal in die gewone sin te beskryf nie, 'n taal wat gebruik word om 'n rekenaar te vertel wat om te doen. In sy referaat van 1960 is Lisp verstaan ​​as 'n formele model van berekening soortgelyk aan 'n Turing-masjien. McCarthy het nie daaraan gedink om dit op rekenaars te gebruik totdat dit deur Steve Russell, sy nagraadse student, voorgestel is nie.

Lisp het in 1960 nie kenmerke gehad wat algemeen in programmeertale was nie. Daar was byvoorbeeld geen getalle, foute of I/O nie. Dus, die mense wat Lisp as basis gebruik het vir die tale wat gebruik word om rekenaars te programmeer, moes self daardie kenmerke byvoeg. En hulle het dit gedoen deur die aksiomatiese benadering te laat vaar.

Die ontwikkeling van Lisp het dus in twee – en blykbaar redelik onafhanklike – stadiums verloop: die formele stadium, wat in die 1960-artikel bekendgestel is, en die implementeringstadium, waarin die taal aangepas en uitgebrei is om op rekenaars te werk. Die hoofwerk, indien gemeet aan die aantal geïmplementeerde geleenthede, was by die implementeringstadium. ’n 1960-Lisp wat in Common Lisp vertaal is, is slegs 53 reëls lank. Dit doen net wat nodig is om uitdrukkings te interpreteer. Al die ander is bygevoeg tydens die implementeringsfase.

My hipotese is dat Lisp ten spyte van sy moeilike geskiedenis baat gevind het by die feit dat sy ontwikkeling in twee fases plaasgevind het; dat die oorspronklike oefening om 'n taal te definieer deur sy tolk op sigself te skryf aan Lisp sy beste eienskappe gegee het. En indien wel, hoekom nie verder gaan nie?

Bel is 'n poging om die vraag te beantwoord: wat as om hierdie oorgang so laat as moontlik te maak, in plaas daarvan om op 'n vroeë stadium van die formele stadium na die uitvoeringstadium te beweeg? As jy aanhou om die aksiomatiese benadering te gebruik totdat jy iets naby aan 'n volledige programmeertaal het, watter aksiomas sal jy nodig hê, en hoe sal die resulterende taal lyk?

Ek wil duidelik wees oor wat Bel is en wat dit nie is nie. Alhoewel dit baie meer kenmerke as McCarthy se 1960 Lisp het, is Bel steeds 'n produk in 'n formele fase. Soos Lisp, wat in die 1960-koerant beskryf word, is dit nie 'n taal wat jy kan gebruik om te programmeer nie. Hoofsaaklik omdat dit, soos McCarthy se Lisp, nie omgee vir doeltreffendheid nie. Wanneer ek iets by Bel voeg, beskryf ek die betekenis van hierdie toevoeging sonder om 'n doeltreffende implementering te probeer verskaf.

Vir wat? Waarom die formele stadium verleng? Een antwoord is om te sien waarheen die aksiomatiese benadering ons kan neem, wat op sigself 'n interessante oefening is. As rekenaars so kragtig was as wat ons sou wou, hoe sou tale dan lyk?

Maar ek glo ook dat dit moontlik is om 'n doeltreffende implementering gebaseer op Bel te skryf en beperkings by te voeg. As jy 'n taal wil hê wat uitdrukkingskrag, duidelikheid en doeltreffendheid het, is dit dalk die moeite werd om met uitdrukkingskrag en duidelikheid te begin, en dan beperkings by te voeg eerder as om in die teenoorgestelde rigting te gaan.

So as jy wil probeer om 'n implementering gebaseer op Bel te skryf, is jy welkom. Ek sal een van die eerste gebruikers wees.

Uiteindelik het ek sommige dinge uit vorige dialekte weergegee. Óf hul ontwerpers het alles reg gedoen, óf omdat ek deur voorheen gebruikte dialekte beïnvloed is, sien ek nie die regte antwoord nie - die tyd sal leer. Ek het ook probeer om nie te ver van Lisp se konvensies af te dwaal nie. Wat beteken dat as jy 'n afwyking van die Lisp-konvensies sien, daar dalk redes daarvoor was.

Voortsetting van die beskrywing van die taal hier.

Dankie vir die vertaling: Denis Mitropolsky

PS

Bron: will.com

Voeg 'n opmerking