Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer son propre langage de programmation?

Hum... si c'est possible, comment? o_O

26 juin 2010 à 0:10:08

Bonjour à tous! :D

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 o_O , je n'ai rien compris, et de plus en plus de questions se posent dans ma tête. :o 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! ^^

Merci à l'avance! ^^
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 0:28:07

-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)
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 0:33:40

Merci de ta réponse, mais qu'est-ce qu'un langage interprète? o_O
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 0:34:01

Si tu te poses ces questions, c'est que tu ne sais pas encore assez de choses concernant le fonctionnement des langages, leurs compilation, toussa.

Donc laisse tomber, limite étudie les sources de compilateurs libres.

Edit : pour les langages interprétés, je sais pas, peut-être qu'ils sont tout simplement interprétés ?
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 0:36:14

Heu d'accord, mais y-a-t-il des documents (PDF, livres, etc.) que tu pourrais me recommander pour apprendre tout ça? :euh:
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 0:40:07

Il y a sans doute des livres traitant de la compilation, mais j'en connait pas, cherche sur des sites spéciaux.
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 11:06:22

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
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 17:24:13

Hum d'accord, mais aurais-tu une idée sur comment programmer un compilateur (disons, en C)? o_O
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 17:31:52

Faut "traduire" le langage en langage assembleur, puis, un assembleur change le langage assembleur en binaire.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 juin 2010 à 17:36:57

Pour programmer un compilateur, à partir de rien, il faut être talentueux, patient, et nombreux.
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 17:43:42

Mais il y a moyen de commencer avec "simple", comme ce que propose bluestorm dans son atelier Ptit Langage.
  • Partager sur Facebook
  • Partager sur Twitter
26 juin 2010 à 17:45:53

Citation : Gwen-Haël

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.
  • Partager sur Facebook
  • Partager sur Twitter
Anonyme
26 juin 2010 à 17:48:39

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.
  • Partager sur Facebook
  • Partager sur Twitter
11 mai 2014 à 19:53:53

Bonjour ,

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 ^^ ...

  • Partager sur Facebook
  • Partager sur Twitter
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
14 mai 2014 à 10:02:42

gnomnain a écrit:

Citation : Gwen-Haël

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
  • Partager sur Facebook
  • Partager sur Twitter
Un jour les Valaisans domineront le monde. Mais pas demain, ya apéro
14 mai 2014 à 13:54:29

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à :)

edit: remontage de 4 ans ?

-
Edité par Gabilo 14 mai 2014 à 13:55:49

  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2014 à 19:41:42

M@rcA a écrit:

Merci de ta réponse, mais qu'est-ce qu'un langage interprète? o_O


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.
  • Partager sur Facebook
  • Partager sur Twitter
9 juin 2014 à 19:47:52

Attention aux dates des topics.

  • Partager sur Facebook
  • Partager sur Twitter

Blond, bouclé, toujours le sourire aux lèvres...

9 juin 2014 à 20:01:14

Oups , désoler j'ai trouver ce topic sur une recherche google , je savais pas sa date , je voulais seulement aider :(
  • Partager sur Facebook
  • Partager sur Twitter
28 octobre 2014 à 21:03:10

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

Le Lien est ici si tu l'as loupé LOL :D

-
Edité par loxorious 28 octobre 2014 à 21:04:29

  • Partager sur Facebook
  • Partager sur Twitter
28 octobre 2014 à 22:02:57

Vu que on déterre des topics...

Tu peux aussi plus simplement créer ton propre langage en utilisant des opcodes afin de générer du bytecode pouvant être lu par n'importe qu'elle JVM.

une petite présentation ici: https://www.youtube.com/watch?v=rPyqB1l4gko#t=306

  • Partager sur Facebook
  • Partager sur Twitter
29 novembre 2014 à 22:29:44

Ca risque de ne pas être une chose très aisée mais si tu y tiens... Il te faut des outils donc voici quelques liens:

http://dinosaur.compilertools.net/
http://ds9a.nl/lex-yacc/#download
http://www.linux-france.org/article/devl/lexyacc/

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 
  • Partager sur Facebook
  • Partager sur Twitter
14 mars 2016 à 5:08:49

Ca avance ce compilateur ? En 5 ans il doit en jeter !

-
Edité par ClaudeJoli 14 mars 2016 à 5:10:04

  • Partager sur Facebook
  • Partager sur Twitter
14 mars 2016 à 11:07:51

Record mondial du nombre de déterrements d'un seul et même topic ici.

C'est la 3ème fois déjà.

  • Partager sur Facebook
  • Partager sur Twitter