Comment créer un langage de programmation?

Pour créer un langage de programmation
Pour créer un langage de programmation, vous avez besoin d'un autre langage de programmation.

Beaucoup de gens ont des difficultés ou des frustrations avec les langages de programmation qu'ils utilisent quotidiennement. Certains veulent que les choses soient traitées de manière plus abstraite, tandis que d'autres n'aiment pas implémenter les fonctionnalités qu'ils souhaitent «standard». Que vous soyez un professionnel de l'informatique ou simplement un amateur, vous voudrez peut-être souvent créer un nouveau langage de programmation.

Pas

  1. 1
    Familiarisez-vous avec la technologie. Vous ne pouvez pas créer un langage de programmation si vous ne savez pas comment utiliser un ordinateur.
  2. 2
    Familiarisez-vous avec la terminologie. Les rédacteurs de compilateurs utilisent souvent une terminologie inconnue. Renseignez-vous sur les compilateurs avant de continuer. Assurez-vous de savoir tout ce que vous devez savoir.
  3. 3
    Décidez du problème que votre langue résout. S'agit-il d'un problème spécifique à un domaine ou s'agit-il d'un langage à usage général?
  4. 4
    Pensez à la sémantique de votre langage et à ses concepts.
    • Allez-vous autoriser l'accès direct au pointeur ou non?
    • Quels sont les types de données de votre langue?
    • Est-ce un langage statique ou dynamique?
    • Quel est votre modèle de mémoire? Allez-vous utiliser un garbage collector ou une gestion manuelle de la mémoire? (Si vous utilisez un garbage collector, préparez-vous à en écrire un ou adaptez-en un existant à votre langue.)
    • Comment allez-vous gérer la concurrence? Allez-vous utiliser un modèle simple de filetage / verrouillage ou quelque chose de plus complexe comme Linda ou le modèle d'acteur? (Depuis de nos jours, les ordinateurs ont plusieurs cœurs.)
    • Y a-t-il des fonctions primitives intégrées dans le langage ou tout proviendra-t-il d'une bibliothèque?
    • Quel est le ou les paradigmes de votre langue? Fonctionnel? Orienté objet? Prototype (comme JavaScript)? Orienté aspect? Orienté modèle? Ou quelque chose d'entièrement nouveau?
    • Comment votre langue va-t-elle s'interfacer avec les bibliothèques et langages existants (principalement C)? Ce point est important si vous créez un langage spécifique à un domaine.
    • Enfin, certaines des réponses à ces questions seront répondues par la deuxième étape et vous aideront à répondre à l'étape suivante.
  5. 5
    Pensez à certaines tâches spécifiques que quelqu'un voudrait pouvoir effectuer avec votre langue. Par exemple, «ils peuvent vouloir demander à un robot de suivre une ligne» ou «ils peuvent vouloir créer des programmes de bureau relativement portables» ou «ils peuvent vouloir créer des applications Web avec».
  6. 6
    Expérimentez avec des idées de syntaxe (le texte de la langue) pour les exemples ci-dessus.
    • Veillez à conserver votre langue dans la catégorie de langue sans contexte ou quelque chose à l'intérieur. Votre générateur d'analyseur et vous l'apprécierez plus tard.
  7. 7
    Écrivez une grammaire formelle pour la syntaxe.
  8. 8
    Décidez si le langage sera interprété ou compilé. Cela signifie que dans le monde interprété, votre utilisateur éditera généralement votre programme dans un éditeur et l'exécutera directement sur l'interpréteur; tandis que dans le monde de la compilation, votre utilisateur éditera votre programme, le compilera, enregistrera l'exécutable résultant quelque part et l'exécutera.
  9. 9
    Écrivez le scanner et l'analyseur frontal ou trouvez un outil qui vous aide.
    • Pensez également à la manière dont votre compilateur / interpréteur avertira votre utilisateur des programmes erronés et des erreurs de syntaxe.
  10. 10
    Utilisez les informations de l'analyseur pour écrire le code objet ou une représentation intermédiaire. Demandez à l'analyseur de créer un AST, puis créez votre code objet à partir de l'AST en utilisant le code à trois adresses ou son grand frère SSA, puis créez une table de symboles pour définir vos fonctions, vos variables globales, etc.
    • En outre, en fonction de votre langue, vous pouvez également créer des tables de pointeurs virtuels ou des tables d'informations pour vos classes (afin de prendre en charge la réflexion ou le RTTI).
  11. 11
    Écrivez l'exécuteur ou le générateur de code qui liera tout ensemble.
  12. 12
    Ecrivez de nombreux programmes de test pour tester la langue.
    • Vous voulez créer des programmes qui accentuent le fardeau de votre grammaire formelle afin de voir que votre compilateur accepte tout ce qui est à l'intérieur de votre définition et rejette tout ce qui est en dehors de celle-ci.
  13. 13
    Considérez comment l'utilisateur déboguera ses propres programmes.
  14. 14
    Si votre langue utilise une bibliothèque standard, vous voudrez l'écrire. Avec un garbage collector ou d'autres fonctionnalités d'exécution si vous en avez besoin.
    • Plus précisément, si vous écrivez un compilateur, vous aurez besoin du code que le système d'exploitation exécutera pour commencer à exécuter le code utilisateur (par exemple, allouer toutes les variables globales).
  15. 15
    Publiez votre langage, avec ses spécifications et quelques exemples de ce que vous pouvez y faire.
    • N'oubliez pas de documenter comment vous pouvez vous intégrer aux bibliothèques et langages existants et comment utiliser les fonctionnalités d'exécution et / ou la bibliothèque standard.
Vous ne pouvez pas créer un langage de programmation si vous ne savez pas comment utiliser un ordinateur
Vous ne pouvez pas créer un langage de programmation si vous ne savez pas comment utiliser un ordinateur.

Conseils

  • Commencez par concevoir votre langage et n'écrivez aucun code, jusqu'à ce que vous soyez satisfait et que vous ayez répondu à toutes (ou à la plupart) des questions ou des problèmes liés à votre conception, car il est plus facile de changer la conception plus tôt que plus tard.
  • Connaissez votre plate-forme cible (système d'exploitation et bibliothèques) pour votre compilateur / interpréteur après tout, vous allez l'utiliser et la manipuler.
D'autres langages de programmation peuvent vous aider à spécifier la syntaxe (règles) de votre langage
D'autres langages de programmation peuvent vous aider à spécifier la syntaxe (règles) de votre langage de programmation.

Mises en garde

  • Pensez si vous avez vraiment besoin d'une nouvelle langue, et ce que votre langue a de nouveau que d'autres langues n'ont pas (cela peut être une combinaison de fonctionnalités ou une seule fonctionnalité).
  • Préparez-vous à passer du temps dans la conception du langage, car vous n'aurez pas la chance de changer de langage une fois que vous aurez écrit le compilateur et dépassé le stade de conception.
  • L'écriture des langues est difficile si vous ne savez pas ce que vous faites. Cela demande aussi beaucoup de pratique.
  • N'essayez pas de baser vos fonctionnalités sur une union de plusieurs langues, comme dire que votre langue sera une union de la langue X, de la langue Y et de la langue Z. L'histoire nous a montré que les langues créées de cette manière ne trouveront jamais de succès, ou tout le monde programmerait PL / 1 au lieu de quelque chose basé sur C.
Vous voudrez peut-être souvent créer un nouveau langage de programmation
Que vous soyez un professionnel de l'informatique ou simplement un amateur, vous voudrez peut-être souvent créer un nouveau langage de programmation.

Les choses dont vous aurez besoin

  • La patience.
  • Connaissance des fonctionnalités du langage et de la conception du langage (vous voudrez peut-être lire les concepts de conception de langage de programmation de David A. Watt).
  • Connaissance de la théorie du compilateur (puisque vous allez écrire un compilateur / interpréteur pour votre langage et votre implémentation sera l'implémentation de référence).
  • Utilisations pour votre langage (rappelez-vous que certains des langages les plus utilisés comme C ou Lisp ont été créés pour faire quelque chose de spécifique comme créer Unix ou faire du calcul symbolique).

Questions et réponses

  • Existe-t-il un langage spécifique sur lequel il est facile de créer un nouveau langage, et comment le ferais-je?
    Java est utile en raison des nombreux outils disponibles. En particulier, un outil très connu appelé "ANTLR" est disponible pour générer des composants majeurs de compilateurs et d'interprètes.
  • Puis-je créer un nouveau langage sans utiliser un autre langage de programmation?
    D'autres langages de programmation peuvent vous aider à spécifier la syntaxe (règles) de votre langage de programmation. Cela vous aidera à apprendre Java, C ++, Python, etc. Les langages de programmation sont destinés à résoudre des problèmes, alors concentrez-vous là-dessus lorsque vous travaillez sur le vôtre.
  • Quels sont les meilleurs livres à apprendre sur le langage de programmation Java?
    Vous pouvez probablement en trouver un dans une bibliothèque locale. Sinon, YouTube propose des tonnes de tutoriels, tels que thenewboston.
  • Comment commencer à apprendre un langage de programmation?
    guide contient quelques articles intéressants à ce sujet, tels que Commencer à apprendre la programmation informatique, Apprendre un langage de programmation et Commencer à apprendre à programmer. Une fois que vous avez choisi la langue qui correspond le mieux à vos besoins, guide propose également des didacticiels sur les langages de programmation.
  • Où programmer une nouvelle langue sur un PC?
    Vous pouvez utiliser des logiciels gratuits comme Sublime Text et ConTEXT, Notepad ++ ou même simplement Notepad pour commencer!
  • Que dois-je apprendre pour comprendre la conception de langage?
    Vous pouvez suivre un cours dans votre collège, université ou école de métiers, ou rechercher des informations en ligne.
  • Comment publier un langage de programmation?
    Vous devriez créer un site Web qui, si vous êtes familier avec le codage, peut être fait à très bon marché, ou vous pouvez payer un peu plus pour obtenir un éditeur de site Web par glisser-déposer. Vous devez tout écrire sur la façon d'utiliser le code sur le site Web. Après cela, vous devriez le partager sur les forums et les sites de médias sociaux. Si vous avez créé un vrai programme dans votre langue, cela peut vous aider, car les gens voient que c'est une bonne langue.
  • Quels sont les 5 meilleurs langages de programmation?
    Il n'y a pas de «meilleur» langage de programmation. Chaque langage de programmation a ses forces et ses faiblesses. C'est au développeur de déterminer si un langage de programmation convient ou non à son projet en fonction de ces forces et faiblesses.
  • Puis-je créer un nouveau langage de programmation sur un Chromebook?
    Bien sûr, tant que vous avez accès à Javascript, Python, C # ou à un autre langage de programmation. Pour créer un langage de programmation, vous avez besoin d'un autre langage de programmation.
  • Sur quoi puis-je tester le langage de programmation? Quels outils puis-je utiliser?
    Créez des exemples pour tester votre compilateur / interpréteur. Commencez simplement, puis augmentez progressivement. Ensuite, vous utilisez un outil de test, il existe de nombreux outils gratuits à utiliser, par exemple, JUnit pour Java, Jest pour Javascript et Unittest pour Python.

FacebookTwitterInstagramPinterestLinkedInGoogle+YoutubeRedditDribbbleBehanceGithubCodePenWhatsappEmail