Paul Graham anunciou unha nova linguaxe de programación Bel

A lingua Bel está escrita na lingua Bel.

Paul Graham anunciou unha nova linguaxe de programación Bel
En 1960, John McCarthy describiu Lisp, un novo tipo de linguaxe de programación. Digo "tipo novo" porque Lisp non era só unha linguaxe nova, senón unha nova forma de describir as linguas.

Para definir Lisp, comezou cun pequeno conxunto de enunciados, unha especie de axiomas, que despois utilizaba para escribir un intérprete para a propia lingua.

Non pretendía describir unha linguaxe de programación no sentido habitual, unha linguaxe que se usa para dicirlle a un ordenador o que debe facer. No seu traballo de 1960, Lisp foi entendido como un modelo formal de cálculo semellante á Máquina de Turing. McCarthy non pensou en usalo nos ordenadores ata que o suxeriu Steve Russell, o seu estudante graduado.

Lisp en 1960 non tiña as características comúns ás linguaxes de programación. Por exemplo, non había números, erros ou E/S. Entón, as persoas que usaron Lisp como base para as linguaxes utilizadas para programar ordenadores tiveron que engadir elas mesmas estas funcións. E fixérono abandonando o enfoque axiomático.

Así, o desenvolvemento de Lisp procedeu en dúas etapas -e aparentemente bastante independentes-: unha etapa formal, introducida nun documento de 1960, e unha etapa de implementación, na que a linguaxe foi adaptada e ampliada para funcionar en ordenadores. O traballo principal, se se mide polo número de oportunidades implementadas, realizouse na fase de implementación. Lisp de 1960, traducido a Common Lisp, contén só 53 liñas. Fai só o necesario para interpretar as expresións. Todo o demais foi engadido na fase de implementación.

A miña hipótese é que, a pesar da súa difícil historia, Lisp beneficiouse do feito de que o seu desenvolvemento se producise en dúas fases; que o exercicio orixinal de definir unha lingua escribindo nela o seu intérprete deu a Lisp as súas mellores calidades. E se é así, por que non ir máis aló?

Bel é un intento de responder á pregunta: e se, en lugar de pasar da fase formal á fase de execución nunha fase inicial, esta transición se fixera o máis tarde posible? Se continúas usando o enfoque axiomático ata que teñas algo próximo a unha linguaxe de programación completa, que axiomas necesitarás e como será a linguaxe resultante?

Quero ter claro o que é Bel e o que non. Aínda que ten moitas máis características que o Lisp de McCarthy de 1960, Bel aínda é un produto na súa fase formal. Como Lisp, descrito nun artigo de 1960, non é unha linguaxe que poida usar para programar. Principalmente porque, como McCarthy's Lisp, non lle importa a eficiencia. Cando engado algo a Bel, describo o significado da adición sen tentar proporcionar unha implementación eficiente.

Para qué? Por que ampliar a fase formal? Unha resposta é ver a onde nos pode levar o enfoque axiomático, que é un exercicio interesante en si mesmo. Se os ordenadores fosen tan poderosos como nos gustaría que fosen, como serían os idiomas?

Pero tamén creo que é posible escribir unha implementación eficiente baseada en Bel engadindo restricións. Se queres unha linguaxe que teña poder expresivo, claridade e eficiencia, pode valer a pena comezar con poder expresivo e claridade, e despois engadir restricións, en lugar de ir na dirección oposta.

Entón, se queres probar a escribir unha implementación baseada en Bel, adiante. Serei un dos primeiros usuarios.

En definitiva, reproducín algunhas cousas de dialectos anteriores. Ou os seus deseñadores acertaron, ou ben sendo influenciados por dialectos usados ​​anteriormente, non vexo a resposta correcta: o tempo dirá. Tamén tentei non afastarme demasiado das convencións de Lisp. O que significa que se ves un afastamento das convencións de Lisp, pode haber un motivo para iso.

Continúa a descrición do idioma aquí.

Grazas pola tradución: Denis Mitropolsky

PS

Fonte: www.habr.com

Engadir un comentario