J'aimerais bien, dans un but purement éducatif ( ), créer mon propre langage de programmation. Après plusieurs recherches sur le net, j'ai trouvé plein d'endroit qui nous expliquait comment, mais sans exemple ou vraiment pas clairement. Moi, aimant les directives précises et claires , je n'ai rien compris, et de plus en plus de questions se posent dans ma tête. En voilà SEULEMENT quelques-unes (sinon la liste serait beaucoup trop longue! ):
Comment compile-t-on le compilateur?
Comment utiliser le compilateur une fois terminé?
Est-on obligé d'être un maniaque des mathématiques (ne vous inquiétez pas, je suis tout de même bon en maths) et avoir terminé son bac en informatique pour en créer un?
Voilà, alors si quelqu'un à déjà vécu cette expérience, laissez votre grain de sel s'il vous plaît!
PS Ça ne me dérange pas que mon langage n'aie que 3 mots-clés, je veux faire ça dans un but éducatif seulement!
-Avec un compilateur, mais un compilateur de A peut etre ecrit en B.
-Bah, comme n'importe quel compilateur, "compilateur source" en console par exemple.
-Non.
(tu peux faire un language inteprete aussi)
Si tu veux un exemple : le C et le C++ sont compiles, et le PHP est inteprete.
En gros ca veut dire que tu le compiles pas, et a la place d'un compilateur t'as un intepreteur.
Il relit le code en entier et l'interprete a chaque fois. https://secure.wikimedia.org/wikipedia [...] %C3%A9t%C3%A9
Pour programmer un compilateur, à partir de rien, il faut être talentueux, patient, et nombreux.
Ou pas. Déjà, un compilateur peut se faire en plusieurs étapes, et il est possible de créer un compilateur sans toucher une ligne d'assembleur (prenons par exemple le cas du backend C du compilateur GHC pour Haskell, qui compile le code en C puis le passe à gcc). Après, c'est évident que ce n'est pas très facile à faire, mais il n'y a pas besoin d'une équipe de 50 programmeurs avec 20 ans d'expérience pour faire un compilateur qui marche.
D'ailleurs, je fais un peu de pub pour krankkatze, qui a écrit un petit interpréteur pour un langage de programmation. Ce n'est pas un compilateur, mais ça donne une idée des premières étapes à réaliser. Commencer par coder un interpréteur, c'est plutôt une bonne idée parce que c'est plus simple à faire et ça permet de tester le langage avant (et que quelques parties de l'interpréteur peuvent facilement être réutilisées pour compiler). D'ailleurs, ça te permet d'écrire le compilateur dans le langage que tu compiles, ce qui est super classe quand même.
J'ai pas dit que c'était impossible non plus.
En utilisant des compilateurs existants, on se simplifie énormément la tâche, et pour un usage pédagogique c'est probablement le meilleur choix.
Dit nous quelle langage sais tu programmé ? Si tu ne programme pas encore mai toi au C .
Je pense qu'il serai bon de ne pas se lancer tout de suite dans un langage compilé , tu devrai plutôt créer un langage interprété .
langage interprété: logiciel.exe => ouvre le langage.txt et interprète caractère par caractère .
En gros tu créer un logciel qui ouvre un fichier text et mai tout dans un tableau . Tu fait une boucle qui va interprété caractère par caractère le tableau . par exemple il voie fonctionExit(0); il se dit qu'il faut fermé le programme donc exit(0);
Voila en très gros c'est sa.. Commence deja par créer un programme qui lis du texte et si il voie Ecrire par exemple "console("salut");" tu isols le "salut" et tu le marque a l’écran ! tout simple commence par faire sa , entrainne toi et tu va vite commencé a créer de chose bien ..
Bon courage , prend ton temps , sois patient et pose des question ...
Le réel danger n'est pas que les ordinateurs vont commencer à penser comme les hommes, mais que les hommes vont commencer à penser comme les ordinateurs- auteur inconnu
Pour programmer un compilateur, à partir de rien, il faut être talentueux, patient, et nombreux.
Ou pas. Déjà, un compilateur peut se faire en plusieurs étapes, et il est possible de créer un compilateur sans toucher une ligne d'assembleur (prenons par exemple le cas du backend C du compilateur GHC pour Haskell, qui compile le code en C puis le passe à gcc). Après, c'est évident que ce n'est pas très facile à faire, mais il n'y a pas besoin d'une équipe de 50 programmeurs avec 20 ans d'expérience pour faire un compilateur qui marche.
D'ailleurs, je fais un peu de pub pour krankkatze, qui a écrit un petit interpréteur pour un langage de programmation. Ce n'est pas un compilateur, mais ça donne une idée des premières étapes à réaliser. Commencer par coder un interpréteur, c'est plutôt une bonne idée parce que c'est plus simple à faire et ça permet de tester le langage avant (et que quelques parties de l'interpréteur peuvent facilement être réutilisées pour compiler). D'ailleurs, ça te permet d'écrire le compilateur dans le langage que tu compiles, ce qui est super classe quand même.
Je pense que ce que Gwenn voulais dire c'est de créer un compilateur qui passe du langage créé à l'assembleur direct
Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
Je suis étudiant en L3 Info, et coder un compilateur faisait partie d'un de nos projets de fin d'année (développé en C, langage source: un langage C allégé, langage cible: assembleur MIPS). Et Franchement, c'est loin d'être infaisable. Par contre il faut être très patient et avoir quelques notions en théorie des langages. Mon prof nous avait conseillé le Dragon Book: apparemment ça serait la référence en ce qui concerne la conception de compilateurs. Perso, je n'y ai jamais jeté un oeil mais je pense que les cours de compi que j'ai suivis se calquaient là dessus. (Je sais qu'on y retrouve les lignes directrices de la réalisation de compilateur: analyse lexicale, analyse syntaxique, création et parcours de l'arbre abstrait, génération de code...)
Du coup, si j'ai un ouvrage à conseiller: ce serait celui-là
Merci de ta réponse, mais qu'est-ce qu'un langage interprète?
un language interprété est un language avec un interpréteur , comme le python , on n'a pas besoins d'un compilateur , un language interprété et un language de haut niveau , qui s'éxécute directement dans son interpréteur . c'est son interpréteur qui l'éxécute , alors on n'a pas besoins d'un compilateur pour l'executer.
Même si cela fait maintenant quelques mois... mais bon mieux vaut tard que jamais.
Donc revenons à nos chers montons
SI tu veux créer un langage de programmation et que tu as besoin d'un peu d'aide :), tu as un livre pour créer ton propre langage super bien expliqué qui te montre tout de A à Z avec à la fin un langage de programmation déjà créé en tant qu'exemple. Le seul inconvénient, c'est que le livre est en anglais, mais bon, même moi qui ai une petite base en anglais j'ai tout compris, donc, c'est franchement pas un problème :D
Puis je pense que tu peux voir pour le sujet de la Théorie des langages mais c'est un assez gros sujet qui est découpé en plusieurs modules donc tu as de la lecture devant toi.
Pour finir tu vas avoir une très très grosse partie sur la conception même du langage que tu veux créer et donc définir la syntaxe, les règles de syntaxe et de sémantiques, etc... Suivant la compléxité que tu recherche et les fonctionnalités, ca peut s'avérer être un projet de plusieurs années
Blond, bouclé, toujours le sourire aux lèvres...