Survol de l'implémentation de Caml Light

Le système Caml Light comprend:

Disponibilité

Caml Light est distribué gratuitement pour des usages non commerciaux. Cliquez ici pour transférer le système.

Caml Light est disponible sur les machines suivantes:

Matériel nécessaire

Caml Light est implémenté par un compilateur de code par octets (bytecode) (il produit du code pour une machine abstraite, qui est ensuite interprété par un programme C), c'est pourquoi le système est petit, portable et frugal (pas de gros besoins en mémoire). Le support à l'exécution (la partie écrite en C) fait environ 100k, plus encore 100k de code par octets pour le compilateur. Le compilateur lui-même est écrit en Caml et ``autogène'' -- compilé par lui-même. Deux mégaoctets de mémoire suffisent pour recompiler tout le système. Les autres implémentations de ML nécessitent souvent au moins dix fois plus de mémoire. Les programmes exécutables produits sont également très compacts.

Performances

Du fait de l'interprétation du code par octets, les programmes produits par Caml Light tournent à peu près 10 fois plus lentement que les programmes produits par les meilleurs compilateurs vers le code natif. Si cette différence est marquée pour les programmes qui font beaucoup d'opérations arithmétiques et de boucles, elle s'atténue nettement pour les programmes symboliques.

Grâce à ses besoins mémoire restreints, les programmes Caml Light démarrent instantanément et ne posent pas de problèmes avec la mémoire virtuelle. Avec l'avantage supplémentaire d'une récupération mémoire à générations et incrémentale, les programmes Caml Light interactifs sont très prompts à réagir, sans arrêts intempestifs au milieu d'une interaction avec l'utilisateur.

Le compilateur Caml Light est si petit et si simple qu'il compile très vite (plus de 200 lignes par seconde sur une station de travail moderne), beaucoup plus vite en fait que les compilateurs qui produisent du code natif. En phase de développement d'un logiciel, cette rapidité de compilation compense largement la perte de vitesse d'exécution des programmes produits.
Pour la même raison, le système interactif est remarquablement rapide.

Portabilité

Caml Light est entièrement écrit en C et en Caml. Les seules hypothèses sont: une architecture 32 ou 64-bits, avec un espace d'adressage à plat; un compilateur C de bonne qualité (ANSI ou K & R); et le sous-système POSIX d'Unix.