De nombreux individus éprouvent des difficultés et de la frustration à cause du langage de programmation qu'ils utilisent tous les jours. Certains voudraient que les choses soient plus abstraites, d'autres détestent implémenter des caractéristiques qui selon eux devraient être standards. Que vous soyez un professionnel de l'informatique ou un amateur, vous vous êtes peut-être déjà dit qu'il serait beaucoup plus pratique d'inventer votre propre langage de programmation.

Étapes

  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
    Renseignez-vous sur la terminologie. Les compilateurs de compilateur présentent souvent un jargon avec lequel vous n'êtes pas familier. Renseignez-vous sur les compilateurs avant de continuer. Assurez-vous de savoir tout ce qu'il y a à savoir.
  3. 3
    Décidez du problème à résoudre. Allez-vous vous occuper d'un problème spécifique à votre domaine ou allez-vous créer un langage général ?
  4. 4
    Réfléchissez à la sémantique. Pensez aussi aux concepts de votre langage.
    • Allez-vous autoriser un accès direct aux pointeurs ou non ?
    • Quels seront les types de données qu'il utilisera (s'il est typé) ?
    • Sera-t-il un langage statique ou dynamique ?
    • Quel sera son modèle de mémoire ? Allez-vous utiliser un ramasse-miette ou une gestion manuelle de la mémoire ? Si vous utilisez un ramasse-miette, préparez-vous à en coder un ou à en adapter un pour votre langage.
    • Comment allez-vous gérer la concurrence ? Allez-vous utiliser un modèle simple de tâches ou quelque chose de plus complexe comme Linda ou le modèle d'acteur, puisque de nos jours les ordinateurs ont plusieurs cœurs ?
    • Les fonctions primitives seront-elles intégrées au langage ou voulez-vous les importer depuis une librairie ?
    • Quels sont les paradigmes du langage ? Fonctionnel, orienté objet, prototype (comme le JavaScript), orienté aspect, orienté modèle ou quelque chose de complètement nouveau ?
    • Comment votre langage va-t-il communiquer avec des librairies et des langages déjà existants (principalement le C) ? Ce point est important si vous créez un langage spécifique à un domaine.
    • Pour terminer, certaines de ces questions trouveront une réponse dans la deuxième étape et vous aideront à répondre à la prochaine étape.
  5. 5
    Réfléchissez aux différentes tâches. Si quelqu'un utilisait votre langage, quelles tâches aimerait-il pouvoir faire ? Par exemple, il pourrait vouloir diriger un robot pour qu'il suive une ligne, il pourrait vouloir créer des programmes d'ordinateurs portables ou des applications web à l'intérieur du programme.
  6. 6
    Essayez différentes idées de syntaxe. Inspirez-vous des exemples ci-dessus pour faire des tests.
    • Faites attention de garder votre langage dans la catégorie des langages sans contexte ou dans une sous-catégorie. Vous et l'analyseur vous en serez reconnaissants plus tard.
  7. 7
    Écrivez la grammaire pour la syntaxe.
  8. 8
    Choisissez entre un langage interprété ou compilé. S'il est interprété, l'utilisateur peut généralement éditer le code dans un programme et le lancer directement sur l'interpréteur. S'il est compilé, l'utilisateur va écrire le code, le compiler, le sauvegarder sous un certain format avant de le lancer.
  9. 9
    Écrivez un scanner et un analyseur front-end. Vous pouvez aussi trouver un outil pour vous y aider.
    • Réfléchissez aussi à la façon dont le compilateur va prévenir l'utilisateur des programmes faux et des erreurs de syntaxe.
  10. 10
    Écrivez le code. Utilisez les informations de l'analyseur pour écrire le code objet ou une représentation intermédiaire. Demandez à l'analyseur de créer un arbre syntaxique abstrait, puis créez le code objet à partir de cet arbre en utilisant les codes d'adresse ou son grand frère le SSA avant de créer une table de symboles pour définir les fonctions, les variables globales, etc.
    • En plus, selon votre langage, vous pourriez vouloir créer des tables virtuelles de pointeurs ou des tables d'informations pour vos classes (pour supporter le RTTI).
  11. 11
    Codez l'exécuteur. C'est le programme qui va relier tout le code.
  12. 12
    Testez votre langage avec des programmes tests.
    • Vous devez créer des programmes tests qui se concentrent sur la grammaire formelle du langage pour voir si le compilateur accepte tout ce qui se trouve dans votre définition et rejette tout ce qui se trouve en dehors.
  13. 13
    Réfléchissez au débogage.
  14. 14
    Écrivez la librairie standard. Si votre langage utilise une librairie standard, vous devriez l'écrire, en plus du ramasse-miette et d'autres propriétés dont vous avez besoin.
    • En fait, si vous codez le compilateur, vous aurez besoin d'un code que le système d'exploitation va exécuter pour commencer à lancer le code de l'utilisateur (par exemple, en allouant toutes les variables globales).
  15. 15
    Publiez votre langage. Publiez votre langage en même temps que ses spécifications et les exemples de code que vous avez créés.
    • N'oubliez pas d'indiquer comment il est possible d'intégrer des librairies existantes et d'utiliser des propriétés d'exécution ou des librairies standards.
    Publicité

Conseils

  • Commencez en concevant un langage et n'écrivez pas de code jusqu'à ce que vous soyez satisfait de votre travail et que vous ayez pu répondre aux questions et résoudre les problèmes liés à votre conception, car il est plus simple de la changer au début que plus tard.
  • Renseignez-vous sur votre plateforme cible (le système d'exploitation et les librairies) pour votre compilateur et votre interpréteur, car vous allez l'utiliser et la manipuler.
Publicité

Avertissements

  • Demandez-vous si vous en avez vraiment besoin et si votre langage apporte quelque chose dont les autres sont dépourvus (cela pourrait être une combinaison de propriétés ou même une seule).
  • Préparez-vous à passer beaucoup de temps à la conception, car vous ne pourrez plus le changer une fois que vous avez codé le compilateur et que vous avez dépassé le stade de la conception.
  • La création d'un langage de programmation est quelque chose de très compliqué si vous ne savez pas ce que vous faites. Cela demande aussi beaucoup de pratique.
  • N'essayez pas de créer un langage qui mélange les propriétés de différents langages, par exemple quelque chose qui possède des propriétés du langage X, du langage Y et du langage Z. L'Histoire a prouvé que personne n'utilise ce genre de langage ou sinon tout le monde coderait en PL/1 au lieu de coder en C.
Publicité

Éléments nécessaires

  • De la patience
  • Des connaissances en ce qui concerne les propriétés des langages de programmation et leur conception
  • Des connaissances en théorie de compilateur (puisque vous allez coder un compilateur ou un interpréteur pour votre langage et que votre implémentation servira de référence)
  • Une utilisation pour votre langage (n'oubliez pas que certains des langages les plus utilisés comme C ou LISP ont été créés pour faire quelque chose de précis, par exemple pour créer Unix ou faire de la computation symbolique)

À propos de ce wikiHow

wikiHow est un wiki, ce qui veut dire que de nombreux articles sont rédigés par plusieurs auteurs(es). Pour créer cet article, 27 personnes, certaines anonymes, ont participé à son édition et à son amélioration au fil du temps. Cet article a été consulté 20 064 fois.
Catégories: Programmation
Publicité