Partage
  • Partager sur Facebook
  • Partager sur Twitter

Juste pour rire : Comment on créer son language de programmation

    25 octobre 2006 à 17:26:25

    Alors vous savez ou pas j'ai envi de tester pour rigoler


    Si vous créer un language vous l'appelerer comment,moi je l'appelerait le language BNJ avec une extention en .bnj .Pourquoi BNJ,parce que je m'appelle Benjamin :D

    Avec on pourrat faire des applications et plein de truc mais sa serait si je savait comment faire et si je sais je mis met tout de suite :lol:

    Si vous savez,alors vous pouvez m'aider.

    Merci d'avance
    • Partager sur Facebook
    • Partager sur Twitter
      25 octobre 2006 à 17:27:57

      je pense que c'est tres dur parce que les programmeurs l'on fais ya 30-40 ans
      • Partager sur Facebook
      • Partager sur Twitter
        25 octobre 2006 à 17:33:10

        pour faire un nouveau language il faut déjà choisir un language de référence ( le C par exemple, ou le Delphi) sur lesquel vont être batie tes première fonctions. ensuite il faut créer ton compilateur pour ton nouveau language. Le meilleur langage pour faire ca c'est l'assembleur (.asm) mais il très dur à aprendre (niveau plus bas que le C) et des fonctions change d'un PC à un autre.

        Pour ce genre de choses, il vaut mieux ne pas être seul.
        Pour la réalisation du compialteur rensaigne toi sur le net.

        mais avant tout il fau avoir une idée précise de ce que tu veux que ton langage puisse faire, si il est de haut ou bas niveau, etc...
        • Partager sur Facebook
        • Partager sur Twitter
          25 octobre 2006 à 17:48:10

          a deplacer==>autre language.

          sa dépent ou tu aprend l'asm et fait un languag compilé ou tu le fait dans un language que tu connait en analysant les fichier source et en les interpretant(donc un language interreté('etonne pas que sa sois moins rapide que de "vraies" applications)).

          • Partager sur Facebook
          • Partager sur Twitter
            25 octobre 2006 à 19:05:09

            Comme le dit Darkelfe, il faut d'abord vhoisir le langage dans lequel tu compte programmer ton langage. Ensuit, est-ce difficile ? Cela dépend de ce que tu veux faire. Si tu veux faire un langage assez complèxe comme le C, le Pascla, le JAVA... Je te souhaite bonne chance... :-°>_<
            Par contre tu peux faire un langage dit exotic, comme le brainfuck, pour lesquels il est relativement simple de faire des interprêteurs en C, par exemple...Pour le compilateur, c'est une autre paire de manche !
            • Partager sur Facebook
            • Partager sur Twitter
              25 octobre 2006 à 19:22:14

              Citation : Darkelfe

              pour faire un nouveau language il faut déjà choisir un language de référence ( le C par exemple, ou le Delphi) sur lesquel vont être batie tes première fonctions. ensuite il faut créer ton compilateur pour ton nouveau language. Le meilleur langage pour faire ca c'est l'assembleur (.asm) mais il très dur à aprendre (niveau plus bas que le C) et des fonctions change d'un PC à un autre.

              Pour ce genre de choses, il vaut mieux ne pas être seul.
              Pour la réalisation du compialteur rensaigne toi sur le net.

              mais avant tout il fau avoir une idée précise de ce que tu veux que ton langage puisse faire, si il est de haut ou bas niveau, etc...


              ô_O
              De l'asm pour coder un compilateur ! ça défonce tout \o/
              Sans rire, je rejoins le potentiel futur post de bluestorm "L'Ocaml c'est le langage par excellence pour coder des compilateurs/interpréteurs"
              • Partager sur Facebook
              • Partager sur Twitter
                25 octobre 2006 à 19:28:44

                dsl mais je connait pas L'Ocaml.

                donc je pouvais savoir.
                Maintenant que sui au courant on m'y reprendra pas.

                Au fait, t'as un tuto (francais de preference) sur l'Ocaml ?
                • Partager sur Facebook
                • Partager sur Twitter
                  25 octobre 2006 à 19:30:37

                  Citation : Darkelfe

                  dsl mais je connait pas L'Ocaml.

                  donc je pouvais savoir.
                  Maintenant que sui au courant on m'y reprendra pas.

                  Au fait, t'as un tuto (francais de preference) sur l'Ocaml ?



                  C'est un tort :D
                  Bon allez, j'anticipe le passage de bluestorm :
                  france-ioi
                  pps
                  • Partager sur Facebook
                  • Partager sur Twitter
                    25 octobre 2006 à 20:13:15

                    Citation : b-symon

                    Si vous créer un language vous l'appelerer comment,moi je l'appelerait le language BNJ avec une extention en .bnj .Pourquoi BNJ,parce que je m'appelle Benjamin :D

                    Avec on pourrat faire des applications et plein de truc mais sa serait si je savait comment faire et si je sais je mis met tout de suite :lol:

                    Si vous savez,alors vous pouvez m'aider.


                    Il existe plusieurs types de langages. Le C est un langage dit 'impératif'.

                    http://fr.wikipedia.org/wiki/Langage_de_programmation

                    Ensuite, il faut définir les éléments du langage lui même, qui se composent d'une syntaxe et d'une grammaire.

                    Enfin, il faut définir le langage lui même. Disons impératif.

                    C'est assez difficile, car il faut rester simple d'utilisation tout en couvrant tous les aspects d'un langage impératif, par exemple, c'est à dire :

                    gérer des variables
                    - format interne, type, taille, simples, structurées...
                    - création / destruction
                    - accès en lecture
                    - accès en ecriture
                    - affectation
                    gérer des opérateurs
                    - calculs
                    - logiques
                    - binaires
                    gérer des structures de code
                    -debut/fin
                    - if
                    - if-else
                    - select-case
                    - while
                    - do-while (ou repeat-until)
                    gerer des blocs de codes
                    - procédures
                    - fonctions
                    fournir des fonctions
                    - entrée/sortie
                    - utilitaires divers
                    etc.

                    Il existe un tas de théories sur les langages et la façon d'écrire un compilateur qui va bien... C'est plutôt vu en 3ème année d'université (L2 dans le système LMD).
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Music only !
                      25 octobre 2006 à 20:18:05

                      le plus simple ( :euh: ) c'est de coder un front end pour GCC, comme çà tu n'as pas d'intéractio avec le système
                      • Partager sur Facebook
                      • Partager sur Twitter
                        25 octobre 2006 à 20:38:57

                        Citation : Darkelfe

                        pour faire un nouveau language il faut déjà choisir un language


                        Déjà, il faut commencer par épeler correctement le mot langage, ça fait plus sérieux...

                        Citation : Pas de titre

                        de référence ( le C par exemple, ou le Delphi) sur lesquel vont être batie tes première fonctions.


                        Pourquoi ? Tu peux parfaitement définir un langage nouveau from scratch (de zéro). Rien n'interdit de faire ce que tu dis, mais ce n'est absolument pas une obligation.

                        Ne confonds pas 'définir un langage' et 'écrire un compilateur'. Oui, la plupart des compilateurs (quelque soit le langage) sont écris en C, tout simplement parce qu'il existe un tas d'outils bien rodés pour ça comme Flex et Bison qui produisent du sale code C bourré de globales.

                        Mais j'ai cru comprendre que Lisp était un langage qui permettait d'écrire des compilateurs facilement et proprement (Ocaml aussi, apparemment, mais ça se ressemble, non ? Ca y'est, je crois j'ai dit une choserie...).

                        Quand aux fonctions (de bibliothèque, je suppose), elles peuvent être écrites en n'importe quoi, on s'en fiche complètement du moment l'interface et le comportement spécifiés sont conformes.

                        Citation : Pas de titre


                        ensuite il faut créer ton compilateur pour ton nouveau language. Le meilleur langage pour faire ca c'est l'assembleur (.asm) mais il très dur à aprendre (niveau plus bas que le C) et des fonctions change d'un PC à un autre.


                        L'assembleur n'a jamais été le bon langage pour écrire un compilateur. Tu dis vraiment n'importe quoi... De plus, en assembleur, y'a pas de fonctions...

                        Citation : Pas de titre

                        Pour ce genre de choses, il vaut mieux ne pas être seul.


                        Il vaut mieux surtout se former sérieusement, ça évitera de dire des aneries... On a le droit de ne pas savoir. On a le droit de se documenter avant de parler...

                        Quand à 'ne pas être seul', peu importe, du moment qu'on maitrise le sujet, ce qui n'est visiblement pas ton cas...

                        Citation : Pas de titre

                        Pour la réalisation du compialteur rensaigne toi sur le net.


                        Très bon conseil que je t'invite à suivre au plus vite...

                        Citation : Pas de titre


                        mais avant tout il fau avoir une idée précise de ce que tu veux que ton langage puisse faire, si il est de haut ou bas niveau, etc...

                        Une lueur de reflexion intelligente... tout n'est pas perdu...


                        • Partager sur Facebook
                        • Partager sur Twitter
                        Music only !
                          25 octobre 2006 à 20:52:52

                          Citation : Yno

                          -ed- s'acharne :p


                          Y' de quoi non ? Ils savent à peine aligner 3 instructions de C et ils viennent nous pomper l'air avec des discussions de comptoir... J'ai passé l'age de ces c*nneries... Je craque...
                          • Partager sur Facebook
                          • Partager sur Twitter
                          Music only !
                            25 octobre 2006 à 20:59:32

                            Créer un langage reviens simplement à le définir et à l'implémenter.
                            Donc tu fais un gros bouquin pour expliquer ce qui est valide et comment on doit s'y prendre pour faire telle chose, un guide pour tous ceux qui utiliseront ton langage donc, et ensuite tu crées un compilateur qui va transformer ton code en exécutable, ou un interpréteur (ou une machine virtuelle, ..., suivant le type de langage).

                            [edit : Ah, et ça n'a rien de drôle.]
                            • Partager sur Facebook
                            • Partager sur Twitter
                              25 octobre 2006 à 21:12:00

                              Citation : remram44

                              Créer un langage reviens simplement à le définir et à l'implémenter.


                              Voilà un excellent résumé. Il faut que j'apprenne à être moins bavard...
                              • Partager sur Facebook
                              • Partager sur Twitter
                              Music only !
                                25 octobre 2006 à 21:16:15

                                Faut aussi définir si tu veux faire un langage interprété, ou compilé... C'est pas du tout la même approche.
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  25 octobre 2006 à 22:57:22

                                  Citation : Gravstein

                                  Faut aussi définir si tu veux faire un langage interprété, ou compilé... C'est pas du tout la même approche.


                                  Ah non, ça, ça ne dépend pas du langage. Pour un même langage tu peux trouver un interprêteur, compilateur générant du "byte-code" (je sais pas si on peut le dire pour autre chose que java), et un compilateur pur générant du binaire.
                                  Par exemple, l'ocaml a les trois.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    25 octobre 2006 à 23:15:37

                                    Je suis d'accord mais il voulait sûrement dire que l'implémentation est très différente(ce qui normal).
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      26 octobre 2006 à 0:36:25

                                      Citation : pamaury

                                      Je suis d'accord mais il voulait sûrement dire que l'implémentation est très différente(ce qui normal).



                                      Il y a confusion entre spécification du langage et spécification du programme de traitement du langage. Ce sont deux choses distinctes. La specification du langage indique le comportement du langage.

                                      Par exemple:


                                      int c = 1 + 4;


                                      La spécification du langage C me dit que la variable c doit contenir 5 une fois que la ligne a été exécutée. Peu importe comment le compilateur va s'y prendre, en langage C la ligne ci-dessus doit mettre 5 dans la variable c, c'est la spécification du langage. Maintenant la spécification du producteur de code (qu'il s'agisse d'un compilateur ou d'un interpreteur) est de fournir la façon de procéder pour que la ligne


                                      int c = 1 + 4;


                                      place 5 dans la variable c quoi qu'il arrive. La spécification du langage impose le résultat, la spécification du programme de production de code, précise comment le résultat est obtenu. Il s'agit bien de deux éléments indépendants, le langage définit le comportement du programme, le producteur de code garantit que le code généré est conforme au comportement défini par le langage. Dans un cas on spécifie un but à atteindre (le langage), dans l'autre on garantit que le but fixé est bien atteint (le compilateur/interpreteur). On voit bien que si le but à atteindre est influencé par les moyens pour l'atteindre, il y a un problème de logique, on a mis la charrue avant les boeufs...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                      Mettre à jour le MinGW Gcc sur Code::Blocks. Du code qui n'existe pas ne contient pas de bug
                                        26 octobre 2006 à 1:13:25

                                        Citation : Boo2M0rs0

                                        Citation : Gravstein

                                        Faut aussi définir si tu veux faire un langage interprété, ou compilé... C'est pas du tout la même approche.


                                        Ah non, ça, ça ne dépend pas du langage. Pour un même langage tu peux trouver un interprêteur, compilateur générant du "byte-code" (je sais pas si on peut le dire pour autre chose que java), et un compilateur pur générant du binaire.
                                        Par exemple, l'ocaml a les trois.



                                        Tu dis n'importe quoi ...
                                        Il y a langage interprété et langage compilé.
                                        Lorsqu'un langage est compilé, il est compilé point barre, il n'existe pas d'interpréteur de C a ce que je sache étant donner que c'est un langage compilé.

                                        Le Java est entre les deux mais n'est pas vraiment compilé :
                                        Code Source Java -> Byte-Code -> Interprétation du Byte-Code.
                                        Il y a aussi le cas du C# :
                                        Code Source C# -> Fichier Binaire intermédiaire -> Compilation du fichier binaire a son exécution.
                                        Le C# est aussi entre les deux mais est compilé a la fin et non interprété ;).

                                        Kurapix
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          26 octobre 2006 à 2:30:47

                                          si je peut te donner une idée sa serai de crée un langague qui passerai par un autre langague pour etre compiler, comme sa dans un premier temp tu na pas besoin de coder le compilateur

                                          je vais faire un exemple pour que vous comprenier bien mon idée :

                                          vous crée un nouveau langague mais quand vous appuyer sur le bouton compiler le programme traduit votre langague en c puis gcc compile votre code et sa fait un jolie .exe

                                          bien sur ce genre de langague et un peut plus haut (quoi que pas forcement) que le c mais on peut le spécifier dans une branche (scientifique,jeux, son, etc) si on veut

                                          voila l'idée d'un non expert.
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            26 octobre 2006 à 2:34:39

                                            Kurapix > C'est pas parce qu'on utilise le C principalement compilé qu'il n'existe pas d'interpréteur C.
                                            Puis un langage n'est pas soit compilé, soit interprété, c'est le code qui l'est.
                                            C'est comme du code OCaml, on a le choix de le compiler ou de l'interpréter (sous forme de bytecode).

                                            D'ailleurs, voilà la preuve qu'il existe des interpréteurs C (et même un peu C++) :

                                            http://www.softintegration.com

                                            Et du byte-code c'est quand même de l'interprété, vu que ce n'est pas du langage machine.
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              26 octobre 2006 à 6:15:43

                                              Ah bah je savais pas qu'il existait un interpréteur C et C++.
                                              Mais généralement on le compile quand même.

                                              Effectivement le langage n'est pas compilé mais son code source oui. Néanmoins on dit qu'un langage est compilé si son code source l'est, je me trompe?
                                              Je n'ai jamais dis que le byte-code n'était pas interprété.

                                              Kurapix
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                26 octobre 2006 à 10:32:09

                                                Citation : Kurapix

                                                Je n'ai jamais dis que le byte-code n'était pas interprété.


                                                Sûr. Et je vais te faire une révélation : Le code machine est interpété ! Dingue, non ?
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                Music only !
                                                  26 octobre 2006 à 10:36:28

                                                  J'ai pas pigé en fait, pourquoi pour creer un nouveau langage on a besoin d'un autre, la tout le monde dit qu'on a besoin du C ou de l'ASM !
                                                  Enfin je me demande comment ils ont créer réussi a creer le C ou l'ASM alors ????!!!! :-°
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    26 octobre 2006 à 10:40:06

                                                    Citation : Blorki

                                                    J'ai pas pigé en fait, pourquoi pour creer un nouveau langage on a besoin d'un autre, la tout le monde dit qu'on a besoin du C ou de l'ASM !
                                                    Enfin je me demande comment ils ont créer réussi a creer le C ou l'ASM alors ????!!!! :-°


                                                    Hum, d'un autre côté tu veux le coder en quoi ton compilateur/interpréteur si ce n'est dans un langage déjà existant ?
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      26 octobre 2006 à 10:48:25

                                                      Citation : Blorki

                                                      J'ai pas pigé en fait, pourquoi pour creer un nouveau langage on a besoin d'un autre, la tout le monde dit qu'on a besoin du C ou de l'ASM !
                                                      Enfin je me demande comment ils ont créer réussi a creer le C ou l'ASM alors ????!!!! :-°


                                                      Pour créer un langage on a juste besoin d'un papier et d'un stylo (ou d'un bon éditeur de texte, c'est plus cool quand même).

                                                      Pour écrire un compilateur, comme c'est une application, il faut bien un langage d'implémentation.

                                                      La premier compilateur a été écrit en assembleur, parce qu'il n'y avait rien d'autre pour le faire. Quand au premier assembleur, et bien pour les mêmes raisons, il a été écrit en binaire pur (ou en hexa, c'est quand même plus lisible). Oui il faut un début à tout, il n'y a pas de génération spontanée.

                                                      Dès qu'on a eu un compilateur suffisamment puissant, on a pu écrire un assembleur et un compilateur à l'aide de ce compilateur. Et c'est là que les langages ont commencé à évolué.

                                                      On a défini de nouveaux langages qu'on a pu implémenter grace aux compilateurs existant permettant de construire de nouveaux compilateurs etc.

                                                      Actuellement, un gcc de version N-1.x.x est capable de compiler un gcc de version N.x.x.

                                                      Pour les détails, voir l'histoire de l'informatique en général et des langages de programmation en particulier (sur Wikipedia, par exemple...)
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                      Music only !
                                                        26 octobre 2006 à 10:52:57

                                                        Le premier compilateur C a nécessairement été écrit en utilisant un langage déjà implémenté, comme l'assembleur (en tout cas, le premier compilateur a été écrit en assembleur je suppose).

                                                        Par contre, un assembleur (= compilateur pour le langage assembleur) ne fait que traduire du texte en langage binaire, sans modifier la syntaxe ou faire une quelconque optimisation. Il est donc très simple, et je ne pense pas qu'il y ait eu besoin d'un autre langage pour la première implémentation ^^

                                                        [edit : -ed- a été plus précis que moi visiblement.]
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          26 octobre 2006 à 11:04:24

                                                          Citation : -ed-

                                                          Citation : Kurapix

                                                          Je n'ai jamais dis que le byte-code n'était pas interprété.


                                                          Sûr. Et je vais te faire une révélation : Le code machine est interpété ! Dingue, non ?



                                                          Hihi ouais c'est vrai j'y ai même pas penser -ed-, vu que une instruction ASM correspond a un nombre binaire ... ;).

                                                          Sinon blorki si tu veux savoir d'ou vient le C, il vient de vieux ordinateur faisant plusieurs mètre cube lol.
                                                          Il y était une fois l'informatique ( :lol: ) .... plus sérieusement au commencement TOUS les programmeurs codait en binaire (la belle époque? :euh::lol: ), ensuite est apparu l'assembleur (qui provient des recherches d'une FEMME sous les ordres de l'armée américaine si je ne me trompe pas ;) ). Plusieurs langages ont suivis l'assembleur, plusieurs car la plupart de ces langages n'était pas adapter a la programmation de certains logiciels, ils étaient spécialisés pour un type précis de logiciels : un type de logiciel = un langage a cet époque.
                                                          Le C est la "compilation" (entre guillemet car pas tous a fait exact) des langages précédents, il est très vite devenu populaire car modulable, multi-usage et plusieurs autres raisons. Pour anecdote le C suit le langage B :lol: (véridique).
                                                          Bon en gros c'est ça mais je t'invite a lire cet article (non exhaustif) :
                                                          Une petite chronologie des langages de programmation
                                                          J'espère que ça te permet de mieux comprendre pourquoi il faut un autre langage pour en faire un autre. C'est comme le Français qui a des racines latines ;). Et l'équivalent de l'assembleur en langage humanoïde serait les cris bestiaux.

                                                          Kurapix
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            26 octobre 2006 à 20:44:42

                                                            Moi je dis si tu veux créer un langage comme l'a fait le créateur du C (et oui je me souviens plus de son nom, par contre pour le C++ c'est clair dans ma tête hihi ^^ ).
                                                            Ben obtiens déjà un doctorat puis planche dessus la moitié de ta vie, voilà bon courage ^^ .
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Juste pour rire : Comment on créer son language de programmation

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown