Le 2002-05-13 00:08:36 -0400, François Pinard écrivait :
J'ai travaillé à diverses reprises sur l'un et l'autre, et à mon expérience, le travail me semble assez différent. L'enluminure est plutôt simple: on doit retrouver les mots-clés du langage, ainsi que certaines entités lexicales comme les chaìnes et les commentaires. On cherche assez souvent les identificateurs de fonctions ou noms de types, et quelques heuristiques plutôt élémentaires suffisent.
Pour refaire la présentation d'un programme, il est vrai qu'on se contente parfois d'une assez bonne collection d'heuristiques. Mais pour faire du bon travail, il semble plus utile de faire une analyse lexicale et syntaxique assez complète du programme. Cela permet par exemple de dériver plusieurs découpages différents pour une représentation de surface de l'arbre représentatif du programme et choisir celui qui semble le meilleur, selon quelques critères pré-établis, ou encore de nettoyer les parenthèses superflues en fonction des priorités des opérateurs, et toute cette sorte de chose! :-) Je crois que les moyens mis en oeuvre sont plus importants.
OK. Il y a donc 3 choses différentes ici :
+ « Syntax highlighting » c'est-à-dire en gros la colorisation de la syntaxe, que permettent par exemple des éditeurs comme vi et emacs. Il s'agit à priori de traitements assez simple, qui permettent de mettre en relief la syntaxe d'un programme, mais sans en changer la présentation.
+ « Pretty printing » (1) : l'utilisation de programmes de reformatage des sources pour en faciliter la lecture et l'édition. Le cas classique de ce type de programmes est « indent ». Ce type de programme peut utiliser ou non une analyse syntaxique.
+ « Pretty printing » (2) : l'utilisation de programmes pour rendre plus lisible et plus agréable à lire un code source en vue de son impression. Le cas classique serait ici a2ps. Ce type de programme peut utiliser ou non une analyse syntaxique, mais cela ne semble pas être le cas dans la majorité de cas. a2ps fait par exemple juste de la colorisation syntaxique.
Le terme « pretty printing » est utilisé dans ces 2 derniers cas.
On peut effectivement employer une traduction différente pour « pretty printing » selon le type de résultat produit, si c'est ce que tu suggère (code source dans le cas 1, impression ou fichier PS dans le cas 2).