Coloration syntaxique

Un article de Wikipédia, l'encyclopédie libre.

Coloration syntaxique sur un programme en langage C sous Emacs.
Coloration syntaxique sur un programme en langage C sous Emacs.

La coloration syntaxique désigne en informatique une fonctionnalité proposée par certains éditeurs de texte, qui consiste à formater automatiquement chacun des éléments du texte affiché en utilisant une couleur caractéristique de son type.

Le but est d’améliorer la lisibilité d'un code source en mettant en évidence les structures syntaxiques de son langage de programmation ou de description.

Sommaire

[modifier] Utilité

Coloration syntaxique sur un document HTML dans Bluefish.
Coloration syntaxique sur un document HTML dans Bluefish.

Dans une version très simple, la mise en valeur des mots-clefs d’un langage de programmation permet de repérer plus rapidement les constituants d’un programme. Cette technique est utilisée depuis les années 1980 dans les éditeurs de texte et dans certains outils de présentation, lorsqu’ils sont principalement destinés à des programmeurs. Elle permet d’augmenter la productivité des auteurs de logiciel en réduisant les erreurs de saisie, en améliorant la claire perception des structures actives du programme en cours d’écriture ou de modification.

Cette technique est souvent (mais pas obligatoirement) associée à d’autres techniques de présentation prenant en compte l’analyse syntaxique du contenu : indentation automatique, masquage et démasquage de blocs, mise en relief d’un délimiteur (parenthèse, crochet, accolade, balise) quand le curseur passe sur l’autre qui lui correspond, etc.

Coloration syntaxique sur un programme en Ruby sous SciTE.
Coloration syntaxique sur un programme en Ruby sous SciTE.

Historiquement, il a fallu attendre que la puissance des ordinateurs soit suffisante et les écrans couleur de bonne qualité suffisamment répandus pour voir cette technique se répandre (la maîtrise de l’analyse syntaxique, elle, était déjà bien en place depuis le tout début des années 1970). Cette convergence a commencé au début des années 1980 sur les mainframes (éditeur Lexx) et est devenue courante dans les mondes PC et Linux au cours des années 1990.

[modifier] Ergonomie

Au Japon, les éditeurs syntaxiques ont depuis quelque temps des concurrents, qui sont les éditeurs à historique. Dans les versions les plus simples de ceux-ci, par exemple, les 400 caractères frappés le plus récemment dans un texte y apparaissent en surbrillance car c’est souvent dans les dernières modifications effectuées que se trouvent les emplacements de travail courants. Rien n’interdit dans le principe de combiner les deux approches.

Lorsqu’on dispose d’une imprimante couleur, l’usage de couleurs de fond plutôt que de couleur du texte pour les mots-clé ou pour les variables peut contribuer à les rendre plus lisibles, et à augmenter la clarté du programme. Les éditeurs modernes permettent également de spécifier des polices, des graisses ou des corps particuliers pour les unités syntaxiques considérées.

[modifier] Paramétrage

Éditeur APL à coloration syntaxique.
Éditeur APL à coloration syntaxique.

La reconnaissance d'un langage par un éditeur se fait par l'ajout d'un fichier de spécifications. L’écriture d’une telle spécification pour un nouveau langage n’étant pas très complexe (dans le cas le plus trivial, par exemple, on en déclarerait juste les mots-clé) et la motivation des programmeurs pour en définir étant forte, il n’est pas rare de voir des fichiers de spécification associés à de nouveaux langages (par exemple C#, Lua ou Ruby), rendus disponibles sur Internet seulement quelques jours après l’annonce de ceux-ci.

Pour des raisons de flexibilité, la définition des unités syntaxiques d’une part, et leurs choix de coloration d’autre part, s’effectuent en général dans des fichiers différents. Cela permet aussi à l’utilisateur d’homogénéiser facilement la présentation de ses programmes dans les différents langages qu’il utilise (même un fichier de configuration, comme par exemple celui d’Apache, possède un langage).

[modifier] Voir aussi

[modifier] Liens externes