Jeu

Le C définit un jeu de caractère pour les fichiers source et un jeu de caractères pour l’environnement d’exécution.

Il définit en outre pour ceux-ci un jeu de base et un jeu étendu.

Jeu de base : 95 caractères

Le jeu de base doit comporter

Tous ces caractères doivent pouvoir être contenus dans un seul multiplet .

Noter que les derniers signes graphiques, [\]^_{|}~, sont absents d’un clavier Remington et sont une inovation de l’ ASCII , par compatibilité, des trigraphes leur sont associés.

Noter l’absence des caractères graphiques @$` dans le jeu de base : dans les premières versions de l’ASCII ceux ci étaient considérés comme variables et multilingues. Le $ étant le caractère monétaire, pouvant être affiché, £ sur un terminal anglais, @ pouvant être affiché À sur un écran français, etc. Il est placé dans la table ASCII avant le A par souci de collation . Le C ne définit encore aujourd’hui aucune grammaire à ces symboles.

Les caractères de contrôle d’affichage servent à accélérer l’impression d’un code source sur un téléscripteur: https://www.youtube.com/watch?v=qv5b1Xowxdk 🌍⤴

Ce jeu de base correspond à l’intersection de caractéristiques de l’ ASCII et de l’ EBCDIC .

Jeu du code source : 96 caractères

Le jeu source contioent le jeu de base ainsi qu’un caractère graphique représentant une « fin de ligne ». Il est représenté sur un seul octet en C, indépendament de sa représentation physique dans le fichier.

Jeu d’exécution : 99 caractères

Le jeu d’exécution doit comporter le jeu de base et en outre

Jeu étendu: 98 caractères ou plus

Le jeu étendu doit comporter le jeu de base, avec une correspondance un sur un entre les caractères du jeu de base, les caractères « arobase @ », « dollar $ » et « accent grave ` » et tout autres caractères de son choix.

Ces caractères doivent pouvoir être représentés avec un seul multiplet .

Un caractère étendu peut se trouver dans

Si il se trouve ailleurs le code source du programme est mal formé.

A noter que de nombreux compilateurs ne tolèrent pas les identifiants int t@t@ ou int t`t` mais acceptent int t$t$. Il est généralement hasardeux d’avoir des identifiants internes comportant des caractères étendus, et a proscrire pour des identifiants à visibilité externe

Lecture