Précédent Index Suivant

Autres outils de développement

Nous nous sommes cantonnés jusqu'à maintenant à la distribution d'Objective CAML. Néanmoins la communauté des développeurs dans ce langage est active, comme l'indique le nombre de transactions de la liste de diffusion caml-list@inria.fr. De nombreux outils, bibliothèques et extensions sont utilisés pour faciliter le développement. On détaille par la suite l'utilisation d'outils d'édition, d'extension de syntaxe, d'interfaçage avec d'autres langages et de programmation parallèle. Nous mentionnons également les nombreuses bibliothèques d'interface graphique. On retrouve la plupart de ces contributions sur le site de la << bosse du chameau >>.

Outils d'édition

Il existe plusieurs modes reconnaissant la syntaxe Objective CAML pour l'éditeur emacs. L'intérêt de ces modes est d'indenter automatiquement le texte en cours d'écriture, permettant ainsi une meilleure lisibilité de celui-ci. C'est une alternative à la fenêtre d'interaction sous Windows. Puisqu'emacs fonctionne sous Windows, on peut lancer dans une de ses fenêtres la boucle d'interaction Objective CAML.

Extension de syntaxe

Les outils d'analyses lexicale et syntaxique proposés dans la distribution sont déjà fort complets, mais ils ne permettent pas d'étendre la syntaxe du langage lui-même. L'outil camlp4 (voir lien page ??) s'utilise en lieu et place de l'analyseur syntaxique d'Objective CAML. Les compilateurs de ce dernier n'ont plus qu'à procéder au typage et à la génération de code. Cet outil permet l'extension de la syntaxe du langage par l'utilisateur ou la modification de la syntaxe originale du langage. Il offre également des fonctionnalités d'affichage (pretty-printing) des arbres de syntaxe engendrés. Il devient alors facile d'écrire une nouvelle boucle d'interaction pour toute extension de la syntaxe d'Objective CAML, voire pour un autre langage implanté en Objective CAML.

Interopérabilité avec d'autres langages

Le chapitre 12 a détaillé l'interfaçage entre le langage Objective CAML et C. Une application multi-langages tire avantage des traits utiles de chacun d'eux tout en faisant vivre en harmonie des codes différents partageant un même espace mémoire. Néanmoins l'encapsulation de fonctions C pour les rendre appelables à partir d'Objective CAML nécessite un travail fastidieux. Pour le simplifier, l'outil camlIDL (voir lien page ??) fournit un générateur de capsules et les outils d'importation de composants COM (Windows) en Objective CAML. Les capsules sont engendrées à partir d'un fichier des descriptions de l'interface (IDL).

Interfaces graphiques

La bibliothèque Graphics permet de réaliser des dessins et des interactions simples, mais elle ne peut pas être considérée comme une interface graphique digne de ce nom. Le chapitre 13 a montré comment on pouvait étendre cette bibliothèque pour construire des composants graphiques répondant à certaines interactions. Le fait de reposer sur Graphics permet de conserver la portabilité de l'interface sur différentes plate-formes (X-Windows, Windows, MacOS), mais limite son utilisation à la couche basse des événements et des contextes graphiques.

Plusieurs réalisations tentent de combler ce manque, malheureusement aucune n'arrive à être complète, portable, documentée et simple d'emploi. Voici une liste (extraite de la << bosse du chameau >>) des principales réalisations : Malgré l'effort de la communauté, il existe un réel manque d'outils de construction d'interfaces portables. On peut espérer que LabTk devienne portable sur différents systèmes.

Programmation parallèle et distribution

Les processus légers et les prises de communication offrent déjà les mécanismes de base pour la programmation concurrente et répartie. L'interfaçage avec le langage C permet d'utiliser les bibliothèques classiques de programmation parallèle. Seule manque une interface avec CORBA pour l'invocation de méthodes sur des objets distants. Par contre, il existe de nombreuses bibliothèques et extensions du langage qui utilisent différents modèles de parallélisme.

Bibliothèques

Les deux principales bibliothèques pour la programmation parallèle, MPI (Message Passing Interface) et PVM (Parallel Virtual Machine), sont interfacées avec Objective CAML. On trouve sur le site

Lien


http://www.netlib.org
la documentation, les liens et les sources de ces bibliothèques. La << bosse du chameau >> contient les différentes adresses HTTP d'où l'on peut télécharger les versions interfacées avec Objective CAML.

Extensions

De nombreuses extensions parallèles de Caml-Light ou Objective CAML ont été réalisées :
Précédent Index Suivant