Programmation Ada/FAQ/Bibliothèques

Un livre de Wikilivres.

Ce document peut être librement copié et distribué en respectant les conditions de la Licence de documentation libre GNU.

École Nationale Supérieure des Télécommunications Département Informatique et Réseaux

Cet article est livré en l'état, sans garantie déclarée ni implicite. Bien que tous les efforts aient été déployés pour s'assurer de la validité des informations contenues dans ce document, l'auteur ne pourra être tenu pour responsable d'erreurs, ou d'omissions, ni d'éventuels dommages résultant de leur utilisation.


Généralités[modifier | modifier le wikicode]

Le langage Ada[modifier | modifier le wikicode]

Bibliothèques[modifier | modifier le wikicode]

Bibliothèques diverses[modifier | modifier le wikicode]

Existe-t-il l'équivalent de la STL de C++ en Ada?[modifier | modifier le wikicode]

Ada 2005 propose l'équivalent de la STL pour les aspects suivants:

Conteneur Équivalent C++ Version de C++
Ada.Containers.Vectors std::vector C++ 98
Ada.Containers.Doubly_Linked_Lists std::list C++ 98
Ada.Containers.Hashed_Maps std::unordered_map C++ 0x
Ada.Containers.Ordered_Maps std::map C++ 98
Ada.Containers.Hashed_Sets std::unordered_set C++ 0x
Ada.Containers.Ordered_Sets std::set C++ 98

Chaque conteneur générique existe en deux versions : une pour les types définis (de taille connue à l'avance) et une autre pour les types indéfinis (de taille non connue à l'avance).

La bibliothèque normalisée contient également un algorithme générique de tri appelé Ada.Containers.Generic_Array_Sort.

Ada 2012, en cours d'élaboration, ajoutera de nouveaux types de conteneurs et de nouveaux algorithmes.

Existe-t-il une bibliothèque XML en Ada?[modifier | modifier le wikicode]

XML/Ada est disponible sur le site de développement de Logiciel Libre d'ACT Europe.

Existe-t-il une bibliothèque Posix en Ada?[modifier | modifier le wikicode]

Il y en a une pour l'ensemble des systèmes Posix, appelée Florist. Une version spécifique pour Windows est nommée Win32POSIX.

Comment accéder à une base de données depuis Ada?[modifier | modifier le wikicode]

Le projet GNADE, disponible librement sur http://www.sourceforge.net/projects/gnade, a pour ambition de donner accès à toutes sortes de bases de données depuis Ada.

Une bibliothèque spécifique pour PostgreSQL est disponible librement sur http://www.rfc1149.net/devel/pgada.

Programmation réseau[modifier | modifier le wikicode]

Comment utiliser des sockets en Ada?[modifier | modifier le wikicode]

La distribution AdaSockets permet d'utiliser les sockets BSD en Ada sous Unix, Windows et OpenVMS. Il existe également une liste de diffusion (en anglais) qui traite des aspects techniques de AdaSockets.

De plus, GNAT offre depuis la version 3.14 un paquetage appelé GNAT.Sockets permettant de faire des sockets basiques.

Existe-t-il un serveur WWW en Ada?[modifier | modifier le wikicode]

AWS, de Pascal Obry et Dmitriy Anisimkov, permet d'inclure un mini-serveur WWW dans une application Ada, permettant ainsi de l'instrumenter et de l'interroger à distance. Un ensemble de services tels que le module de session ou la gestion du push facilite le développement d'applications web. AWS permet également l'utilisation de SSL pour une connexion sécurisée. Cet environnement de développement dispose également d'une liste de diffusion.

Existe-t-il une implémentation de SOAP en Ada?[modifier | modifier le wikicode]

AWS, depuis la version 1.1, vous permet d'ajouter une interface SOAP à vos applications basées sur le protocole HTTP.

Est-il possible de programmer des systèmes répartis en Ada pur?[modifier | modifier le wikicode]

La norme Ada 95 définit, dans son annexe E, une manière de faire des systèmes répartis en Ada. La seule mise en œuvre actuelle de cette annexe est PolyORB, l'intergiciel libre à personnalités multiples d'AdaCore, qui met également en œuvre MOMA, CORBA et d'autres mécanismes. PolyORB requiert GNAT. Voir http://libre.adacore.com/polyorb/.

GtkAda[modifier | modifier le wikicode]

Qu'est-ce que GtkAda?[modifier | modifier le wikicode]

GtkAda est une bibliothèque permettant, sous Unix ou sous Windows, de créer des applications graphiques portables.

GtkAda permet-il de créer des contrôles dynamiquement?[modifier | modifier le wikicode]

Tout à fait; son interface ressemble à Delphi ou à Visual Basic.

Quelle version de GtkAda utiliser?[modifier | modifier le wikicode]

Le numéro de version de GtkAda est en trois parties X.Y.Z; les deux premières, soit X.Y, correspondent a la version de GTK+ prise en charge; la troisième correspond à des modifications mineures spécifiques à GtkAda et pas à GTK+. Par exemple, GtkAda 2.14.2 prend en charge toutes les fonctions de GTK+ jusqu'à la version 2.14.0.

Comme le numéro majeur, X, reste stable tant que la compatibilité arrière est assurée, GtkAda 2.14.2 peut aussi être utilisé avec toutes les versions ultérieures de GTK+, par exemple 2.16.z, mais sans prise en charge des fonctionnalités ajoutées entre 2.14 et 2.16. En revanche il ne peut pas être utilisé avec le futur GTK+ 3.0.

Le numéro Y est toujours pair; il dénote une version stable de GTK+ par opposition à une version en cours de développement.

Peut-on créer une application graphiquement avec GtkAda?[modifier | modifier le wikicode]

C'est possible: GtkAda est interfacé avec Glade, un outil permettant de construire des interfaces graphiques.

Compilateurs et outils[modifier | modifier le wikicode]