Metteur en page de sources Ada
Je tiens à remercier vivement Magnus Kempe pour sa disponibilité et ses conseils tout au long du projet, qui m'ont été vraiment utiles.
Les applications développées répondent aux objectifs fixés au début du projet.
On est notamment capables de "corriger" l'apparence des sources Ada, ainsi que générer directement du code PostScript conforme à la norme Adobe pour l'impression. A noter le besoin dans ces deux cas d'une analyse purement lexicale des sources.
D'autre part, pour l'application de mise en page des sources Ada, une analyse syntaxique, avec prise en compte aussi des commentaires, s'est montré nécessaire. Elle est réalisée à l'aide du composant GRAMACT.
Il est à remarquer le caractère ouvert des trois applications développées. En effet, on a dans chacun des cas conçu une solution au problème concret au moyen d'une architecture générale et facilement adaptable à d'autres problèmes similaires.
A titre d'exemple, l'application "ada_to_postscript" va être utilisée par le LGL dans le cadre du cours "Génie Logiciel". De plus, elle a été légèrement modifiée pour permettre d'imprimer aussi bien en mode "Portrait" qu'en mode "Landscape".
Chaque application étant indépendante, on a toutefois la possibilité de les combiner à l'aide des "pipes" Unix. A noter aussi le support dans tous les cas des mécanismes de redirection offerts par Unix.
A un niveau général, le planning prévu a été respecté.
Du point de vue personnel, la réalisation de ce projet m'a permis d'agrandir mes connaissances sur des domaines telles que l'analyse et la conception structurée d'applications (même si certains fois il a fallu revenir en arrière, à cause notamment d'une conception initiale pas suffisamment mûre) et le langage PostScript.
L'application "apparence" étant déjà mise au point, les améliorations et extensions possibles vont porter sur les applications de génération de code PostScript et de mise en page de sources Ada respectivement.
Deux aspect pourraient être améliorés dans l'application "ada_to_postscript" : d'une part, la possibilité de paramétriser le nombre de caractères par ligne (l'application calculerait, en fonction de cette valeur, la taille du jeu de caractères adéquate), ou la taille du jeu de caractère (et dans ce cas on calculerait le nombre maximum de caractères par ligne), et d'autre part le contrôle de la longueur des lignes de code, pour forcer le passage à une nouvelle ligne dans le cas où une ligne est trop longue (actuellement elle est carrément coupée au niveau de l'impression).
Au moment de rédiger ce rapport, l'application "structure" est toujours en phase de développement, notamment au niveau de la décoration de la grammaire complète (certaines instructions du langage, peu utilisées, doivent encore être "décorées") et du traitement des commentaires.
Une amélioration possible serait l'emploi de ce qu'on appelle des "actions de contexte". En effet, souvent le jeu d'actions défini par rapport aux traitements à réaliser ne suffit pas, car certaines règles de la grammaire sur lesquelles des actions doivent être placées peuvent apparaître dans des contextes différents.
Ces actions de contexte, à l'aide d'autres actions qui serviront à mettre à jour des variables d'état indiquant si on est dans le contexte où le traitement doit être effectué ou non, vont donc permettre à l'application d'effectuer une mise en page plus précise.
Une première approche de cette idée a déjà été essayée, avec des résultats très positifs.
On peut aussi envisager une mise en page qui tienne compte d'aspects tels que la longueur des éléments lexicaux du langage, pour effectuer des alignements au niveau des instructions (par exemple des déclarations et des affectations).
Generated with CERN WebMaker
7.1. Remerciements
7.2. Evaluation des résultats
7.3. Améliorations et extensions futures
Metteur en page de sources Ada - 29 MAR 95
[Next] [Previous] [Top]