Paul Graham va anunciar un nou llenguatge de programació Bel

La llengua Bel està escrita en la llengua Bel.

Paul Graham va anunciar un nou llenguatge de programació Bel
El 1960, John McCarthy va descriure Lisp, un nou tipus de llenguatge de programació. Dic "nou tipus" perquè Lisp no era només un llenguatge nou, sinó una nova manera de descriure idiomes.

Per definir Lisp, va començar amb un petit conjunt d'enunciats, una mena d'axiomes, que després va utilitzar per escriure un intèrpret per a la pròpia llengua.

No es proposava descriure un llenguatge de programació en el sentit habitual, un llenguatge utilitzat per dir a un ordinador què havia de fer. En el seu treball de 1960, Lisp va ser entès com un model formal de càlcul semblant a la màquina de Turing. McCarthy no va pensar en utilitzar-lo a ordinadors fins que Steve Russell, el seu estudiant graduat, ho va suggerir.

Lisp l'any 1960 no tenia les característiques comunes als llenguatges de programació. Per exemple, no hi havia números, errors o E/S. Així que les persones que utilitzaven Lisp com a base per als idiomes utilitzats per programar ordinadors van haver d'afegir aquestes funcions ells mateixos. I ho van fer abandonant l'enfocament axiomàtic.

Així, el desenvolupament de Lisp va procedir en dues etapes, aparentment força independents: una etapa formal, introduïda en un article de 1960, i una etapa d'implementació, en la qual el llenguatge es va adaptar i estendre per funcionar en ordinadors. El treball principal, si es mesura pel nombre d'oportunitats implementades, es va dur a terme en l'etapa d'implementació. Lisp de 1960, traduït a Common Lisp, conté només 53 línies. Només fa el necessari per interpretar les expressions. Tota la resta es va afegir en l'etapa d'implementació.

La meva hipòtesi és que, malgrat la seva difícil història, Lisp es va beneficiar del fet que el seu desenvolupament es va produir en dues fases; que l'exercici original de definir una llengua escrivint-hi el seu intèrpret donava a Lisp les seves millors qualitats. I si és així, per què no anar més enllà?

Bel és un intent de respondre a la pregunta: i si, en comptes de passar de l'etapa formal a l'etapa d'execució en una fase inicial, aquesta transició es fes el més tard possible? Si continueu utilitzant l'enfocament axiomàtic fins que tingueu alguna cosa semblant a un llenguatge de programació complet, quins axiomes necessitareu i com serà el llenguatge resultant?

Vull tenir clar què és Bel i què no. Tot i que té moltes més característiques que el Lisp de McCarthy de 1960, Bel encara és un producte en la seva fase formal. Com Lisp, descrit en un article de 1960, no és un llenguatge que es pugui utilitzar per programar. Principalment perquè, com el Lisp de McCarthy, no li importa l'eficiència. Quan afegeixo alguna cosa a Bel, descric el significat de l'addició sense intentar proporcionar una implementació eficient.

Per a què? Per què allargar l'etapa formal? Una resposta és veure on ens pot portar l'enfocament axiomàtic, que és un exercici interessant en si mateix. Si els ordinadors fossin tan potents com voldríem que fossin, com serien els idiomes?

Però també crec que és possible escriure una implementació eficient basada en Bel afegint restriccions. Si voleu un llenguatge que tingui poder expressiu, claredat i eficiència, potser val la pena començar amb el poder expressiu i la claredat, i després afegir restriccions, en lloc d'anar en la direcció oposada.

Així que si voleu provar d'escriure una implementació basada en Bel, endavant. Seré un dels primers usuaris.

Al final, vaig reproduir algunes coses de dialectes anteriors. O els seus dissenyadors ho van encertar, o bé sota la influència dels dialectes utilitzats anteriorment, no veig la resposta correcta: el temps ho dirà. També vaig intentar no allunyar-me massa de les convencions de Lisp. El que significa que si veieu un allunyament de les convencions de Lisp, pot haver-hi un motiu.

Continua la descripció de l'idioma aquí.

Gràcies per la traducció: Denis Mitropolsky

PS

Font: www.habr.com

Afegeix comentari