Best viewed in 24pt and full-screen
next up previous contents
Next: Typage Up: Applications Previous: Des démonstrateurs enfouis

Manipulation de formules

L'application de transformation de grammaires attribuées (voir section «Transformations de grammaires en tex2html_wrap_inline56836Prolog»*) et le système tex2html_wrap_inline52896 (voir section «Un système ouvert»*) sont des exemples d'applications qui manipulent des formules. Dans la première, les formules sont des grammaires attribuées, dont la forme concrète est lue, dont une forme interne est produite puis transformée en la forme interne d'une autre grammaire dont la forme concrète est finalement affichée. Dans le compilateur de la seconde, les formules sont des programmes tex2html_wrap_inline56836Prolog et C, et dans une moindre mesure des script Unix. Les programmes tex2html_wrap_inline56836Prolog sont lus, plusieurs formes internes successives sont produites puis consommées par différents modules de vérification et de normalisation. La forme interne d'un programme impératif est enfin produite, puis traduite en C. Tout autre langage de programmation impératif aurait convenu. Un autre programme tex2html_wrap_inline56836Prolog enchaîne les opérations de compilation de modules tex2html_wrap_inline56836Prolog élémentaires et de module C résultants, et l'édition de lien en produisant des scripts Unix. La compilation des modules C résultants occupe environ les 2/3 du temps de compilation.

L'application de transformation de grammaires attribuées est une relativement petite application de 4000 lignes de tex2html_wrap_inline56836Prolog. Elle ne comporte pas de composant écrit dans un autre langage de programmation.

Le système tex2html_wrap_inline52896 est une application beaucoup plus complexe. Il est fait de 8000 lignes de tex2html_wrap_inline56836Prolog pour le compilateur, 5000 lignes de tex2html_wrap_inline56836Prolog pour les bibliothèques, 16000 lignes de C pour l'exécutif (run-time system), et 4000 lignes de C/Motif pour l'interface graphique du débogueur symbolique. Il faut remarquer que le système étant auto-compilé le compilateur et les bibliothèques sont écrits dans des versions différentes de tex2html_wrap_inline52896. Dans un état donné du développement du système tex2html_wrap_inline52896, les bibliothèques sont compilées par la version courante du compilateur de tex2html_wrap_inline52896 et reliées avec la même version de l'exécutif, et le compilateur l'est par la version précédente du compilateur et de l'exécutif. L'objectif du bootstrapping et de faire se superposer la version courante et la version précédente, mais ce n'est qu'une situation idéale atteinte en fin de mise au point de chaque nouvelle version. Il faut donc maintenir la distinction entre les deux sortes de sources tex2html_wrap_inline56836Prolog pendant le développement, c'est-à-dire tout le temps.


next up previous contents
Next: Typage Up: Applications Previous: Des démonstrateurs enfouis

Olivier Ridoux
Mon Apr 27 11:10:23 MET DST 1998