Dis, je voulais créer mon propre langage de programmation. En supposant que j'ai pris toutes les décisions sur la façon dont je veux qu'il ressemble et agisse, ai-je juste besoin d'écrire un compilateur pour cela?
Non. Prendre toutes les décisions concernant l'apparence et le comportement du langage revient à créer votre propre langage de programmation. Vous n'avez pas besoin d'un compilateur ou d'un interprète pour créer un langage de programmation. Vous n'avez pas besoin d'un compilateur ou d'un interprète pour écrire des programmes dans votre langage de programmation.
Vous n'avez besoin d'un compilateur ou d'un interprète que si vous voulez réellement exécuter les programmes que vous écrivez.
Ma question est la suivante: la création d'un langage de programmation se fait-elle via un compilateur? Le haut niveau est bien.
Non. La création d'un langage de programmation se fait en proposant deux ensembles de règles:
- à quoi ressemble un programme juridique (syntaxe)
- ce que fait un programme juridique (sémantique)
C'est ça.
Il existe des langages de programmation qui n'ont aucune implémentation. Ou qui n'a pas été implémenté depuis longtemps.
Par exemple, Konrad Zuse a créé Plankalkül au milieu des années 40, mais en raison de la guerre, il n'a jamais pu le mettre en œuvre. Il a d'abord été mis en œuvre dans le cadre d'un mémoire en 1975. Mais il a certainement existé dans les années 1950 et 1960.
LISP a été conçu à l'origine comme une alternative plus souple au λ-calcul pour étudier le calcul. Il a été mis en œuvre par Steve Russell, un étudiant de John McCarthy. McCarthy lui-même doutait même que LISP puisse être mis en œuvre du tout!
APL a été initialement conçu comme une notation pour l'enseignement des mathématiques. Il a ensuite été étendu pour servir de langage de spécification pour IBM System / 360. Les implémentations sont venues plus tard, après que le langage ait déjà été utilisé.
PLANNER était une langue très influente, qui n'était en fait mise en œuvre qu'après avoir déjà influencé d'autres langues; il a été conçu en 1969 et mis en œuvre en 1973, époque à laquelle il avait déjà influencé Smalltalk et Prolog (tous deux en 1972).
Structure et interprétation de la mécanique classique est un manuel de physique qui utilise Scheme au lieu des mathématiques pour décrire les systèmes dynamiques; le fait que Scheme ait des interprètes et des compilateurs est inessentiel pour le livre, il est utilisé comme langage pour transmettre des pensées, pas pour exécuter des programmes.
Comme vous pouvez le voir, les langages de programmation peuvent être utiles même sans implémentations. "Les programmes doivent être écrits pour être lus par les humains, et accessoirement pour être exécutés par les ordinateurs" est une citation célèbre de Structure and Interpretation of Computer Programs. Les langages de programmation sont des langages formels permettant de décrire sans ambiguïté des processus complexes. Le fait que si vous décrivez un processus suffisamment précisément pour qu'un être humain le comprenne, il se trouve également qu'il est exécutable par une machine est un effet secondaire. C'est un effet secondaire très souhaitable, utile, puissant, mais c'est un effet secondaire.
Les tout premiers "langages de programmation", λ-calcul, SKI-calcul, Turing Machines, fonctions μ-récursives, n'ont pas été créés pour l'exécution. Ils ont été créés pour comprendre les questions fondamentales de la logique et des mathématiques.