Précédent Index Suivant

Pour en savoir plus

Bien qu'en programmation graphique et événementielle, le style de programmation soit impératif, il est non seulement possible, mais bien souvent utile, d'introduire des opérateurs plus fonctionnels de manipulation d'objets graphiques. Un bon exemple vient de l'utilisation de la bibliothèque MLgraph,

Lien


http://www.pps.jussieu.fr/~cousinea/MLgraph/mlgraph.html
qui implante le modèle graphique de PostScript, et propose des opérateurs fonctionnels de manipulation des images. Elle est décrite dans [CCS96] et utilisée abondamment dans [CM95] pour le placement optimisé des arbres et pour la construction de dessins dans le style d'Escher.

Une caractéristique intéressante de la bibliothèque Graphics est d'être portable pour les interfaces graphiques des systèmes Windows, MacOS et Unix. Cette notion de bitmap virtuel se retrouve dans plusieurs langages comme Le_Lisp ou plus récemment en Java. Malheureusement en Objective CAML la bibliothèque Graphics ne possède pas de composant interactif pour la construction d'interfaces. Une des applications décrites dans la partie II de ce livre contient les premières briques de la bibliothèque Upi. Celle-ci s'inspire de l'Abstract Windowing Toolkit des premières versions de Java. On s'aperçoit qu'il est relativement aisé d'étendre des fonctionnalités de cette bibliothèque grâce aux valeurs fonctionnelles du langage. Le chapitre 16 compare d'ailleurs l'adaptation de la programmation objet et de la programmation fonctionnelle et modulaire pour la construction d'interfaces graphiques. L'exemple d'Upi est fonctionnel et impératif, mais il est aussi possible de n'utiliser que le style fonctionnel. C'est typiquement le cas pour les langages fonctionnels purs. On peut citer les systèmes Fran et Fudget, développés en Haskell et dérivés. Le système Fran permet de construire des animations 2D, 3D interactives, c'est-à-dire avec événements entre objets animés ou utilisateurs.

Lien


http://www.research.microsoft.com/~conal/fran/
La bibliothèque Fudget est une bibliothèque pour la construction d'interfaces graphiques.

Lien


http://www.cs.chalmers.se/ComputingScience/Research/Functional/Fudgets/


Une des difficultés, quand on veut programmer une interface graphique pour son application, est de savoir laquelle choisir parmi les nombreux outils existants. Il ne suffit pas de déterminer le langage et le système pour fixer le choix de l'outil. Pour Objective CAML, il en existe plusieurs plus ou moins finalisés : On trouve les liens vers ces développements à la << bosse du chameau >> :

Lien


http://caml.inria.fr/hump.html


Enfin nous avons parlé uniquement de la programmation en 2D. La tendance est à l'augmentation d'une dimension. Que cela soit le modèle VRML, ou l'extension Java-3D, les langages fonctionnels doivent aussi répondre à cette nécessité. En fonctionnel pur, le système Fran offre des possibilités intéressantes d'interaction entre sprites. Plus proche d'Objective CAML on peut utiliser la bibliothèque VRcaML ou l'environnement de développement SCOL.

À la manière de MLgraph a été développée la bibliothèque VRcaML qui intègre une partie du modèle graphique de VRML à Objective CAML.

Lien


http://www.pps.jussieu.fr/~emmanuel/Public/enseignement/VRcaML
On peut donc construire une scène 3D animée. Le résultat produit alors un fichier VRML directement visualisable.

Toujours dans la lignée de Caml, le langage SCOL, est un langage fonctionnel de communication muni d'importantes bibliothèques de manipulation 2D et 3D agrémenté d'un environnement de développement pour le non-informaticien.

Lien


http://www.cryo-networks.com
L'intérêt du langage SCOL et de son environnement de développement est de pouvoir réaliser des applications réparties, en client-serveur, facilitant la fabrication de sites Internet. On présente la programmation distribuée en Objective CAML au chapitre 20.








Précédent Index Suivant