Cette publication inaugure une série d'articles ayant pour but de partager mes expériences avec le langage de programmation Ada (2005 en attendant que l'ISO normalise Ada 2012).
Pour compiler, il y a GNAT (téléchargeable ici) qui est un front-end libre pour GCC disponible pour de multiples plate-formes. Vim ou Emacs sont parfaits pour coder en Ada, autrement il y a GPS que les fans d'IDE apprécieront.
Généralement, le premier programme que l'on voit en découvrant un nouveau langage consiste à afficher « Hello World! ». Je ne vais pas déroger à la tradition. Voici donc le code de base permettant de faire ça :
Enregistrez ce code dans un fichier salut.adb que vous compilerez avec la commande gnatmake salut.adb. En exécutant le programme ainsi obtenu vous verrez « Salut tout le monde !! » (j'ai francisé) s'afficher dans le shell.
Cette ligne nous permet d'importer la bibliothèque de fonctions Ada.Text_IO qui est partie de la bibliothèque standard définie pour le langage Ada. Nous en avons justement besoin pour afficher du texte à l'écran.
Pour information, ce que nous appelons bibliothèque de fonctions dans certains langages se nommera package en Ada (terme à retenir).
En Ada comme en C, le point-virgule ';' a pour rôle d'indiquer la fin d'une instruction ou d'une déclaration.
Cette ligne constitue la première partie de la définition de la procédure Salut. Par analogie avec le C, je dirais qu'en Ada, une procédure est une fonction qui ne renvoie rien (void).
En fait, dans notre cas, Salut est aussi le point d'entrée du programme. C'est-à-dire que les instructions que nous y placerons seront les premières à être prises en compte lors de son exécution.
À quoi reconnaissons-nous le point d'entrée dans un code ? C'est simple, le fichier (ici salut.adb) amené à le contenir ne doit comprendre qu'un seul élément, à savoir la définition d'une procédure. Remarques :
Reprenons où nous en étions :
Au passage, notez que les deux tirets -- sont là pour introduire une ligne de commentaire.
La définition d'une fonction ou d'une procédure va se faire en plusieurs temps :
Si vous avez un minimum d'esprit logique, vous avez dû comprendre que cette instruction appelait la procédure Put_Line et lui transmettait en paramètre la chaîne de caractères "Salut tout le monde !!".
Put_Line est une procédure dont le rôle précis est d'afficher la chaîne de caractères qui lui est donnée puis d'effectuer un retour à la ligne. Nous utilisons la notation pointée pour indiquer que c'est la procédure Put_Line du package Ada.Text_IO que nous voulons appeler.
Ada n'est pas sensible à la casse du tout. En d'autres termes, vous pouvez très bien écrire put_LINE ou PuT_LiNe.
Pour les curieux de nature, le manuel de référence du langage Ada 2005 est disponible à cette adresse et documente tous les aspects du langage (mots-clefs, bibliothèque standard, comportements prédéfinis). Vous pouvez par exemple y retrouver le prototype de la procédure Put_Line.
Ada a été conçu avec le souci de faciliter l'écriture de code facilement compréhensible. J'espère avoir réussi à vous faire appréhender cet aspect du langage à travers mon exemple et à vous donner envie d'en savoir plus.
Si vous avez des remarques ou des questions à me poser, les commentaires sont là pour vous permettre de vous exprimer. Je suis à l'écoute de la moindre idée qui pourrait m'aider à améliorer cet article.
D'abord, permettez-moi de vous donner les raisons qui ne sont pas celles pour lesquelles je déteste conduire (en voiture, je précise) :
Ces raisons sont bien sûr tout à fait plausibles et justifiables mais il ne s'agit pas de la cause profonde de ma réticence à l'égard de la conduite.
Je déteste la conduite parce qu'elle (re)modèle mon cerveau de gré ou de force. L'explication est assez simple : la conduite est une activité qui nécessite une pleine attention du cerveau. Elle ne se contente pas de le monopoliser les trois quarts du temps mais le force à faire des choix dichotomiques sans aucune demi-mesure ni modération (« J'y vais ? J'y vais pas ? », « Je m'arrête ? Je m'arrête pas ? », etc.). Si je voulais caricaturer, je dirais que c'est juste bon pour les brutes épaisses qui n'aiment pas réfléchir l'espace de plus de deux secondes.
Ce qui n'est pas mon cas. En conséquence de quoi, il ne se passe pas une minute sans que, passé un virage, une intersection ou un rond-point, mon esprit ne soit peuplé de doutes quant à mes précédentes décisions de parcours. Peut-être la pratique finira-t-elle par gommer ces considérations chez moi (j'ai 6-7 mois de conduite supervisée à mon actif), mais ce n'est pas ce que je souhaite.
En conclusion, mon objectif présent est de passer mon permis le plus tôt possible et de le ranger au fin fond d'un tiroir pour ne plus le ressortir, sauf besoin vital. Vive le bus/RER/métro/etc !
Quand je m'ennuie, eh bien il faut que je fasse des trucs. Mon dernier « truc » en date :

Vous pouvez remplacer l'astérisque par ce que vous voulez, elle est juste là parce que je ne trouvais pas d'unité de mesure pour ce que je souhaitais exprimer sur l'axe des ordonnées. Vu que je préfère conserver le mystère de ce graphique, je ne vais pas vous dire ce qu'il est censé représenter. En revanche, je serais curieux de voir comment vous l'interprétez.
PS : mon but n'est pas d'insulter les personnes d'un certain âge passé.
J'ai trouvé une solution efficace et facile à mettre en œuvre pour obtenir de la coloration syntaxique dans mes articles, à savoir Quick Highlighter. Il s'agit d'une application qui prend en entrée un bout de code dans un langage quelconque et vous ressort le HTML et le CSS nécessaires à sa coloration. Il suffit ensuite de coller le CSS une fois pour toutes dans votre feuille de style, et de placer le HTML là où vous souhaitez le voir apparaître.
Quick Highlighter a plusieurs avantages :
Le seul désavantage que je vois est celui de devoir, en cas de modification du code, le repasser par la case Quick Highlighter. Ça ne me paraît pas problématique dans la mesure où le code que je mets dans mes articles n'est pas là pour changer toutes les semaines.
Quick Highlighter utilise GeSHI pour colorer le code. Voici un exemple de code coloré :
Fans de 8-bits ou simples amateurs de bonne musique, je vous propose de découvrir Binärpilot, un artiste qui nous vient du grand froid (Norvège) et qui chuchote à l'oreille des cartes mères. Blague à part, je vous conseille d'écouter ses derniers albums, Nordland, Robot Wars et Defrag. Le casque est de rigueur, bien entendu, mais attention à vos tympans, ils risquent d'accuser le coup si vous passez la journée entière à écouter ça en boucle.
Je ne vais pas vous recommander des pistes en particulier, elles méritent toutes votre oreille (et même vos deux oreilles). Par contre, en vous couchant ce soir, ne vous étonnez pas si vous ne distinguez plus de ce qui vous entoure que des 0 et des 1, ce sera juste l'effet Binärpilot (ou alors l'effet Matrix peut-être).
Je terminerai avec une parole de l'artiste lui-même :
I make music because I love to. I don't want to be famous, I don't want to make a lot of money, I just want to keep making music that I like and share it with everyone. Especially the robots, geeks, hackers, and nerds of this world.
Amen.