Paul Graham annonce un nouveau langage de programmation Bel

Bel est écrit en Bel.

image

En 1960, John McCarthy a décrit Lisp, un nouveau type de langage de programmation. Je dis «nouveau type» parce que Lisp n'était pas seulement une nouvelle langue, mais une nouvelle façon de décrire les langues.

Pour définir Lisp, il a commencé par un petit ensemble d'opérateurs, une sorte d'axiome, qu'il a ensuite utilisé pour écrire un interprète pour la langue elle-même.

Il ne visait pas à décrire un langage de programmation au sens habituel - un langage utilisé pour dire à un ordinateur quoi faire. Dans ses travaux de 1960, Lisp a été compris comme un modèle de calcul formel semblable à la machine de Thuring. McCarthy n'a pas pensé à l'utiliser sur des ordinateurs jusqu'à ce qu'il soit proposé par Steve Russell, son étudiant diplômé.

1960 Lisp n'a pas les capacités communes aux langages de programmation. Par exemple, il n'y avait pas de nombres, d'erreurs ou d'entrée / sortie. Par conséquent, les personnes qui ont utilisé Lisp comme base pour les langages utilisés pour programmer les ordinateurs ont dû ajouter ces fonctionnalités elles-mêmes. Et ils l'ont fait en abandonnant l'approche axiomatique.

Ainsi, le développement de Lisp s'est déroulé en deux étapes - et, semble-t-il, assez indépendantes - la phase formelle, présentée en 1960, et la phase de mise en œuvre, dans laquelle le langage a été adapté et étendu pour fonctionner sur ordinateur. Le travail principal, si mesuré par le nombre d'opportunités mises en œuvre, était au stade de la mise en œuvre. 1960 Lisp, traduit en Common Lisp, ne contient que 53 lignes. Il ne fait que le 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é une histoire difficile, Lisp a bénéficié du fait que son développement s'est déroulé en deux phases; que l'exercice initial de définition d'une langue en y écrivant son interprète a doté Lisp de ses meilleures qualités. Et si oui, pourquoi ne pas continuer?

Bel tente de répondre à la question: que faire si, au lieu de passer du stade formel au stade d'exécution à un stade précoce, effectuer cette transition le plus tard possible? Si vous continuez à utiliser l'approche axiomatique jusqu'à ce que vous ayez quelque chose de proche d'un langage de programmation complet, de quels axiomes aurez-vous besoin et à quoi ressemblera le langage résultant?

Je veux clarifier ce qu'est Bel et ce qu'il n'est pas. Bien qu'il ait beaucoup plus de fonctionnalités que le Lisp McCarthy de 1960, Bel est toujours dans la phase formelle. Comme Lisp décrit en 1960, ce n'est pas un langage que vous pouvez utiliser pour la programmation. Surtout parce que, comme Lisp McCarthy, il ne se soucie pas de l'efficacité. Lorsque j'ajoute quelque chose à Bel, je décris la signification de cet ajout sans essayer de 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 en soi est un exercice intéressant. Si les ordinateurs étaient aussi puissants que nous le souhaiterions, à quoi ressembleraient les langues?

Mais je pense aussi qu'il est possible d'écrire une implémentation efficace basée sur Bel, en ajoutant des restrictions. Si vous avez besoin d'un langage qui a un pouvoir expressif, une clarté et une efficacité, vous voudrez peut-être commencer par un pouvoir expressif et une clarté, puis ajouter des restrictions avant de vous déplacer dans la direction opposée.

Donc, si vous voulez essayer d'écrire une implémentation basée sur Bel, s'il vous plaît. 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 tout fait correctement, 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 aller trop loin des conventions adoptées à Lisp. Ce qui signifie que si vous voyez un écart par rapport aux conventions Lisp, il peut y avoir une raison.

Description continue de la langue ici .


Merci pour la traduction: Denis Mitropolsky

PS


Source: https://habr.com/ru/post/fr484328/


All Articles