Ada - Contributions



L'ensemble des modules télédéchargeables depuis cette page sont Open Source et utilisables à vos risques et périls sans aucune garantie.


Certains projets auxquels j'ai contribués sont listés sur ma page Ohloh.

Ohloh profile for Pascal Obry

AWSAWS est un composant pour développer des services Web. AWS est entièrement implémenté en Ada. Cette version implémente une bonne partie de la RFC 2616 (Hypertext Transfer Protocol -- HTTP/1.1). La documentation on-line en anglais.
AWS a une page sur le site Libre Software d'ACT.

Un accès SVN en lecture y est disponible.
Templates ParserTemplates_Parser (mode stand-alone) est un package pour générer dynamiquement des pages HTML.  La dernière version est disponible avec AWS, voir ci-dessus.Voir la documentation en anglais.
Style_CheckerStyle_Checker est un outil permettant de vérifier des règles de styles simple qui supporte de multiples langages. Il peut être utilisé avec GPS (script de vérification avant un commit) ou comme "hook" de Subversion ou Git par exemple.

L'archiveStyle_Checker
Sources : git://repo.or.cz/style_checker.git
Sourceshttp://repo.or.cz/w/style_checker.git
Win32POSIX
Un binding POSIX P1003.5 pour GNAT sous Windows NT/2000/XP/95/98. Tous les appels systèmes sont Win32. Ce binding est construit au dessus du binding Win32Ada (distribué avec GNAT et ObjectAda) que vous devez avoir installé au paravant. Windows étant loin d'offrir une couche POSIX complète, toutes les fonctions ne sont pas implémentées. Cette version beta est donc incomplète.
SMTPSMTP est une API Ada permettant d'envoyer des messages vers un serveur SMTP.
POV-AdaPOV-Ada est une bibliothèque de fonctions permettant de générer des scripts POV-Ray. Tout a commencé en 1994 lorsque je cherchais un projet personnel pour apprendre la programmation Orientée Objet avec Ada...
GDBM pour NTGDBM for NT est un port de GDBM (GNU Data Base Manager) 1.8.0 pour NT. De plus vous trouverez dans cette distribution un thin et un thick Ada binding pour GDBM. Le binding n'est pas spécifique à Windows et devrait être utilisable sous UNIX.
Composants pour le parallélismeConcurrency est une implémentation de certains composants décrits dans l'excellent livre Concurency in Ada deA. Burns et A. Wellings. J'ajouterai des tests dans une prochaine version.
Multi ListsMulti Lists est une implémentation d'une liste multi-chainée. Une multi-liste permet de parcourir les élements en utilisants différents index. Les éléments de la multi-list sont ordonnés.
GLUT for GNAT NTGLUT pour GNAT-NT permet de developper des applications OpenGL utilisant la library GLUT a la place de GLAUX. GLUT a l'avantage de tourner sur de multiples environements (UNIX et Windows).
Graphic PadGraphic permet d'ouvrir une fenêtre graphique et de dessiner cercle, rectangle, ligne... d'afficher des images, et de déplacerredimentionner les objets graphiques. Ce package est basé sur Tk/Tcl ce qui le rend très portable. Le readme.txt en anglais.
ODBCUn exemple de binding base de données construit au dessus d'ODBC qui donne une abstraction de haut niveau. Ce binding (non complet) gère les Select, Update, commit/rollback, cursor, binding des résulats de la requête à des variables Ada...
OpenGLUn ensemble d' exemples de programmes OpenGL écrits en Ada. Pour compiler ces exemples avec GNAT vous devez télécharger la librairie GLAUX (voir ci-après) et avoir installé le binding Win32Ada (distribué avec GNAT et ObjectAda).
Ajout de 2 demos de Rod Murufas depuis la dernière version.
GLAUXLe portage de la librairie GLAUX de Silicon Graphics pour le compilateur multi-langages GNU GCC. Vous pouvez récupérer les sources ou la librairie libglaux.a. Pour compiler cette librairie vous même vous devez utiliser les headers C pour Windows de la distribution windows32api-0.1.2.
aflex/ayacc
Une version de aflex/ayacc, adaptée pour GNAT et qui traite les caractères dont le code est supérieur à 127. Cette version est une adaptation de aflex/ayacc V1.4 de The University of California, Irvine dévellopée dans le cadre du projet Arcadia.
composant
évaluateur d'expression
Ce composant (Expression_Evaluator + exemple) permet d'évaluer une expression mathématique contenue dans une chaine de caractères.
composant
découpeur de chaines

Ce composant (String_Cutter + exemple) permet de découper une chaine de caractères en sous chaines en passant à une fonction l'ensemble des séparateurs à prendre en compte.
composant
comparaison chaine/pattern
Ce composant (Match + exemple) permet de comparer une chaine de caractères avec un pattern et de déterminer si les deux s'apparient. (ex : "*[ab]c?" match avec "totoacm" et avec "bcz").
composant
lecture de fichiers formatés
Ce composant (Read_File + exemple) permet de lire un fichier composé de colonnes. Chaque colonne pouvant être composée de plusieurs champs.
composant ADBM
fichier séquentiel indéxé
Ce package (Adbm) est une gestion de fichier séquentiel indéxé. L'implémentation utilise une hash table au premier niveau puis un B-Tree sur disque. Il peut utiliser le composant Mapped_Direct_IO (fournis dans l'archive) qui est l'équivalent Text_IO mais en mémoire. Ceci permet d'obtenir de meilleures performances pour les petits fichiers. Pour utiliser ce composant vous devez installer le module POSIX.
composant
recherche rapide dans un fichier texte trié
Ce package (Text_Key_File) permet de rechercher rapidement une information dans un très grand fichier texte. Le fichier est composé d'un ensemble de lignes. Chaque ligne comporte un ensemble de champs. Chaque champ est séparé par un des séparateurs définis. La recherche s'éffectue sur l'un des champs qui doit être trié. Ce composant utilise String_Cutter.
composant
recherche rapide dans un fichier texte trié
Ce package (Mapped_Text_Key_File) a les mêmes fonctionalité que le package ci-dessus avec mise en mémoire du fichier pour plus de rapidité. Ce composant utilise String_Cutter.
composant
traitements asynchrones
Ce package (Asynchronous_Actions) permet d'enregistrer des traitements asynchrones sur des données. C'est un exemple de l'utilisation des protected records.
composant
traitements temporisés
Ce package (Timed_Actions) permet d'enregistrer des traitements asynchrones qui seront exécutés à intervalle régulier dans le temps. C'est un exemple de l'utilisation des tâches.