Salutation ,
La question du "comment créer un langage de programmation" trotte dans ma tête depuis belle lurettes et je me suis récemment décidé à en comprendre le fonctionnement, puis à en créer un. Je ne suis pour l’instant qu’à l’étape de la compréhension.
J’ai premièrement cherché à apprendre quelles étaient les langages existants et leurs utilités, puis les paradigmes et enfin les compilateurs. En étudiant le sujet des langages existants, j’ai remarqué que certain d’on Rust avait utilisé "LLVM" pour créer leur compilateur, j’ai donc fais mes recherches et j’en tire la conclusion que : LLVM est un framework pour compilateur qui attend le front-end et qui s’occupe du back-end (génération du code intermédiaire, optimisation de ce dernier et génération du code).
Toutefois, créer un compilateur ne suffit pas à créer un langage de programmation. C’est pourquoi j’ai approfondie mes recherches et le résultat de ces dernières est prévisible : il faut créer sa syntaxe et son mode de fonctionnement (implémentation de la création de fonction, de classe si le paradigme comporte l’orienté objet, de la déclaration de fonction, de module, de boucles, etc.)
Et à propos de ça, je n’ai rien trouvé de concret, c’est comme ci jamais personne ne s’était posé cette question. Je m’en remet par conséquent à vous pour répondre aux questions suivantes :
1. Lors de la création du langage, doit on prévoir deux répertoires distincts pour le compilateur et le langage en lui même (syntaxe, sémantique) ?
2. Si un répertoire comportant la sémantique et la syntaxe doit belle et bien exister, à quoi ressemblerait son architecture et comment programmer une syntaxe / sémantique ?
3. Pour créer le front-end du compilateur qui accompagnera mon langage, vers quelle ressource je peux me tourner pour apprendre à en créer un?
4. Lorsque mon langage sera créé, pour exécuter un programme écrit en mon langage je vais devoir utiliser mon compilateur, mais comment ? Je dois avoir créé une commande attendant le nom d’un fichier pour que mon compilateur le compile ? Et si c’est le cas, je dois ajouter le mot clé de mon compilateur au PATH ?
Cordialement, b4b4.