Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
ada [Le 04/09/2018, 20:31]
Ilari1 [Faire de la programmation en ADA sous Ubuntu]
ada [Le 10/10/2023, 11:46] (Version actuelle)
83.113.57.126 [Installer des bibliothèques]
Ligne 3: Ligne 3:
 ====== Programmer en ADA avec Ubuntu ====== ====== Programmer en ADA avec Ubuntu ======
  
-Le [[http://​fr.wikipedia.org/​wiki/​Ada_(langage)|langage ADA]] est utilisé dans certaines écoles ​et IUT pour enseigner les concepts fondamentaux de la programmation ​aux élèves. Nous allons voir ici comment travailler en ADA sous Ubuntu. ​+Le [[https://​fr.wikipedia.org/​wiki/​Ada_(langage)|langage ADA]] est utilisé dans le monde du logiciel embarqué, de l'​automatisme,​ du temps réel et dans le logiciel critique en général parce que c'est le seul langage certifié qui garantit son résultat. C'est donc un langage qui fournit des solutions robustes, extrêmement sures. On le trouve donc essentiellement dans l'​aéronautique,​ le militaire, le transport, càd tous les systèmes ou une erreur peut entraîner une catastrophe humaine ou technologique. Il est apprécié ​pour enseigner ​l'​algorithmique à cause de sa puissance sémantique,​ on écrit facilement en quelques lignes des choses qui peuvent être extrêmement complexes. Il permet de présenter ​les concepts fondamentaux de la programmation. Nous allons voir ici comment travailler en ADA sous Ubuntu. 
  
 ===== Installation du compilateur GNAT ==== ===== Installation du compilateur GNAT ====
-La première chose à faire est d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer les paquets]] **[[apt://gnat|gnat]]**.+La première chose à faire est d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer les paquets]] **[[apt>gnat|gnat]]**.
  
 Une fois ceci terminé, vous pouvez d'ores et déjà commencer à compiler vos programmes ADA de la façon suivante : Une fois ceci terminé, vous pouvez d'ores et déjà commencer à compiler vos programmes ADA de la façon suivante :
Ligne 18: Ligne 19:
 Exemple : j'ai mis mon programme ADA dans //​Documents/​IUT/​ada//,​ donc je vais taper //cd Documents/​IUT/​ada//​. Exemple : j'ai mis mon programme ADA dans //​Documents/​IUT/​ada//,​ donc je vais taper //cd Documents/​IUT/​ada//​.
  
-La deuxième ligne compile votre programme ADA. +La deuxième ligne compile votre programme ADA.
  
 La troisième ligne lance le résultat de la commande précédente,​ qui est le fichier exécutable créé par GNAT. Il a le même nom que votre fichier source sans le .adb . La troisième ligne lance le résultat de la commande précédente,​ qui est le fichier exécutable créé par GNAT. Il a le même nom que votre fichier source sans le .adb .
Ligne 26: Ligne 27:
 Emacs est un éditeur de texte utilisé par de nombreux développeurs. Il permet de travailler rapidement sur les sources et éventuellement de les compiler. La mise en forme du code (coloration syntaxique, indentation et autocomplétion) est parfaitement gérée par Emacs. Emacs est un éditeur de texte utilisé par de nombreux développeurs. Il permet de travailler rapidement sur les sources et éventuellement de les compiler. La mise en forme du code (coloration syntaxique, indentation et autocomplétion) est parfaitement gérée par Emacs.
 === Editer un fichier dans Emacs === === Editer un fichier dans Emacs ===
-Pour éditer un fichier utilisez la commande suivante : +Pour éditer un fichier utilisez la commande suivante :
 <​code>​emacs mon_fichier.adb</​code>​ <​code>​emacs mon_fichier.adb</​code>​
 //Note : Si vous souhaitez ouvrir plusieurs fichiers à la fois il est conseillé d'​utiliser le menu //File → Open File// dans Emacs plutôt que de lancer plusieurs fois la commande ci-dessus. A chaque fois que vous éxecutez cette commande le systéme va créer un nouveau processus ce qui nécessite pas mal de ressources s'il y a beaucoup de fichiers ouverts. Il convient mieux d'​avoir un seul processus Emacs avec plusieurs fichiers ouverts à l'​interieur.//​ //Note : Si vous souhaitez ouvrir plusieurs fichiers à la fois il est conseillé d'​utiliser le menu //File → Open File// dans Emacs plutôt que de lancer plusieurs fois la commande ci-dessus. A chaque fois que vous éxecutez cette commande le systéme va créer un nouveau processus ce qui nécessite pas mal de ressources s'il y a beaucoup de fichiers ouverts. Il convient mieux d'​avoir un seul processus Emacs avec plusieurs fichiers ouverts à l'​interieur.//​
Ligne 59: Ligne 60:
 Pour obtenir GPS, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] **[[apt://​gnat-gps|gnat-gps]]**. Il suffit de lancer GPS avec la commande <​code>​gnat-gps</​code>​ Pour obtenir GPS, il suffit d'​[[:​tutoriel:​comment_installer_un_paquet#​paquet_present_dans_les_depots|installer le paquet]] **[[apt://​gnat-gps|gnat-gps]]**. Il suffit de lancer GPS avec la commande <​code>​gnat-gps</​code>​
  
-Lorsque l'on installe le paquet ​''​gnat-gps''​, aucun lanceur n'​apparaît dans le menu Application. On peut alors [[raccourci-lanceur#​creation_d_un_lanceur_dans_le_menu_de_facon_graphique|en créer un nouveau]] avec la commande ​''​gnat-gps''​.+Lorsque l'on installe le paquet ​"gnat-gps", aucun lanceur n'​apparaît dans le menu Application. On peut alors [[raccourci-lanceur#​creation_d_un_lanceur_dans_le_menu_de_facon_graphique|en créer un nouveau]] avec la commande ​"gnat-gps". 
 + 
 +Le gros intérêt de travailler avec GPS est qu'il s'agit d'un environnement intégré, genre Eclipse, qui donne directement les classes, méthodes etc.. par de l'​auto-completion,​ en clair, il propose au terminaliste les différentes méthodes possibles. 
 +Un autre intérêt est qu'il est souvent plus bavard, à la compilation,​ que la ligne de commande. 
 + 
 +Il est important de bien comprendre que GPS n'​édite pas directement les fichiers sources ada. GPS connaît seulement le projet. Le projet est l'​ensemble exhaustif de tous les paramètres nécessaires à la compilation du programme principal (l'​équivalent du "​main"​ en C si l'on veut). Tous ces paramètres sont regroupés dans un fichier texte, d'​extension "​gpr",​ manipulés à travers un langage "ada like", définit par AdaCore [[https://​docs.adacore.com/​gprbuild-docs/​html/​gprbuild_ug/​gnat_project_manager.html]] 
 +On exécute donc GPS avec comme unique paramètre ce fichier gpr. Et c'est à travers ce fichier gpr que GPS donne accès aux sources et qu'il peut donc connaître les méthodes possibles, accéder aux bibliothèques,​ compiler etc.. C'est ce même fichier gpr que l'on peut aussi citer directement en ligne de commande, par ex. <​code>​gnatmake -P<​nom-du-fichier>​.gpr</​code> ​ si l'on choisit de travailler avec un terminal en ligne de commande (les 2 modes en même temps ça fonctionne aussi).
  
 ===== Nettoyage des sources ===== ===== Nettoyage des sources =====
Ligne 67: Ligne 74:
 </​code>​ </​code>​
 dans le répertoire de vos programmes, et GNAT supprimera tous les fichiers à l'​exception de vos sources (.adb). dans le répertoire de vos programmes, et GNAT supprimera tous les fichiers à l'​exception de vos sources (.adb).
 +
 +
 +===== Utiliser des APIs, IHM et autres =====
 +Le langage est extrêmement riche et la dernière norme 2022 embarque nativement de nombreuses fonctionnalités comme la généricité,​ la programmation objet, le tasking et le temps réel, la garantie de précision des calculs, la possibilité de manipuler de façon sure différents alphabets et codages, la manipulation de très grandes chaînes de caractères et aussi des containers qui fournissent tout un tas de choses utiles au programmeur,​ comme des listes doublement chaînées avec index par ex. Tout ceci est natif au langage qui garantit sa norme, ce qui veut dire qu'une implémentation qui s'​appelle "​Ada"​ doit garantir sa norme et rien que sa norme, la norme interdisant d'y ajouter quoique ce soit de sa propre initiative.
 +A coté du langage lui même, il existe d'​autres sources pour se procurer des fonctions.
 +
 +La 1ere source importante est la société AdaCore qui fournit le compilateur gnat. Elle fournit en sus toute une collection de fonctions supplémentaires,​ comme l'​accès à de la DB, via gnat.coll ou une solution graphique avec GtkAda [[https://​www.adacore.com/​gtkada]]
 +
 +
 +La 2ième source est la communauté qui fournit des fonctions de manipulation des APIs, de la logique client/​serveur HTTP et des IHM avec HTML5.
 +[[https://​github.com/​stcarrez/​swagger-ada.git]] ​    ​[[https://​sourceforge.net/​projects/​gnoga]].
 +
 +===== Installer des bibliothèques =====
 +
 +-Bien que les modes d'​installation classiques via GitHub et autres restent bien sur disponibles,​ AdaCore fournit maintenant l'​outil Alire [[https://​alire.ada.dev/​docs/#​first-steps]] qui est une espèce de Snap, au sens Ubuntu, qui garantit l'​utilisation des bonnes bibliothèques dans les bonnes version, via une logique de graphe de dépendances des composants, entièrement gérée par Alire et complètement transparente pour l'​utilisateur.
 +-Alire comprend de nombreux exemples.
 +Il y a 2 cas; 
 +    -soit l'​exemple est une bibliothèque auquel cas l'​installation est une bibliothèque,​ donc non exécutable,​ et elle est rendue disponible par sa simple installation qui se termine par un test de validité d'​installation,​
 +    -soit l'​exemple est un exécutable,​ utilisant des bibliothèques,​ et il est installé, compilé et testé par Alire. Ce cas impose de travailler selon la structuration d'​Alire. On peut éventuellement travailler et organiser ses fichiers selon sa propre organisation,​ mais ce n'est pas toujours facile. Alire est complètement transparent,​ rien n'y est caché, mais il fait "​beaucoup de choses"​ et il n'est pas toujours facile de les reproduire selon son propre modèle, c'est donc un choix.
 +
 +===== Documentation =====
 +-Le lien [[https://​learn.adacore.com/​courses/​intro-to-ada/​index.html]] fournit de la documentation sur l'​apprentissage et l'​utilisation du langage Ada. Notamment un bon ouvrage complet en pdf, par les gens d'​AdaCore,​ pour débuter sérieusement avec des exemples complets, via un fichier à télécharger,​ page 1. Les exemples sont fournis "​prêts à compiler",​ le code source, le fichier paramètre pour la compilation,​ les valeurs des pragmas qui sont les directives de compilation (utilisés par le fichier paramètre précédent) et un fichier json pour retrouver le tout plus facilement (qui n'a bien sur rien à voir du tout avec la compilation),​ via un répertoire avec une clé MD5.
 ---- ----
 //​Contributeurs : [[utilisateurs:​orkerone|orkerone]],​ [[utilisateurs:​G3o|G3o]]//​ //​Contributeurs : [[utilisateurs:​orkerone|orkerone]],​ [[utilisateurs:​G3o|G3o]]//​
  • ada.1536085909.txt.gz
  • Dernière modification: Le 04/09/2018, 20:31
  • par Ilari1