La langue Bel s'écrit en langue Bel.

En 1960, John McCarthy dĂ©crit Lisp, un nouveau type de langage de programmation. Je dis « nouveau type » parce que Lisp nâĂ©tait pas seulement un nouveau langage, mais une nouvelle façon de dĂ©crire les langages.
Pour dĂ©finir Lisp, il a commencĂ© avec un petit ensemble d'Ă©noncĂ©s, des sortes d'axiomes, qu'il a ensuite utilisĂ© pour Ă©crire un interprĂšte pour le langage lui-mĂȘme.
Il nâavait pas pour objectif de dĂ©crire un langage de programmation au sens habituel du terme â un langage utilisĂ© pour dire Ă un ordinateur quoi faire. Dans ses travaux de 1960, Lisp Ă©tait considĂ©rĂ© comme un modĂšle formel de calcul semblable Ă la machine de Turing. McCarthy n'a pas pensĂ© Ă l'utiliser sur des ordinateurs jusqu'Ă ce que Steve Russell, son Ă©tudiant diplĂŽmĂ©, le suggĂšre.
Lisp en 1960 n'avait pas les fonctionnalitĂ©s communes aux langages de programmation. Par exemple, il n'y avait aucun numĂ©ro, erreur ou E/S. Ainsi, les personnes qui utilisaient Lisp comme base pour les langages utilisĂ©s pour programmer les ordinateurs ont dĂ» ajouter elles-mĂȘmes ces fonctionnalitĂ©s. Et ils lâont fait en abandonnant lâapproche axiomatique.
Ainsi, le dĂ©veloppement de Lisp s'est dĂ©roulĂ© en deux Ă©tapes - et apparemment tout Ă fait indĂ©pendantes - : une Ă©tape formelle, introduite dans un article de 1960, et une Ă©tape de mise en Ćuvre, au cours de laquelle le langage a Ă©tĂ© adaptĂ© et Ă©tendu pour fonctionner sur des ordinateurs. L'essentiel du travail, mesurĂ© par le nombre d'opportunitĂ©s mises en Ćuvre, a eu lieu au stade de la mise en Ćuvre. Lisp de 1960, traduit en Common Lisp, ne contient que 53 lignes. Il ne fait que ce qui est nĂ©cessaire pour interprĂ©ter les expressions. Tout le reste a Ă©tĂ© ajoutĂ© au stade de la mise en Ćuvre.
Mon hypothÚse est que, malgré son histoire difficile, Lisp a bénéficié du fait que son développement s'est déroulé en deux phases ; que l'exercice original consistant à définir un langage en y écrivant son interprÚte a donné à Lisp ses meilleures qualités. Et si oui, pourquoi ne pas aller plus loin ?
TĂ©lĂ©phone est une tentative de rĂ©pondre Ă la question : et si, au lieu de passer le plus tĂŽt possible du stade formel au stade de l'exĂ©cution, cette transition se faisait le plus tard possible ? Si vous continuez Ă utiliser lâapproche axiomatique jusquâĂ ce que vous ayez quelque chose qui se rapproche dâun langage de programmation complet, de quels axiomes aurez-vous besoin et Ă quoi ressemblera le langage rĂ©sultant ?
Je veux ĂȘtre clair sur ce quâest Bel et ce quâil nâest pas. Bien qu'il ait beaucoup plus de fonctionnalitĂ©s que le Lisp de McCarthy de 1960, Bel est encore un produit dans sa phase formelle. Comme Lisp, dĂ©crit dans un article de 1960, ce nâest pas un langage que vous pouvez utiliser pour programmer. Principalement parce que, comme le Lisp de McCarthy, il ne se soucie pas de l'efficacitĂ©. Lorsque j'ajoute quelque chose Ă Bel, je dĂ©cris la signification de l'ajout sans chercher Ă fournir une implĂ©mentation efficace.
Pour quoi? Pourquoi prolonger la phase formelle ? Une rĂ©ponse est de voir oĂč lâapproche axiomatique peut nous mener, ce qui est un exercice intĂ©ressant en soi. Si les ordinateurs Ă©taient aussi puissants que nous le souhaiterions, Ă quoi ressembleraient les langues ?
Mais je crois aussi qu'il est possible d'Ă©crire une implĂ©mentation efficace basĂ©e sur Bel en ajoutant des restrictions. Si vous voulez un langage dotĂ© dâune puissance expressive, claire et efficace, cela vaut peut-ĂȘtre la peine de commencer par la puissance expressive et la clartĂ©, puis dâajouter des restrictions, plutĂŽt que dâaller dans la direction opposĂ©e.
Donc, si vous voulez essayer d'écrire une implémentation basée sur Bel, allez-y. Je serai l'un des premiers utilisateurs.
En fin de compte, j'ai reproduit certaines choses des dialectes précédents. Soit leurs concepteurs ont bien compris, soit étant influencés par des dialectes précédemment utilisés, je ne vois pas la bonne réponse - le temps nous le dira. J'ai également essayé de ne pas trop m'éloigner des conventions Lisp. Ce qui signifie que si vous constatez un éloignement des conventions Lisp, il peut y avoir une raison à cela.
.
Merci pour la traduction : Denis Mitropolsky
PS
Source: habr.com
