Brevet FR2717281A1 — publié le 19950915

Dispositif de codage de symboles tels que des caractères L'invention concerne le codage de symboles, tels que des caractères, ainsi que leur décodage. L'une des bases actuelles du codage informatique de symboles est la table dite ASCII (pour "American Standard Code for Information Interchange"). Elle procure un codage de base normalisé sur 7 bits, dont la signification est bien connue des spécialistes. Les valeurs 32 à 127 du code (en décimal), normalisées, couvrent les chiffres de O à 9, les 26 lettres de l'alphabet latin dans leurs versions majuscules et minuscules, les signes de ponctuation ou d'opérations habituelles, ainsi que quelques symboles spéciaux et symboles utilitaires d'informatique. Par contre, le début de la table ASCII (de O à 31) possède une signification qui peut différer suivant qu'il s'agit de micro-informatique, de stations de travail, ou de grands systèmes. Dans la plupart des équipements informatiques, l'unité élémentaire de stockage est l'octet, qui couvre 8 bits. Le codage ASCII ne nécessitant que 7 bits, le bit restant a été utilisé pour étendre le codage à d'autres caractères. Lorsque le premier bit est 0, on accorde à l'octet la signification du code ASCII contenu dans les 7 bits suivants. Lorsque le premier bit est 1, on obtient une nouvelle étendue de 128 possibilités, l'ASCII "étendu", dont la signification va varier suivant le contexte. Par exemple dans le codage ISO 8859-1 (ISO LATIN 1), les 128 codes supplémentaires couvrent les caractères accentués des principales langues européennes, dans le codage ISO 8859-7, les 128 codes supplémentaires couvrent les lettres grecques. L'ASCII "étendu" répond relativement bien aux besoins des langues européennes mais ses possibilités d'extension sont trop limitées pour couvrir les jeux de caractères des langues asiatiques (chinois, japonais, coréen). Des systèmes de codages mixtes dans lesquels les caractères étendus sont codés sur deux octets et les caractères ASCII restent codés sur un octet ont été développés pour résoudre ce problème. Malgré les efforts importants de normalisation, il demeure des divergences notables dans la manière de coder les caractères (ISO LATIN 1, OEM et Macintosh pour les caractères européens; Shift-JIS et EUC pour les caractères japonais). De plus, l'absence d'un codage qui permette de couvrir la totalité des caractères utilisés dans le monde pose un problème pour le codage de documents multilingues. Les spécialistes se sont attaqués à ce problème. Ainsi a été développée une technique dite "UNICODE" qui ambitionne notamment de couvrir tous les caractères de toutes les langues, avec une nomenclature précise et cohérente, des informations convenables quant aux références croisées, un codage dense, et une longueur en principe fixe du codage, sur deux octets, soit 65536 possibilités. Toutefois, la Demanderesse a observé que cette solution n'est pas totalement satisfaisante, pour des raisons qui seront développées plus loin. En conséquence, la présente invention a pour objet de fournir une technique de codage de symboles améliorée, en vue de mieux satisfaire les besoins. Le dispositif selon l'invention comprend - une première voie, propre à véhiculer un signal d'ordre qui désigne un symbole, - une seconde voie, propre à véhiculer un code-symbole, appartenant à un domaine choisi de codes-symboles, et - des moyens de traitement pour passer du signal d'ordre au code-symbole. Selon un aspect de l'invention, le signal d'ordre étant constitué à partir d'un jeu prédéterminé de codes-ordres numériques (appelés jetons), les moyens de traitement comprennent, en combinaison: - de premiers moyens, capables en réponse à la présentation d'un code-ordre, de fournir une donnée de catégorie, ainsi qu'un transformé, - de seconds moyens, propres à établir une correspondance entre une pluralité prédéterminée de suites d'intervalles de transformé associés chacun à une catégorie de jetons donnée (appelée suite d'intervalles de jetons), et une pluralité de sous-domaines respectifs disjoints dans le domaine des codessymboles, - de troisièmes moyens pour analyser séquentiellement les suites de codes-ordres du signal d'ordre, en fonction d'une règle d'analyse prédéterminée, en obtenant des premiers moyens la donnée de catégorie et le transformé de chaque code-ordre, et des seconds moyens le sous-domaine associé à la suite d'intervalles de jetons associés au signal d'ordre, et - des moyens pour calculer le code-symbole associé à la séquence de codes-ordres analysée en fonction du sous-domaine et des transformés des codes-ordres ainsi obtenus. Dans un mode de réalisation particulièrement avantageux, les moyens de traitement comprennent en outre des moyens de décodage, propres à faire correspondre à un code-symbole la suite de codes-ordres correspondante. Ces moyens de traitement comprennent également des moyens de transcodage, propres à faire correspondre à un codage de symbole d'une autre nature que celle utilisée la suite de codes-ordres correspondante. Le procédé selon l'invention comporte les deux étapes suivantes a) une première étape au cours de laquelle on établit un signal d'ordre qui désigne un symbole, et b) une seconde étape au cours de laquelle on fait correspondre à ce signal d'ordre un code-symbole, appartenant à un domaine choisi de codes-symboles. Selon l'invention, à l'étape a), le signal d'ordre est établi à partir d'un jeu prédéterminé de codes-ordres numériques. Par ailleurs, l'étape b) comprend les opérations suivantes bl) analyser séquentiellement les codes-ordres du signal d'ordre, en fonction d'une règle d'analyse prédéterminée, b2) faire correspondre à chaque code-ordre une donnée de catégorie, ainsi qu'un transformé associé, b3) déterminer la suite d'intervalles de jetons associée à la suite de codes-ordres, b4) déterminer un sous-domaine du domaine des codes-symboles qui correspond à cette suite d'intervalles de jetOns, et b5) calculer le code-symbole associé à la séquence de codes-ordres analysée en fonction du sous-domaine et des transformés des codes-ordres ainsi obtenus. D'autres caractéristiques et avantages de l'invention apparaîtront à l'examen de la description détaillée ci-après, et des dessins annexés, sur lesquels - la figure 1 illustre schématiquement une installation avec un dispositif selon la présente invention; - la figure 2 illustre schématiquement des échanges de données auxquels la présente invention s'applique; - les figures 3 et 4 définissent les étendues de codage utilisées dans un exemple de mise en oeuvre de la présente invention - la figure 5 illustre un exemple de table arborescente utilisable pour la mise en oeuvre de l'invention; - la figure 6 illustre, sur un exemple simple, deux cas particuliers de codage mis en oeuvre par le dispositif selon la présente invention. Dans la présente description, est considéré comme "symbole" tout signe utilisé par l'homme pour transmettre de l'information. Sont visés a priori les symboles graphiques, sans exclure des symboles d'une autre nature, sonore par exemple. Lorsque le contexte le permet, on remplacera le mot "symbole" par "caractère", et une suite de symboles sera appelée "chaîne de caractères" ou "texte", selon l'habitude des hommes du métier. On distinguera - la représentation d'un symbole dans un texte, qui fait intervenir des "codes-symboles", ou codes de caractères, et - le signal d'ordre désignant le symbole, qui fait intervenir des codes-ordre ("jetons", ou "token" en anglais), d'une nature différente. Il y a une différence essentielle entre les opérations de codage et de décodage. Le codage est l'opération qui consiste à associer un codesymbole unique à un ou plusieurs jetons émis par une source de jetons qui peut être soit un périphérique (comme par exemple un clavier), soit un composant logiciel. Le décodage est l'opération inverse qui consiste à émettre un ou plusieurs jetons à partir d'un code-symbole unique stocké dans une mémoire (vive ou de masse, dans un fichier) de unité centrale. Les jetons peuvent être envoyés à un périphérique spécialisé (comme par exemple une imprimante) ou bien traités par un composant logiciel approprié qui pourra en extraire des informations utiles telles qu'une catégorie lexicale (par exemple lettre simple, lettre accentuée, chiffre, ...) ou un état majuscule/minuscule. En règle générale, les codes-symboles serviront plutôt au stockage et à l'échange de données textuelles, la représentation sous forme de suites de codes-ordres sera en général temporaire et interne à un processus logiciel. Par exemple, un contrôleur de clavier pourra synthétiser les codes-symboles à envoyer au processeur à partir des codes-ordres qui correspondent plus ou moins directement aux touches activées par l'utilisateur. Inversement, un contrôleur d'imprimante pourra décomposer les codes-symboles en suites de codes-ordres afin de déterminer les constituants d'un caractère composite. Un logiciel quelconque pourra utiliser une combinaison des opérations de décodage et codage, avec un traitement intermédiaire sur les codes-ordres pour convertir des chaînes de caractères (conversion majuscules/minuscules). Les voies d'entrée et de sortie des processus de codage et décodage sont en général des voies "logiques" (logicielles), et non pas nécessairement des voies "physiques" (matérielles). La Demanderesse a étudié en détail la technique UNICODE déjà mentionnée. Elle s'est attachée notamment aux propriétés énoncées ci-après. La première propriété est la spécificité du codage. Un même caractère peut être représenté à l'écran ou sur papier de plusieurs manières différentes, en fonction de la police de caractères et du style (gras, italique) choisi. Il convient de distinguer le glyphe (la variante typographique) et le caractère. Le rôle d'un système de codage de caractères est d'attribuer un code unique à chaque caractère, code qui couvrira tous les glyphes de ce caractère. Toutefois, la distinction glyphe/caractère n'est pas toujours facile & faire. Par exemple, il convient d'établir des distinctions subtiles entre ligatures (fi, ffi) et digraphes (oe, ae). Dans la plupart des codages existants, les digraphes sont considérés comme des caractères originaux alors que les ligatures sont traitées comme des variantes typographiques. Parfois, deux caractères sont représentés par le même glyphe. Par exemple, la lettre latine "a" et la lettre grecque "alpha" ont la même représentation en majuscule. Il s'agit cependant de deux caractères différents auxquels le codage devra attribuer des codes différents. La décision de distinguer ou d'unifier les caractères ayant même glyphe est moins évidente lorsqu'il s'agit de caractères tels que la lettre grecque "mu" et le préfixe "micro" d'une unité de mesure ou de cas tels que le point d'exclamation "!" et le symbole mathématique "factorielle". Un troisième exemple est celui des variantes "demi-largeur" et "largeur normale" des caractères asiatiques. Les codages actuellement en vigueur attribuent des codes différents à ces variantes et, par conséquent, un code universel se doit de fournir un mécanisme pour distinguer ces variantes afin que les textes obtenus à l'aide des codages actuels puissent être convertis sans perdre d'information. Comme le montrent ces trois exemples, tout codage suppose un certain nombre de décisions arbitraires quant au degré de spécificité des caractères. Une des caractéristiques du système de codage proposé est de permettre de spécifier les caractères autant qu'on le désire et donc de fournir des ensembles de caractères cohérents et complets (par exemple un ensemble de signes de ponctuation contenant le point d'exclamat ion et un ensemble de symboles mathématiques contenant le signe factorielle) avec des moyens efficaces pour catégoriser les caractères à partir de leurs codes et pour décomposer des caractères composites (digraphes, caractères accentués) en leurs éléments constitutifs. Le caractère combinatoire du codage proposé et la large taille de l'espace de codes disponible sont fondamentaux pour atteindre ce but. Une seconde propriété est la compatibilité avec la table de base ASCII précitée. Une chaîne constituée seulement de caractères ASCII est codée par UNICODE d'une façon différente de la chaîne ASCII équivalente, car, dans UNICODE, chaque caractère ASCII est transformé en codage sur deux octets (dont le premier est Oh, c'est-à-dire zéro en hexadécimal). Une troisième propriété est l'unicité. Il est vivement souhaitable qu'il n'existe qu'une seule manière de représenter un symbole donné, au niveau de spécificité choisi (ce qui n'est pas vrai en général, notamment dans UNICODE). Comme exemple de non-unicité, le caractère "à" peut être représenté soit comme ['à latin' minuscule] soit comme E'a latin' minuscule]+['accent grave' sans espacement]. Ceci a de nombreuses conséquences gênantes, en particulier quand on compare des chaînes de caractères pour en détecter l'identité stricte. En effet, il est nécessaire d'interpréter préalablement tout caractère susceptible d'au moins deux représentations différentes. Une autre propriété est dite "localité". Pêche par manque de localité une technique de codage qui nécessite de connaître des informations contenues à un autre endroit du texte (chaîne de caractères) traité. Ainsi, quoique le codage UNI CODE possède en principe une longueur fixe de deux octets, il autorise néanmoins pour certains caractères un codage sur plusieurs groupes de deux octets. (Voir l'exemple précité :['a latin' minuscule]+ttaccent grave' sans espacement], qui est un caractère unique codé sur deux groupes de deux octets). Ceci a également de nombreuses conséquences néfastes. Par exemple, toujours lorsqu'on explore deux chaînes de caractères en vue de leur comparaison, il faut regarder plus loin vers l'avant, pour éviter de considérer comme identiques un "à" et un "a". Comme autre propriété, on notera encore l'extensibilité. La plupart du temps, quelques emplacements sont réservés pour des caractères à choisir. Mais tout principe de codage de longueur fixe (comme sur deux octets) interdit l'extension au-delà d'une limite donnée (comme 65536), sauf à introduire des mécanismes modaux non locaux, avec les sérieux inconvénients qui s'y attachent. Dans ces conditions, la présente invention a notamment pour but de fournir un moyen de codage qui permette de "spécifier" tout symbole jusqu'au niveau désiré de sophistication, sans compliquer indûment son traitement ultérieur. L'invention vise également à permettre une extensibilité aisée de la technique de rodage, une compatibilité ASCII stricte, avec bien entendu une bonne compacité et efficacité, ainsi du codage. La présente invention a aussi pour but de fournir un moyen de codage qui puisse aisément et systématiquement être rendu "unique", c'est-à-dire dans lequel il y ait une seule manière de représenter un caractère donné, jusqu'au niveau de spécificité désiré. L'invention a enfin pour but de fournir un moyen de codage qui réduise autant que possible le besoin de recourir à des expédients qui fassent exception aux propriétés souhaitables de "localité" et de "non-modalité". Selon un aspect important de l'invention, la technique de codage proposée est associée à une description algébrique des caractères. Ceci signifie que de nombreuses informations pourront être tirées directement de la suite de codes-ordres désignant le caractère, sans qu'il soit nécessaire dtinspec- ter une table complémentaire. L'invention s'applique à de nombreux types d'installations informatiques. Une installation élémentaire (figure 1) comprend une unite centrale 1, associée à un clavier 2 et à un écran 3, ainsi qu'à une mémoire de masse 4 telle qu'un disque dur et une imprimante 5, étant observé que, s'agissant d'un réseau, la mémoire de masse et l'imprimante peuvent se trouver à distance. En fonctionnement, le schéma de principe applicable devient celui de la figure 2, où l'on distingue dans l'unité centrale 1 le processeur 10 et la mémoire vive 12. On y retrouve le clavier 2, l'écran 3, l'imprimante 5 et la mémoire de masse 4, éventuellement un modem ou une liaison-réseau 6. Le processeur 10 peut être en train de mettre en oeuvre plusieurs logiciels; on a distingué ici un logiciel A ou 91 et un logiciel B ou 92. Des données de textes, c'est-à-dire contenant des symboles au sens de la présente invention peuvent être échangées non seulement entre le processeur, le clavier, l'écran, l'imprimante, la mémoire vive, le modem et la mémoire de masse, mais aussi de logiciel à logiciel. En outre, de telles données textes peuvent être rencontrées dans des situations assez différentes : un fichier dit texte ne contiendra en principe que des données de texte. Par contre, un fichier programme pourra contenir d'une part des instructions, d'autre part des données de texte. De même, des ordres désignant des symboles pourront se trouver définis non seulement au niveau des périphériques tels que le clavier, l'écran ou l'imprimante, mais aussi dans les dialogues internes avec les mémoires et/ou entre logiciels. De façon générale, ceci peut être défini en considérant - une première voie propre à véhiculer un signal d'ordre qui désigne un symbole ou "caractère", et - une seconde voie propre à véhiculer un code-symbole. De façon connue, ce code-symbole doit appartenir à un domaine choisi de codes-symboles, et c'est le rôle du processeur 10 que de passer d'un signal d'ordre au code-symbole correspondant, et inversement. A cet effet, il est classique de recourir à des tables, qui sont généralement stockées dans des fichiers. Dans la plupart des cas, la table fournira directement la correspondance entre l'ordre relatif à un symbole particulier et le code-symbole associé. La Demanderesse a observé que cette façon de procéder comporte un inconvénient majeur. En effet, il existe de nombreuses situations où un symbole présente des variantes, comme le cas du "a" et du "à, déjà cités. Dans les applications évoluées de l'informatique, il est souhaitable de pouvoir distinguer entre ces variantes, car cette distinction constitue une information utile. Mais il est également souhaitable de pouvoir mesurer leur similitude, qui est également une information utile. Avec les systèmes classiques à tables, dès lors que l'on veut distinguer deux variantes d'un même symbole, on aboutit nécessairement à deux codes différents. Et le seul moyen pour disposer en outre de l'information de similitude est de créer d'autres tables, qui regroupent les codes correspondants à des symboles similaires. Mais cette solution est difficile à mettre en oeuvre lorsque l'on doit traiter non seulement les caractères accentués usuels, mais aussi des ensembles complexes tels que les caractères syllabiques des langues orientales. Mais le premier problème qui se pose est d'assurer la spécificité du codage, et son extensibilité. En effet, dès lors que l'on veut compliquer la spécification d'un symbole, il faut pouvoir étendre la technique de codage utilisée. Pour cela, l'invention prévoit d'abord que le signal d'ordre désignant un symbole est constitué à partir d'un jeu prédé- terminé de codes-ordres numériques, que l'on appellera ci-après "jetons". Ce jeu doit être le même quelle que soit la source des données à traiter dans l'application concernée. C'est-à-dire que si par exemple on utilise un clavier qui a son propre mode de codage, il conviendra de convertir ce mode de codage d'ordre du clavier dans le jeu de codes-ordres de la présente invention. Pour une bonne compréhension de la présente invention, il est préférable de décrire d'abord le domaine où sont définis les codes-symboles (figures 3 et 4). L'extensibilité des codes-symboles selon la présente invention est assurée par le fait que le codage ne s'effectue pas sur une longueur fixe. A titre d'exemple, la figure 4 illustre les plages de définition d'octets CO à C4, avec les bornes de plage en hexadécimal, et l'étendue numérique de chaque plage en décimal. Ici, CO est libre, et peut aller de OOh à FFh (selon la notation courante d'un octet en hexadécimal, identifiée par le suffixe "h"). La figure 3 illustre quatre longueurs de codage de codes-symboles L possibles, et le nombre de possibilités qu'elles offrent. Par définition, nous associons à une longueur de codage donnée un sous-ensemble donné. Chaque sous-ensemble offre un nombre de possibilités de codes-symboles qui croit avec la longueur qu'il représente. Cette notion de sous-ensemble, si elle permet de clarifier la compréhension du présent descriptif, n'est cependant pas nécessaire à la définition de l'invention. Nous définissons un sous-ensemble comme étant constitué de multiplets terminaux appartenant à des plages de valeurs identiques. Néanmoins, ces deux multiplets n'auront pas nécessairement des valeurs identiques. - L = 1, avec un seul octet C1, defini sur la plage OOh-7Fh. (cet octet unique est à la fois le début et la fin du codesymbole). - L = 2, avec un octet de début appartenant à la plage C2 et un octet de fin C2, tous deux définis sur la plage 80h-BFh. - L = 3, avec un octet de début appartenant à la plage C3 et un octet de fin C3, tous deux définis sur la plage COh-DFh, l'octet intermédiaire CO étant libre. - L = 4, avec un octet de début appartenant à la plage C4 et un octet de fin C4, tous deux définis sur la plage EOh-EFh, les deux octets intermédiaires CO étant libres. Ces quatre sous-ensembles offrent déjà respectivement 128, 4096, 218 et 224 possibilités de codage de codes-symboles différents. La plage libre de FOh à FFh permet l'extension à d'autres sous-ensembles encore plus riches de possibilités. On notera que le code-symbole C1 constitué d'un seul octet peut reprendre le code ASCII standard. La symétrie de définition des deux octets terminaux (début et fin) possède deux avantages - elle permet tout d'abord une vérification; - en second lieu, elle permet de parcourir des chaînes de codes-symboles dans les deux sens (gauche vers droite et droite vers gauche) avec la même efficacité. Il convient cependant de noter que ce n'est pas à proprement parler la symétrie du codage qui intervient ici mais le fait que pour une longueur de code donnée (L), les octets de début et de fin sont contraints d'appartenir à des plages de valeurs bien précises et que les plages correspondant à des longueurs différentes sont disjointes. Le fait d'avoir choisi les mêmes plages pour les octets initiaux et terminaux n'est pas indispensable mais simplifie le codage et permet d'utiliser une seule table au lieu de deux pour les parcours de chaînes dans les deux sens et les vérifications. Des sous-domaines sont définis dans les sous-ensembles de L=2 à L=4, à l'aide d'une information associée au premier octet du code. Par exemple, les sous-ensembles peuvent être partitionnés de la manière suivante. L Valeur du ler octet Organisation 2 80h - 9Fh 16 sous-domaines de 128 2 AOh - AFh 16 sous-domaines de 64 2 BOh - B7h 16 sous-domaines de 32 2 2 BFh 64 sous-domaines de 1 3 COh - c7h 8 sous-domaines de 8192 3 C8h - CFh 16 sous-domaines de 4096 3 3 D8h - DBh 1 sous-domaine de 32768 (hangul) 3 DCh - DFh 1 sous-domaine de 32768 (kanji) Ce moyen permet de partitionner de manière arbitraire un espace de codage très large au moyen d'une simple table à 256 entrées, chaque entrée contenant - le nombre d'octets sur lequel le caractère est codé (L), - le nombre de sous-domaines pour cette valeur de l'octet initial ou le numéro de séquence de l'octet initial à l'intérieur d'un sous-domaine s'étendant sur plusieurs octets initiaux (cas du sous-domaine des kanjis). Au moyen d'une simple table, on peut ainsi partitionner l'espace de codage en un grand nombre de sous-domaines de tailles variées. Dans la pratique, les tailles de sous-domaines seront des puissances de 2, afin de permettre des traitements plus efficaces. Ces sous-domaines seront utilisés pour coder des ensembles de caractères formant un tout cohérent. Par exemple, les 24 lettres grecques minuscules et les 24 majuscules rempliront un sous-domaine de 64 codes, les syllabes hangul formées d'une consonne hangul (30), d'une voyelle hangul (21) et d'une consonne hangul (30) rempliront (partiellement) un sous-domaine de 32768 codes. L'étape suivante du codage consiste à exprimer les symboles à coder sous forme de suites de jetons. Certains jetons désigneront des formes ou caractères de base (par exemple la lettre latine "A", l'accent grave, ...), d'autres jetons désigneront des opérations altérant les formes de base (par exemple majuscule/minuscule, rotations, ...). Chaque jeton sera composé d'une catégorie et d'un transformé. Par exemple, le jeton "lettre latine A" sera le transformé numéro 0 de la catégorie "lettre latine", le jeton "lettre latine Z" étant le transformé numéro 25 de cette mêie catégorie. Les opérateurs majuscule et minuscule seront deux transformés de la catégorie "opérateurs majuscule/minuscule". En exprimant les symboles à coder sous forme de suites de jetons ainsi constitués, on obtiendra un ensemble de suites dans lequel on pourra identifier des sous-ensembles "réguliers". Par exemple, les lettres latines majuscules et minuscules seront toutes exprimées sous la forme d'un jeton de la catégorie "lettre latine" suivi d'un jeton de la catégorie "opérateurs majuscule/minuscule". Typiquement, les suites régulières seront constituées de jetons appartenant à des catégories bien déterminées mais ayant des transformés différents. Le codage consistera donc à associer chaque suite régulière à un des sous-domaines de codage défini précédemment. Une description de la suite des catégories sera attachée au sous-domaine de codage. Chaque symbole à coder aura un numéro de séquence unique à l'intérieur de son sous-domaine. Ce numéro de séquence sera obtenu à l'aide d'un calcul simple et générique sur les transformés des jetons constituant le symbole (par exemple pour les lettres latines majuscules et minuscules, on pourra multiplier le transformé majuscule/ai- nuscule (1 ou 0) par 32 et y ajouter le transformé "lettre latine" (0 à 25). Il conviendra bien sùr de choisir la taille du sous-domaine associé à une suite régulière de manière à ce que ce sous-domaine puisse contenir tous les transformés possibles de la suite régulière. Le mode de codage décrit ci-dessus est bien adapté aux suites régulières et denses de caractères. Il y a cependant un certain nombre de caractères singuliers ou de suites très disséminées (par exemple, les digraphes de lettres latines sont très peu nombreux en comparaison des 26 x 26 x 2 digraphes possibles). Pour prendre en compte ces cas particuliers dans le système de codage, on permettra aux suites régulières de décrire des suites d'intervalles de jetons et non plus simplement des suites de catégories de jetons, un intervalle de jeton étant un intervalle de transformés pour une catégorie de jetons donnée. Les intervalles de jetons pourront être réduits à un seul transformé, par exemple dans le cas du codage de caractères singuliers. L'organisation des sous-domaines permet de définir un grand nombre de sous-domaines de petite taille (éventuellement un seul code) qui seront associés à ces cas particuliers. De son côté, l'unité centrale de traitement est agencée pour constituer - un premier automate, capable de répondre à la présentation d'un code-ordre, en fournissant à partir de celui-ci, d'une part une donnée dite de catégorie, d'autre part un transformé, - un deuxième automate, qui dispose d'une pluralité prédéterminée de suites d'intervalles de jetons, auxquelles il est capable de faire correspondre une pluralité de sous-domaines respectifs disjoints dans le domaine choisi des codes-syibo- les. En conséquence, lorsqu'on lui présente une suite particulière de jetons, ce second automate va identifier la suite d'intervalles de jetons correspondant et désigner l'un des sous-domaines dans le domaine des codes-symboles, - un troisième automate, capable d'analyser séquentiellement les codes-ordres d'un signal d'ordre reçu. L'analyse séquentielle de ces codes-ordres ne pose pas de problème de début ni de fin, car il s'agit d'un ordre, ou si l'on préfère d'une instruction, auquel cas tout système informatique sait a priori déterminer quel sont le début et la fin de l'ordre ou de l'instruction. Cette analyse s'effectue en fonction d'une règle d'analyse prédéterminée. Le plus simple est de prendre les codes-ordres dans l'ordre dans lequel ils se présentent. Pour chaque code-ordre, ce troisième automate tire du premier automate la donnée de catégorie et le transformé correspondant. Lorsque l'analyse séquentielle des codes-ordres est terminée, le troisième automate tire du second automate la suite d'intervalles de jetons et l'indication du sous-domaine associé à la suite de couples (catégorie sous-domaine et des transformés des codes-ordres ainsi obtenus. De cette manière, on assure qu'il est possible, en allongeant à volonté la séquence de codes-ordres, de pouvoir spécifier tout code-symbole avec le niveau de sophistication désiré. Ce calcul peut être rendu très simple. En effet, la donnée de catégorie, ainsi que le transformé sont une conversion de chaque code-ordre. L'intervalle de jeton correspondant doit couvrir une certaine étendue numérique, que l'on arrondira à la puissance de 2 supérieure. Pour calculer le numéro de séquence du symbole dans son sous-domaine, on partira d'une valeur de O et, pour chaque code-ordre, on multipliera la valeur du numéro de séquence précédemment obtenu par l'étendue numérique de l'intervalle de jeton correspondant (arrondie à la puissance de 2 supérieure) et on lui ajoutera la différence entre le transformé du code-ordre et la borne inférieure de l'intervalle de jeton correspondant. Un exemple type de calcul de numéro de séquence est illustré sur la figure 6. Les symboles E et è de cette figure doivent être considérés comme des exemples théoriques, et non coure les lettres latines, qui font déjà partie de la table ASCII. Dans la pratique, la lettre latine è est codée selon l'invention par LA + 0 * 25 + 4. A partir de ce numéro de séquence et de la donnée du sous-domaine, on pourra calculer le code-symbole. L'unicité du codage selon la présente invention peut être assurée à la base par le fait que la pluralité prédéterminée d'intervalles de jetons reconnus est choisie de façon qu'il existe une seule suite d'intervalles de jetons pour un seul et même symbole spécifique à coder. Ceci est en soi suffisant pour assurer l'unicité. Incidemment, s'il advient qu'une suite de codes-ordres se traduit par une suite d'intervalles de jetons n'appartenant pas à ladite pluralité prédéterminée, on se trouve alors dans une situation d'erreur pour laquelle il existe des techniques générales de traitement connues, dont il n'est pas nécessaire de décrire ici comment elles pourraient s'appliquer au cas de la présente invention. Il est possible de distinguer des codes-ordres opérateurs et des codes-ordres opérandes, et de considérer les suites de codes-ordres comme des formules algébriques. Cette distinction est parfaitement connue de l'homme du métier, elle ne fera donc pas l'objet d'une description détaillée. Pour décoder, il faut tout d'abord extraire le premier octet du code-symbole. A partir de ce premier octet, on obtient par simple consultation de table la longueur du code-symbole (en octets) et une information décrivant l'organisation en sous-domaines. A partir de cette information et du contenu du ou des octets suivants, on peut déterminer le sous-domaine de codage et le numéro de séquence à l'intérieur de ce sous-domaine. Ensuite, on consulte une table qui fournit pour chaque sous-domaine de codage la suite d'intervalles de jetons correspondants (inverse du deuxième automate de codage). A partir du numéro de séquence dans le sous-domaine et de la suite d'intervalles de jeton, on peut recalculer les transformés correspondant à chacun des jetons de la suite (par une série de divisions et d'extractions de modulos, inverse de la série de multiplications et additions effectuées par le troisième automate de codage). On obtient ainsi la suite de jetons décodée. Pour le transcodage, on se servira de tables qui pourront être générées, automatiquement à partir de descriptions de correspondances : suites de jetons code-symbole externes. Il en est de même au niveau du transcodage qui peut être requis pour passer de codes-symboles exprimés selon une autre technique que celle ici décrite, qui peut également se faire à l'aide d'une simple table. En d'autres termes, le codage de symboles en machine s'effectue selon l'invention de la manière suivante Dans une première étape, on établit un signal d'ordre qui désigne un symbole. Ce signal d'ordre est établi à partir d'un jeu prédéterminé de codes-ordres numériques. Dans une seconde étape, on fait correspondre à ce signal d'ordre un code-symbole, appartenant à un domaine choisi de codes-symboles. Cette seconde étape comprend les opérations suivantes 1) on analyse séquentiellement la suite de codes-ordres constituant le signal d'ordre, en fonction d'une règle d'analyse prédéterminée; 2) on fait correspondre à chaque code-ordre de ladite suite une donnée de catégorie, ainsi qu'un transformé associé; 3) on détermine la suite d'intervalles de jetons associée à la suite de codes-ordres; 4) on détermine un sous-domaine du domaine des codes-symboles qui correspond à cette suite d'intervalles de jetons; et 5) on calcule le code-symbole associé à la séquence de codes-ordres analysée en fonction du sous-domaine et des transformés des codes-ordres ainsi obtenus. Revendications 1. Dispositif électronique de codage de symboles, comprenant: - une première voie, propre à véhiculer un signal d'ordre qui désigne un symbole, - une seconde voie, propre à véhiculer un code-symbole, appartenant à un domaine choisi de codes-symboles, et - des moyens de traitement pour passer du signal d'ordre au code-symbole, caractérisé en ce que, le signal d'ordre étant constitué & partir d'un jeu prédéterminé de codes-ordres numériques (appelés jetons), les moyens de traitement comprennent, en combinaison: - de premiers moyens, capables en réponse à la présentation d'un code-ordre, de fournir une donnée de catégorie, ainsi qu'un transformé, - de seconds moyens, propres à établir une correspondance entre une pluralité prédéterminée de suites d'intervalles de transformées associés chacun à une catégorie de jetons donnée (appelée suite d'intervalles de jetons), et une pluralité de sous-domaines respectifs disjoints dans le domaine des codessymboles, - de troisièmes moyens pour analyser séquentiellement les suites de codes-ordres du signal d'ordre, en fonction d'une règle d'analyse prédéterminée, en obtenant des premiers moyens la donnée de catégorie et le transformé de chaque code-ordre, et des seconds moyens le sous-domaine associé à la suite d'intervalles de jetons associée au signal d'ordre, et - des moyens de calcul pour calculer le code-symbole associé à la séquence de codes-ordres analysée en fonction du sousdomaine et des transformés des codes-ordres ainsi obtenus. 2. Dispositif selon la revendication 1, caractérisé en ce que les sous-domaines sont respectivement associés à des intervalles de valeurs du multiplet élémentaire de codage, chaque sous-domaine étant astreint à ce que le multiplet de début du codage et le multiplet de fin du codage appartiennent à un même intervalle de valeurs, moyennant quoi la donnée d'un sous-domaine permet d'obtenir la longueur du codage. 3. Dispositif selon la revendication 2, caractérisé en ce que le codage à un seul multiplet correspond au code ASCII standard à 7 bits. 4. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les transformés sont directement obtenus à partir de bits parmi les moins significatifs du code-ordre, tandis que les catégories sont obtenues à partir de bits parmi les plus significatifs du code-ordre. 5. Dispositif selon l'une des revendications précédentes, caractérisé en ce que ladite pluralité prédéterminée de suites d'intervalles de jetons est choisie de façon qu'il existe une seule suite d'intervalles de jetons pour un seul et même symbole spécifique à coder. 6. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les moyens de calcul sont propres à calculer et conserver une grandeur égale à la somme de la différence entre le transformé d'un jeton et la borne inférieure de l'intervalle de ce jeton, et le produit de la valeur précédente de cette grandeur par l'étendue numérique dudit intervalle. 7. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les moyens de traitement comprennent en outre des moyens de décodage, propres à faire correspondre à un code-symbole la suite de codes-ordres correspondante. 8. Dispositif selon l'une des revendications précédentes, caractérisé en ce que les moyens de traitement comprennent en outre des moyens de transcodage, propres à faire correspondre à un codage de symboles d'une autre nature que celle utilisée la suite de codes-ordres correspondante. 9. Procédé de codage de symboles en machine, dans lequel: a) on établit un signal d'ordre qui désigne un symbole, et b) on fait correspondre à ce signal d'ordre un code-symbole, appartenant à un domaine choisi de codes-symboles, caractérisé en ce que - à l'étape a), le signal d'ordre est établi à partir d'un jeu prédéterminé de codes-ordres numériques, et - l'étape b) comprend les opérations suivantes: bl) analyser séquentiellement les codes-ordres du signal d'ordre, en fonction d'une règle d'analyse prédéterminée, b2) faire correspondre à chaque code-ordre une donnée de catégorie, ainsi qu'un transformé associé, b3) déterminer la suite d'intervalles de jetons associés à la suite de codes-ordres, b4) déterminer un sous-domaine du domaine des codes-sy}- boles qui correspond à cette suite d'intervalles de jetons, et b5) calculer le code-symbole associé à la séquence de codes-ordre analysée en fonction du sous-domaine et des transformés des codes-ordres ainsi obtenus.