Partage
  • Partager sur Facebook
  • Partager sur Twitter

Créer un langage de programmation

Sujet résolu
    31 décembre 2019 à 0:21:06

    Bonjour à tous, j’aimerai créer un langage de programmation, mais je n’ai trouvé aucun tutoriel claire et précis sur le sujet. Je me demandai donc si quelqu’un pouvait m’aider. J’aimerai créer un langage de programmation qui soit compatible avec tout les ordinateurs ( un peu comme le Python ou le Java ).
    • Partager sur Facebook
    • Partager sur Twitter
      31 décembre 2019 à 4:32:38

      Le domaine de la création et de l'implémentation des langages de programmation sont tout deux des domaines très larges. Commences par te poser de bonnes questions (sans jugement, bien sûr). "Comment créer un langage de programmation" est une question supposant de vagues réponses contrastant, cependant, de très larges champs.

      Au niveau du langage en lui-même, ce dernier est caractérisé par une grammaire et une sémantique étant construite autour d'une certaine logique bien définie, d'un paradigme, d'un cadre de pensée. Pour faire simple, on cite généralement les paradigmes objets, impératifs ou encore fonctionnel, mais ça, c'est quand on souhaite un langage relativement bien conçu et travaillé, bien que les langages fonctionnels soient fondamentalement très simples à mettre en oeuvre et à imaginer, je t'invite d'ailleurs à te renseigner sur eux.

      Ensuite, vient l'étape de la mise en oeuvre, de l'implémentation, de la conception de l'interpréteur ou du compilateur. Pour ça, il y a plusieurs étapes, je te laisse chercher sur internet, il y a pas mal de ressources à ce niveau là. La compatibilité entre plateforme n'est généralement que la dernière des preoccupations des "langages jouets", mais normalement un interpréteur devrait faire largement l'affaire.

      • Partager sur Facebook
      • Partager sur Twitter

      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

        31 décembre 2019 à 11:59:50

        J’aimerai faire un langage orienté objet. Je connais plusieurs langage de programmation fonctionnel ( pour programmer avec certain comme le javascript ). De plus, je sais déja quel va être la construction ( ou grammaire, comme tu veux ) de mon langage.Et merci, du coup je vais aller voir pour faire un compilateur.
        • Partager sur Facebook
        • Partager sur Twitter
          31 décembre 2019 à 12:45:47

          Les langages orientés objets sont relativement compliqués à mettre en oeuvre, si tu débutes en création de langage, je ne te conseil pas ça pour commencer, mais ça n'en reste pas moins intéressant.

          Idem pour la compilation, c'est plus difficile à réaliser qu'un interpréteur. C'est même assez compliqué à vrai dire.

          Tu peux te rendre sur GitHub, pour voir les dépôts de certains projets de langage, ça te donnera probablement une meilleur idée de ce style de projet.

          • Partager sur Facebook
          • Partager sur Twitter

          Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

            31 décembre 2019 à 13:11:53

            Je vais voir pour faire un interpréteur pour un langage de programmation fonctionnel. Mais je ne sais pas en quoi le programmer. En C ?

            -
            Edité par Quenn30001 31 décembre 2019 à 13:21:31

            • Partager sur Facebook
            • Partager sur Twitter
              31 décembre 2019 à 13:49:57

              Je serais tenté de te proposer Haskell ou OCaml / F#, cela te familiarisera davantage avec les concepts de la programmation fonctionnelle si tu ne les connais pas déjà, en plus de te grandement faciliter la tâche.

              Le langage C est certes un langage à usage générale, mais il est moins adapté, je trouve, à la création d'interpréteur ou de compilateur, en comparaison aux langages que j'ai cité plus haut. Tu auras effectivement et notamment la notion d'arbre syntaxique à implémenter et utiliser, et crois moi, les langages fonctionnels permettent ce style de choses à merveille. De plus, il est plus facile de faire du cross-plateforme en utilisant ces langages, car ils ont un niveau d'abstraction qui permet à l'utilisateur de ne pas dépendre la machine et de l'OS pour réaliser ses programmes, contrairement au C où les bibliothèques standards, ainsi que certaines normes, varient un peu dépendamment de la plateforme.

              • Partager sur Facebook
              • Partager sur Twitter

              Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                31 décembre 2019 à 17:55:50

                Après avoir vus tout ces langages, je me pencherai plus sur le OCaml. Si tu connais un tutoriel complet dessus, je te serai reconnaissant de me le présenter.

                -
                Edité par Quenn30001 31 décembre 2019 à 18:29:03

                • Partager sur Facebook
                • Partager sur Twitter
                  31 décembre 2019 à 18:27:43

                  Salut,

                  En OCaml en français, tu as ce tutoriel qui est pas mal.

                  • Partager sur Facebook
                  • Partager sur Twitter
                  Tutoriel Ruby - Bon tutoriel C - Tutoriel SDL 2 - Python avancé - Faîtes un zeste, devenez des zesteurs
                    31 décembre 2019 à 18:29:40

                    Nikel, ça me conviens parfaitement. J’ai juste une dernière question. Comment puis-je créer une extension de fihier ? Par là, j’entend que : l’extension soit reconnue par le système d’exploitation, que les fichiers portant l’extension au une image représentative précise ( par exemple, pour les fichier en .py, c’est ça :

                    ) et que les fichiers portant cette extension se fasse automatiquement interpréter par mon interpréteur.

                    -
                    Edité par Quenn30001 31 décembre 2019 à 18:35:25

                    • Partager sur Facebook
                    • Partager sur Twitter
                      31 décembre 2019 à 18:32:44

                      Bien sûr, LYAH (Learn You A Haskell) est très bien fait, bien qu'un peu lent pour certaines notions. Ce tutoriel est en anglais, je ne sais pas s'il existe une version francisée.

                      Je te passe également l’excellent lien WYAH (Write You A Haskell) où est présenté un tutoriel complet sur la réalisation d'un interpréteur (je pense même que c'est un compilateur JIT). Il n'est pas encore terminé, mais les notions abordées te feront découvrir plein de choses intéressantes sur la conception de langages et leurs implémentations, notamment ici au niveau du système de type, avec une inférence basée sur l'algorithme W de Hindley-Milner (cela peut sembler barbare à première vue, mais c'est en réalité assez simple).

                      PS: je n'avais pas vu la modification, ma réponse s'applique à Haskell et non pas à OCaml.

                      PPS: les extensions de fichier n'ont rien à voir avec le langage de programmation, c'est juste un moyen pour on OS de reconnaître avec quel logiciel lancer ton programme.

                      -
                      Edité par vanaur 31 décembre 2019 à 18:37:41

                      • Partager sur Facebook
                      • Partager sur Twitter

                      Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                        1 janvier 2020 à 2:03:53

                        Je vais quand même voir pour le tuto Haskell. Et pour les extension, je le sais mais il est possible de faire ce que j’ai dit, car il y en a qui le font ( mais n’explique pas comment ). L’OS attribut juste certain paramètre au extension mais je me demandais comment modifier ces réglages.
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 janvier 2020 à 11:50:06

                          Sur Windows : clique droit sur le fichier avec ton extension (veille à ce que ça ne soit pas fichier.<ext>.txt) → Ouvrir avec → Choisir une autre application, et tu choisiras ton interpréteur.

                          Je ne connais pas bien Linux, mais ça ne devrait pas être bien différent si tu utilises une distribution avec un bon GUI.

                          • Partager sur Facebook
                          • Partager sur Twitter

                          Le meilleur moyen de prédire l'avenir, c'est de l'inventer | N'oubliez pas [résolu] et +1 | Excusez mon ôrtograffe, j'essaie de l'améliorer...

                          Créer un langage 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