Coloration syntaxique

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Coloration syntaxique sur un programme en langage C sous Emacs.

La coloration syntaxique est une fonctionnalité informatique 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.

Historique[modifier | modifier le code]

Les écrans couleur IBM 3279 permettaient d'utiliser non seulement des caractères programmés, mais d'affecter dans une police des couleurs particulières à certains caractères. Dès le début des années 80, les développeurs commencèrent donc à utiliser des polices graphiques où les lettres avaient une couleur, les chiffres une autre et les caractères spéciaux une troisième. Ce n'était pas encore de la coloration syntaxique, mais ne pouvait qu'en suggérer l'idée. Mike Cowlishaw (en), qui avait déjà créé le langage REXX, écrivit donc LEXX, qui fut l'un des premiers éditeurs à coloration syntaxique (sur mainframe !), qui sollicitait beaucoup les machines de l'époque. Très utilisé en interne chez IBM, le produit ne fut pas commercialisé.

Utilité[modifier | modifier le code]

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.

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 Unix au cours des années 1990.

Ergonomie[modifier | modifier le code]

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.

Paramétrage[modifier | modifier le code]

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).

Exemple[modifier | modifier le code]

Voici un exemple de code en langage C avec coloration syntaxique.

/* Hello World */
#include <stdlib.h>
#include <stdio.h>
 
int main()
{
    printf("Hello World\n");
    return 0;
}

Voici le même exemple sans coloration syntaxique

/* Hello World */
#include <stdlib.h>
#include <stdio.h>

int main()
{
    printf("Hello World\n");
    return 0;

}

Une approche concurrente : les éditeurs à historique[modifier | modifier le code]

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.

Voir aussi[modifier | modifier le code]

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]