Version
12-Juillet-2016
 
 
QU'EST-CE-QUE C'EST ?
 

B++ Library est une bibliothèque C++/Java thread-safe qui tente d'être aussi portable et réutilisable que possible. Elle fournit donc un ensemble de composants logiciels basés sur une conception orientée objet qui sont indépendants du compilateur et du système d'exploitation. Cette bibliothèque est totalement documentée, le code binaire et le code source sont gratuits d'utilisation, d'accès et de modification à condition de respecter .

Cette bibliothèque est développée principalement dans le cadre d'études dans le domaine de la recherche opérationnelle et de la simulation, mais elle repose sur des composants logiciels de base portables (conversion de types, gestion de fichiers, threads, sérialisation...), des éléments d'aide au développement tels que des contrôles et des rapports de débogage (traçage des méthodes exécutées, contrôle de l'allocation et de la libération de la mémoire, contrôle de l'ouverture et de la fermeture des fichiers) et une génération semi-automatique de la documentation (la section intitulée en est le résultat).

Plus récemment, la bibliothèque intègre un mécanisme que nous appelons permettant une utilisation simple de classes Java en C++. Il est basé sur Java Native Interface (JNI). A chaque classe Java est associée une classe C++ qui reprend ses attributs et ses méthodes, et possède un héritage équivalent. Le propos d'un tel outil est de fournir un environnement graphique totalement portable pour des applications C++. La seule exigence est pour le système d'avoir une machine virtuelle.

Ces éléments font de la B++ Library un environnement utile pour le développement de n'importe quel programme en C++. En outre, son intégration à un programme C++ existant est relativement simple (bien que l'étape de compilation soit un peu délicate, à cause de l'interaction dans la bibliothèque de code Java et C++), ce qui permet à quiconque de développer et de diffuser des composants logiciels qui seront portables et réutilisables dans n'importe quel environnement C++. Les seules contraintes sont que le compilateur C++ doit posséder une bibliothèque STL et doit pleinement implémenter les "namespaces".

Voici quelques sites Web où vous pourrez trouver un compilateur C++ approprié.

Un compilateur Java est également nécessaire pour les parties écrites en Java. Vous pouvez en obtenir un sur le site de Sun Microsystems.

 
TELECHARGEMENT
 

Téléchargez ici les différentes parties de la bibliothèque. Deux versions existent car tous les systèmes d'exploitation n'ont pas la même séquence ASCII de fin de ligne. La version ASCII 10 est pour les systèmes d'exploitation Unix. La version ASCII 13-10 est pour les systèmes d'exploitation Microsoft. Pour les autres systèmes d'exploitation, nous ne connaissons pas la séquence ASCII de fin de ligne, donc essayez les deux versions. L'une d'elles devrait fonctionner.

 
Version ASCII 13-10
 

  • Contient la documentation de la B++ Library.


  • Contient tout ce qu'il faut pour compiler la B++ Library: les fichiers sources et quelques makefiles.


  • Contient les résultats des tests de la B++ Library pour les compilateurs que nous avons testés. Il est conseillé de les récupérer si votre compilateur ne fait pas partie de ceux que nous avons testés. Ainsi vous pourrez comparer vos résultats avec les nôtres.

 
Version ASCII 10
 

  • Contient la documentation de la B++ Library.


  • Contient tout ce qu'il faut pour compiler la B++ Library: les fichiers sources et quelques makefiles.


  • Contient les résultats des tests de la B++ Library pour les compilateurs que nous avons testés. Il est conseillé de les récupérer si votre compilateur ne fait pas partie de ceux que nous avons testés. Ainsi vous pourrez comparer vos résultats avec les nôtres.

 
Extraction
 

Utilisez un logiciel comme WinZip (pour MS-Windows) ou TAR et GZIP (pour Unix) pour extraire ces trois archives. Commencez par extraire l'archive sources qui va créer un dossier nommé bpp_library. Ensuite vous devez extraire les deux autres archives à l'intérieur pour obtenir les dossiers bpp_library/documentation et bpp_library/testing.

 
DOCUMENTATION SUR LES ALGORITHMES
 

De la documentation sur les divers algorithmes de graphes implémentés dans cette bibliothèque peut être trouvée dans les sources listées ci-dessous, certaines sont en anglais, d'autres en français.

  • Cours de recherche opérationnelle

  • Optimisation de problèmes de synchronisation hypermédia

  • Applet Java GraphLayout

 
TABLE DES MATIERES
 

La documentation qui suit tente d'expliquer comment compiler cette bibliothèque et l'utiliser dans le développement d'un programme C++. Chaque module de cette bibliothèque est détaillé. Toutefois, si vous avez des questions, des problèmes pour compiler ou utiliser cette bibliothèque, des remarques ou des bugs à signaler, vous pouvez envoyer un e-mail à bruno@nawouak.net. Dernier détail, la documentation est totalement en anglais.


  • Présente et offre le téléchargement d'outils écrits avec la B++ Library.


  • Interface Web utilisant un B++ Tool pour générer des graphes ou des problèmes de graphe en ligne.


  • Présente l'organisation des modules de la bibliothèque. Cela peut également servir de guide pour tout développement futur.


  • Décrit le contenu des modules fournis par la B++ Library.


  • Explique comment configurer et compiler la B++ Library.


  • Explique comment créer un programme qui utilise la B++ Library.


  • Présente Jirk++ et illustre comment manipuler des éléments Java en C++.


  • Illustre l'utilisation de la bibliothèque à travers un exemple de problème de plus court chemin.


  • Présente le cadriciel B++ Simulator qui permet de la simulation visuelle à événements discrets.


  • Historique des changements majeurs dans la B++ Library.


  • Remerciements aux personnes qui ont contribué directement ou indirectement au projet.


  • Présente les termes de la licence de la B++ Library.

 
 
Copyright (c) 1999-2016 - Bruno Bachelet - bruno@nawouak.net - http://www.nawouak.net
La permission est accordée de copier, distribuer et/ou modifier ce document sous les termes de la licence GNU Free Documentation License, Version 1.1 ou toute version ultérieure publiée par la fondation Free Software Foundation. Voir cette licence pour plus de détails (http://www.gnu.org).