août
2008
Dodo est un nouveau langage de programmation de ma conception.
Quand on s’intéresse aux langages de programmation d’hier, d’aujourd’hui et de demain il est naturel qu’un jour on désire écrire le sien propre. Étant programmeur de formation j’ai franchi le pas.
Une première motivation, je crois, était que en admirateur des langages de style fonctionnel (Lisp, Haskell, Scala), mais décidément plus à l’aise avec le style impératif (C, Java) je désirais trouver le « juste milieu » où les styles se rejoignent.
Je ne pense pas l’avoir trouvé avec dodo mais j’en apprends certainement sur le sujet en travaillant mon langage.
Une autre motivation était une insatisfaction avec le modèle objet proposé par les langages que je connais le mieux (Java, Delphi, C++) et finalement le désir de mettre en pratique les idées sur la programmation parallèle qui me sont venues au cours de mes lectures. En effet, il se trouve que l’Internet met à notre disposition de nombreux travaux de recherche en informatique, et je ne me suis pas privé d’y trouver inspiration.
Je compte m’attarder sur ces sujets dans les prochains épisodes. Pour cette fois je vais juste illustrer mon article avec le traditionel programme « Hello, World! » (Bonjour, Monde!) en dodo dans sa version actuelle:
Code :
2 {
3 Main():
4 console!Stdout().Puts("Hello, World!").
5 }
Explication du code:
Ligne 1: Définition de la classe Main, dont le corps principal se trouve entre les accolades des lignes 2 et 5.
Ligne 3: Définition du constructeur sans paramètres de la classe Main. À moins qu’il ne s’agisse d’une classe abstraite, le constructeur sans paramètre d’une classe est toujours appelé lorsque la classe est chargée en mémoire. Cela permet d’exécuter des instructions au démarrage du programme. Le corps principal du constructeur commence avec « :
» et finit avec « .
« .
Ligne 4: Impression du texte « Hello, World!
» sur la console. La variable console
représente un service dodo. Le « !
» indique l’envoi d’un message à ce service. L’appel de Stdout()
construit une capacité qui permet d’écrire sur la console. Elle est utilisée en conjonction avec le message Puts("Hello, World!")
pour obtenir l’impression du texte par le service.
Bien entendu il n’est pas nécessaire d’en savoir tant pour réutiliser la formule, qui s’apparente au System.out.println()
de Java
Il faut juste savoir que les capacités ne peuvent pas être construites n’importe où et qu’en conséquent il est fréquent de recourir à une variable passée en paramètre plutôt qu’à Stdout()
directement.
Merci d’avoir lu jusqu’ici le premier épisode de mon blog sur dodo!
J’ai conçu mon « bébé » en pensant à ceux qui, comme moi, s’intéressent aux langages de programmation en soi. Mais si un programmeur ou deux se prenait d’adopter mon langage cela me rendrait heureux aussi. C’est pourquoi je veux partager un peu de ce que dodo a à offrir et de ma démarche pour écrire un langage avec les lecteurs de ce forum, dont je lirai les réactions avec plaisir.
Site de dodo:
http://dodo.sourceforge.net
Merci bien pour tes encouragements. Il y a encore du travail mais c’est un projet passionnant.
Au plaisir de se revoir,
Denis.
Je suis impressionné. Autrefois, j’avais pour projet de développer un système d’exploitation rudimentaire mais je n’avais pas passer le pas. Ecrire un language est un beau projet qui peut avoir des retombées professionnelles, on ne sait jamais…
félicitation!