FR 2572834 A1 19860509 FR 8416912 A 19841105 PROCEDE MULTIPLIANT PAR ENVIRON DEUX LA CAPACITE DE MEMORISATION DES ORDINATEURS ET DIVISANT D'AUTANT LE TEMPS DE TRANSMISSION D'INFORMATIONS ENTRE ORDINATEURS DESCRIPTION 1) Domaine Technique de l'Invention Informatique. Ce procédé est applicable à tout ordinateur dont Un des,l,angages de programmation permet de mémoriser un entier sur deux octets. Il est efficace quelle que soit la langue dans laquelle sont écrites les informations. Il réduit l'espace mémoire nécessaire pour mémoriser des informations sur un ordinateur par un facteur d'environ deux. Il diminue dans la meme proportion le temps de transmission d'informations entre ordinateurs. 2) Procédés Courants de Mémorisation d'informations par les Ordinateurs Les ordinateurs de grande puissance ont des moyens importants de stockage d'informations. Ils sont moins touchés par les problèmes de capacité de stockage que les mini ou micro-ordinateurs. C'est pourquoi je décris ci-dessous les procédés standards de mémorisation utilisés par ces derniers. Ils se basent sur des principes dont se servent tous les ordinateurs. On doit distinguer deux types d'informations - Numériques . Les entiers : nombres entiers compris entre -32768 et +32767. Les nombres en simple précision : nombres avec ou sans virgule compris entre -10 8 et +10+38, ayant au plus 7 chiffres significatifs. . Les nombres en double précision : nombres avec ou sans virgule compris entre ±10-308 et -10+308 , ayant 16 chiffres significatifs au maximum. - Alphanumériques . Groupes de caractères qui sont une combinaison d'un ou de plusieurs caractères disponibles sur le clavier des ordinateurs. Outre la mémoire centrale, un ordinateur utilise des mémoires auxiliaires pour stocker des informations de façon permanente. Les deux sortes de fichiers les plus courants, sur mini et micro ordinateurs, qui permettent de mémoriser des informations sont - Les fichiers à accès séquentiel (sequential access file). Toutes les informations, numériques et alphanumériques, y sont mémorisées sous le standard international ASCII. Cette norme mémorise chaque caractère dans une channe de 8 bits, appelée octet. Un bit ne peut être égal qu'à O ou 1. C'est la plus petite information mémorisable sur un ordinateur. Ainsi, un octet est nécessaire pour mémoriser chaque caractère qu'il soit numérique ou alphanumérique. - Les fichiers à accès sélectif (random access file). Ils apportent une amélioration. Ils donnent la possibilité de mémoriser les informations numériques dans un espace mémoire réduit . 2octets pour un entier. . 4 octets pour un nombre en simple précision. . 8 octets pour un nombre en double précision. Ainsi, le nombre 12196 a besoin de 5 octets pour être mémorisé dans le premier type de fichier. Seuls deux octets sont nécessaires avec les fichiers à accès sélectif. Mais ceux-ci utilisent eux aussi un octet (8 bits) par caractère alphanumérique à mémoriser. Les fichiers à accès sélectif sont plus souvent utilisés que ceux à accès séquentiel, car le temps d'accès aux informations est plus court, et les modifications plus faciles à réaliser. Problèmes Que le fichier soit à accès sélectif ou à accès séquentiel, les informations alphanumériques sont toujours mémorisées en utilisant un octet par caractère. Ainsi l'information "Première invention" a besoin de 18 caractères pour être mémorisée. Même dans le cas des fichiers à accès sélectif, les informations numériques sont mémorisées sous forme figée - Un nombre entier, qu'il soit égal à 3 ou à 29422, est toujours mémorisé sur deux octets. Or deux Octets représentent un nombre (compris entre -32768 et +32767) de 5 chiffres. C'est en fait 00003 qui est mémorisé pour le nombre 3. Les quatre chiffres les plus à gauche (0000) ne contiennent pas d'information "utile", car seul le dernier chiffre (3) donne le contenu de l'information. Quatre chiffres ont ainsi été perdus. - Un montant est une information numérique souvent utilisée dans les applications informatiques. C'est un nombre en simple (au plus 7 chiffres significatifs) ou en double (au plus 16 chiffres) précision. Quatre ou huit octets sont donc utilisés pour le mémoriser. La perte de chiffres utilisables, et donc de bits, est là aussi importante. 3) Equipements Informatiques Disponibles dans le Commerce De nos jours, l'informatique se démocratise-de plus en plus grâce au prix réduit des mini et micro ordinateurs. Ceux-ci sont confrontés à des problèmes de capacité de stockage d'informations sur bande magnétique, disque flexible ou meme disque dur. Ainsi, par exemple, un disque flexible 5 pouces 1/4, double face double densité, a une capacité théorique de stockage d'environ 360000 caractères (un octet est souvent assimilé à un caractère). Bien qu'elle semble importante, cette capacité est souvent dépassée par les applications professionnelles. Trois solutions s'offrent à un utilisateur ayant besoin d'une capacité supérieure de stockage - Retirer et introduire, en cours de traitement, plusieurs disques flexibles (ou tout autre support d'informations) du ou des lecteurs, en nombre limité, dont il dispose. - Multiplier les lecteurs (par exemple, de disques flexibles), ou acheter des lecteurs de supports d'informations plus importants comme des disques durs. - Acheter le micro ordinateur AT d'IBM qui annonce 1,2-.millions de caractères mémorisables sur disque flexible 5 pouces 1/4. La première solution est peu pratique, et conduit à manipuler des supports d'informations de façon répétitive, risquant ainsi de les endommager. Les deux dernières solutions ont le désavantage d'êtres chères. La principale raison qui pousse quelqu'un à acheter un mini ou micro ordinateur est son faible prix par rapport aux services qu'il peut rendre. Dans la plupart des cas, ces solutions lui sont donc inaccessibles financièrement. 4) Transmission d'Informations entre Ordinateurs Il devient de plus en plus courant que les ordinateurs aient besoin d'échanger des informations. L'utilisateur d'un ordinateur, qui désire transmçttre ou recevoir des informations d'un autre ordinateur, prend en compte deux facteurs de coût : - Le cotit de raccordement au réseau de communication. Des modems sont nécessaires pour transformer les informations en signaux véhiculables dans une ligne de communication. - Le coût de la durée de transmission. Il dépend principalement du nombres d'octets (groupes de 8 bits) nécessaires pour représenter l'information à transmettre. Plus ce nombre est petit, et plus le temps de transmission est court. 5) Demande EP numéro 0083393 du 05/09/84 Cette demande a été déposée par SYSTEN DEVELOPPEMENT CORPORATION dans la rubrique GO6F#15/2O. Son titre est "Improved method for compression of the digital representation of english text". Ces deux procédés ont tous deux pour but de réduire l'espace mémoire nécessaire pour mémoriser des informations. Mais ils sont différents dans leur unité mémoire, leur champ d'application, leur performance et leur application industrielle. Je mettrai à jour ces différences dans les pages 19 et 20. 6) Exposé Résumé de l'invention Cette invention diminue, par un facteur d'au moins deux, le nombre d'octets nécessaires pour mémoriser une information dans un ordinateur dont un langage de programmation permet de stocker un entier (nombre compris entre -32768 et +32767) sur deux octets, soit 16 bits Lorsqu'un entier est mémorisé sur 2 octets, ce sont en fait 5 chiffres qui sont mémorisés. Cela revient à dire que si 2 octets sont utilisés pour mémoriser un nombre dont le nombre de chiffres est inférieur aux 5 mémorisables dans cet espace mémoire, c'est comme si l'ordinateur avait rajouté des zéros à gauche du nombre pour le mémoriser (126 mémorisé comme 00126). Le procédé consiste à utiliser chacun des 5 chiffres utilisables sur 2 octets (puisqu'un entier de 5 chiffres maximum peut être stocké sur 2 octets) pour mémoriser des informations numériques et alphanumériques. Un entier mémorisable sur 2 octets doit être compris entre -32768 et +32767. On remarque que le chiffre le plus à gauche ne peut donc être égal qu'à 0, 1, 2 ou 3. Pour limiter cet inconvénient, les groupes de 5 informations, supérieurs à 32 inférieurs à 65536, sont mémorisés sous forme négative par les no compris entre -1 et -32768. Ainsi, par exemple, l'entier -12750 n . autre que le groupe de 5 informations 45517 (-(-12750)+32767). Ainsi l'intervalle des groupes de 5 informations mémorisables sur 2 octets va de 00000 à 65535. Le chiffre le plus à gauche peut ainsi prendre les-valeurs 0, 1, 2, 3, 4, 5 et 6. Dans le cas où le groupe de 5 informations est supérieur à 65535, il est mémorisé en utilisant un zéro pour le premier des 5 chiffres mémorisés.Ainsi pour 78431, les quatres premières informations sont mémorisées dans 2 octets sous la forme 07843, et la dernière information (1) sera le premier des 5 chiffres mémorisables dans les 2 octets suivants, les quatres autres chiffres utilisables-servant à mémoriser d'autres informations. L'unité mémoire de cette invention est donc 16 bits (deux octets) divisés par 4,62 informations mémorisables, ce qui est-égal à 3,47 bits. Le nombre 4,62 est la somme 0,62 + l + 1 + 1 + 1. Les quatres "1" signifient que tous les chiffres de O à 9 peuvent être mémorisés dans les quatre derniers chiffres mémorisables sur 2 octets. Pour le premier chiffre seuls 1, 2, 3, 4 et 5 sont utilisables sans problème, 7, 8 et 9 sont interdis, et O et 6 ne sont utilisables que si l'information suivante est représentée par un chiffre compris entre 0 et 5. Ces limites sont dues au fait que seuls les groupes de 5 informations compris entre 00000 et 65535 sont mémorisables sur 2 octets.Pour le premier chiffre, 6 n'est utilisable que si les informations sont entre 60000 et 65535, d'où un facteur de 0,06 pour le chiffre 6 en première position (0,01 fois nombre de chiffres utilisables en deuxième position si 6 est en première, soit 6 chiffre utilisables (0,1,2,3,4,5)); 0 n'eSt une information que si il n'a pas servi à décaler un groupe de 5 informations supérieur à 65535, d'ou aussi un facteur de 0,06. "0,62" est donc la somme de 0,06 (pour o), 0,5 (0,1 pour 1, 2, 3, 4 eut 5) et 0,06 (pour 6). Pour gagner de la place mémoire, l'invention applique une solution différente selon que l'information à mémoriser est numérique ou alphanumérique. Mais elle utilise toujours une unité mémoire de 3, 47 bits Information numérique Un nombre utilise une unité mémoire par chiffre significatif, une unité par chiffre de l'exposant et une de plus pour le signe de l'exposant. Si le nombre est négatif une unité mémoire supplémentaire indique le signe négatif, s'il est positif aucune unité n'est utilisée. Les unités pour décrire le signe et le contenu de l'exposant ne sont pas utilisées, et donc mémorisées, si un nombre est entier (sans virgule) ou est un montant. Information alphanumérique Dans un texte, chaque mot est isolé, et comparé séparemment à une liste d'environ 40 mots courants comme "il", "dans", "est',,.. . Si le mot en fait partie, lui elles deux blancs (celui à sa droite et l'autre 'à sa gauche) sont mémorisés sur 3 unités mémoires. Ainsi " qui " sera mémorisé sur 3 unités mémoires. Si le mot n'en fait pas partie, il est découpé en voyelles, en groupes de 2 consonnes consécutives, en consonnes isolées, et en signes de ponctuation. Tous les composants sont comparés à des listes types. Le contenu de ces listes est différent suivant la langue dans laquelle le texte est écrit. En cas de succès, trois unités sont utilisées par mot, trois par groupe de 2 consonnes, deux par consonne isolée, deux par signe de ponctuation, une par voyelle et une par blanc. s'il y a plus de quatre blancs, trois unités mémoires sont utilisées pour représenter en mémoire l'ensemble des blancs. En cas d'échec, trois unités mémoires sont utilisées par caractère non courants Remarques Au début d'une information alphanumérique (texte ou mots) et d'une information numérique, une unité mémoire est utilisée pour donner le type de l'information; et zéro, une ou deux unités sont utilisées pour indiquer la longueur de l'information mémorisée. Si un nombre est inclus dans un texte, il est mémorisé selon les règles (décrites en haut de cette page) applicables à une information numérique. Pour le calcul de "0,62" de la page 5, le facteur pour 6 est un peu inférieur à 0,06, et celui pour Oun peu supérieur, d'où 0,12 en tout. 7) Exposé Détaillé de l'Invention Cette invention est efficace quelle que soit la langue dans laquelle les informations sont écrites. Elle utilise chacun des 5 chiffres mémorisables sur deux octets comme unité de mémorisation. L'unité mémoire de l'invention est-3,47~bits. Ce nombre, calculé auparavant indique que 5 unités mémoires peuvent être stockées sur 16 bits; un bit ne pouvant bien sûr pas être découpé en tranches. Une unité mémoire peut servir à mémoriser le type, la longueur ou le contenu de l'information. Le procédé consiste à faire précéder le contenu de l'information de son type et de sa longueur. Mémorisation du Type de l'Information La première unité mémoire(3,47 bits) décrit le type de l'information qui suit. Une unité mémoire peut contenir un chiffre compris entre O et 9 (sauf dans un cas précis sur lequel je reviendrai). Il existe ainsi 10 types d'information suivant la valeur de l'unité mémoire : , 0 : Série de 5 à -106' blancs#-. consécutifs. . 1 : Nombre sans virgule. Il peut avoir jusqu'à 10 chiffres. Si un nombre sans virgule a plus de 10 chiffres, il est considéré comme étant de type 7 avec un exposant nul. S'il est négatif, un zéro est mémorisé dans l'unité mémoire suivant celle qui donne le type. . 2 : Montant. G'est un nombre ayant zéro, un ou des chiffres après la virgule selon l'unité monétaire utilisée par 11 application informatique. Si cette dernière utilise plusieures unités monétaires, l'unité monétaire ayant le maximum de chiffres après la virgule fixe le nombre de chiffres après la virgule. Si le montant est négatif, un zéro est mémorisé dans l'unité mémoire suivant celle du type. . 3 : Série de caractères en minuscules, de--signes de ponctuation, de blancs de-séparation jusqu'à lOOcaractères. S'il y ena-plus, le type est répété autant de fsis que -nécessaire. . 4:Nombre de 10 chiffres au maximum avec un exposant compris entre -10 et+10. L'exposant est mémorisé après le nombre sur une seule unité mémoire. Si le nombre est négatif un zéro est mémorisé après le type. Si l'exposant est positif, un zero est mémorisé av#ant l'exposant; s'il est négatif, c'est un 1 qui est mémorisé avant l'exposant. L'unité mémoire unique qui indique la valeur (sans tenir ici compte du signe) peut contenir un chiffre de O à 9; ce qui est interprété comme une valeur de 1 à 10. La valeur mémorisée correspond à la valeur réelle moins un de l'exposant. La valeur maximale de l'exposant est 10. . 5 : Indicateur de découpage d'information. Il est employé lorsqu'une information est constituée de plusieurs types d'informations. Deux unités mémoires sont utilisées pour indiquer le nombre de morceaux (résultants du découpage par type) qui composent l'information. Elles sont placées après celle indiquant le type 5. . 6 : Indicateur de début d'enregistrement. Un enregistrement est constitué de plusieures informations. . 7 : Nombre de plus de 10 chiffres avec un exposant compris entre -999 et +999 . Cette limite d'exposant est due au fait que trois unités mémoires , pouvant représenter un exposant de 000 à 999,-sont utilisées pour l'exposant. Cette limite peut être repoussée en utilisant plus d'unités mémoires. Si le nombre est négatif, un zéro est mémorisé après l'unité mémoire du type. Comme pour les types, 2 et 4, si-un zéro n'apparait pas après l'unité mémoire du type, le nombre est considéré comme positif.Si l'exposant est négatif un 1 est mémorisé avant i1#x#Q-Sant; atil est-positif, c'est un zéro qui est mémorisé avant 1 'exposant. Comme un exposant peut avoir une valeur commençant par un zéro (alors que seuls les chiffres significatifs du nombre sont mémorisés), on est obligé d'occuper de tout façon une unité mémoire pour le signe de l'exposant. . 8: Série de caractères en majuscules, de pônctuation et de blancs. . 9: Caractère non courant. La liste des caractères courants sera donnée parla suite. Pour résumer, un caractère courant est un mot souvent employé, un groupe de deux consonnes, une lettre de l'alphabet, un blanc ou un signe de de ponctuation. Mémorisation de la Longueur de l'Information Un chiffre de O à 9 pouvant être mémorisé dans chaque unité mémoire destinée à la longueur, et une longueur nulle n'existant pas, le procédé rajoute 1 à l'unité (ou aux unités) mémoire lue (s) pour avoir la longueur réelle de l'information. Ainsi, la longueur maximale qui peut être représentée sur une unité mémoire est 10 et non pas 9, et sur deux unités est 100 et non pas 99. Ce qui accroit les performances. Deux unités mémoires pour la longueur sont utilisées pour les types 0, 3, 7 et 8 , une unité pour les types 1, 2, 4 et aucune pour les types 5, 6 et 9 (un caractère non courant étant presque toujours seul). Le procédé utilisé pour chiffrer la longueur est différent suivant les types . Types 1, 3 et 8 :la longueur indiquée est le nombre réel d'unités, qui ont été utilisées pour mémoriser de façon réduite le contenu de l'information, moins un. . Type O : la longueur indiquée est le nombre réel de blancs moins 5. Mais aucun contenu ne suit les deux unités mémoires de longueur. . Type 2 : Si par exemple l'unité monétaire est le franc (2 chiffres après la virgule), la longueur indiquée est la longueur réelle moins trois unités mémoire . Cela permet d'avoir un montant possible égal à #.999.999.999,99 en n'utilisant qu'une seule unité mémoire pour la longueur. Le procédé ira automatiquement lire deux (dans le cas du franc) unités mémoires de plus, sans oublier celle par défaut. . type 4 et 7 : la longueur indiquée est le nombre d'unités mémoire moins une, que le procêdé a utilisé pour mémoriser le nombre. L'invention ira automatiquement lire l'unité suivante pour avoir le signe de l'exposant, et l'unité (type 4) ou les trois unités (type 7) donnant la valeur non signée de l'exposant. Dans le cas du type 0, c'est à dire de la série de blancs, il semble curieux qu'elle ne démarre qu'à partir de 5 blancs. Ceci est du au fait qu'en dessous de 5 blancs, il est préférable de considérer le blanc comme un caractère courant (et donc de rester dans le type 0) pour minimiser le nombre d'unités mémoires utilisées. Un exemple de ce cas sera donné plus loin. Remarque Dans le cas d'une application bien spécifique, n'utilisant jamais un ou plusieurs des 10 types, comme par exemple les nombres de plus de 10 chiffres avec (ou-sans) un exposant, il est possible de créer un type propre à l'application. Ceci permet de réduire encore plus l'espace mémoire nécessaire pour mémoriser les informations. Mémorisation du Contenu de l'Information Je rappelle qu'une unité de mémorisation est un des 5 chiffres mémorisables sur 2 octets. Une unité correspond à 3,47 bits. Si l'information est numérique, les chiffres mémorisés sont les mêmes que ceux dont le nombre est forme. Si l'information est alphanumérique, les caractères non numériques contiennent soit leur position dans une table de correspondance, soit leur codification décimale ASCII sur 3 unités mémoires si les caractères ne sont pas dans une table. Une, deux ou trois unités sont utilisées pour représenter une position si le ou les caractactères sont dans une table. Le contenu des tables correspond à une langue précise. Il doit donc correspondre à la langue de celui qui utilise un programme équipé de de ce procédé d'écriture-lecture d'informations. Il y a trois tables de correspondance : - Table 1. Elle contient les 6 caractères qui apparaissent le plus souvent dans un texte. Le blanc est l'un d'entre eux. Pour le français, les 5 autres sont "a", "e", "i", "o" et "u". Le caractère " " (ou blanc) est mémorisé par 0. .. ......... "a" ... ........ ... 1. .. ......... "e" ... ........ ... 2. .. ......... "i" ... ........ ... 3. .. ......... "o" ... ........ ...4. .. ......... 'lu" ... ........ ... 5. Il suffit ainsi d'une seule unité mémoire pour mémoriser un des six caractères. Ainsi, le caractère "i" qui avait besoin de 8 bits pour être mémorisé, en utilise 3,47(un des 5 chiffres mémorisables sur 2 octets) grâce à ce procédé. - Table 2. Elle a 100 éléments. Elle contient environ 50 mots courants et environ 50 groupes courants de 2 consonnes. Un exemple est donné pour le français. Le mot " à " est mémorisé par 600. .. ..."au " ........ ... ... 601. (ainsi de suite jusqu'à environ 649) .. ... " vous" ... ... 649. Trois unités mémoires suffisent 'pour mémoriser un de ces mots courants, Ainsi, par exemple, le mot " même " avait besoin de -48 bits (8 bits par caractère ou blanc) pour être mémorisé. Seulement 10,41 bits (3 de#s 5 chiffres mémorisables sur 16 bits) sont nécessaires avec ce procédé. La fin de la table contient environ 50 groupes de deux consonnes. Le groupe de deux consonnes "bc" est mémorisé par 650. .. ...... .. .... ......... "bl" ........ ... ... 651. .. ........ .... ......... "br" ........ ... 652. (ainsi de suite jusqu'à 699) .. ........ .... ......... "tt" ........ ... 698. .. ........ .... ......... "vr" ........ ... 699. Trois unités mémoires sont suffisantes pour mémoriser un de ces groupes courants de deux consonnnes. Les deux consonnes "lt" avaient besoin de 2 fois 8 bits, soit 16 bits pour la mémorisation. Seuls 10,41 bits sont ici utilisés: - Table 3. Elle a 30 éléments dont 10 signes de ponctuation qui sont les les caractères " : " ", " ". " "'" " (" ") " " " "; " """ (double côte) et "-". Les 20 autres caractères sont des consonnes de l'alphabet et d'autres caractères. Pour le français, ce sont les consonnes de l'alphabet sauf "k", "x", "z" et "w" (si un de ces caractères apparait quand même dans un mot, il est mémorisé sous sa forme décimale ASCII sur trois unités mémoires), plus les caractères "y", "é", "è" et "ç". Le caractère "y" est mémorisé par 70. (ainsi de suite jusqu'à 73) .. ......... "ç" ........ ... 73. La consonne "b" est mémorisée par 74. (ainsi de suite jusqu'à 89) .. ........ "v" ... ........ ... 89. Le signe " : " est mémorisé par 90. (ainsi de suite jusqu'à 99) .. ..... "-" ... ........ ... 99. Deux unités mémoires suffisent pour mémoriser l'un de ces 30 éléments. Certains signes de ponctuation sont toujours suivis d'un blanc dans un texte. C'est pour cela que par exemple une virgule et un blanc, soit ", ", sont mémorisés par 91. 8,94bits sont utilisés alors qufil en fallait 16 auparavant. Remarques k A- chaque fois que j'ai utilisé deux doubles côtes pour encadrer un ou plusieurs caractères, et que parmis ceux-ci il y avait un ou plusieurs blancs (ou espaces), il fallait les prendre en compte. Si l'information alphanumérique est composée~de~maJusUules,- il suffit d'utiliser le type 8 au lieu du type 3 utilisé pour les minuscules, Lorsque les chiffres 92 sont utilisés, ils signifient une chose supplémentaire que le simple fait qu'un point et une virgule sont dans le texte. Ils signalent aussi que le caractère suivant est en majuscule. Ceci évite de devoir passer au type 8 (majuscules) alors que le type 3 (minuscules) å été utilisé au début et sera utilisé tout de suite après la majuscule de début de phrase. La table de correspondance 1 a des indices allants de O à 5, la table 2 des indices qui vont de 600 à 699, et la table 3 des indices compris entre 70 et 99. Si l'on prend le premier chiffre de chacun des indices, on remarque que ce sont les chiffres 0, 1, 2, 3, 4, 5, 6, 7, 8 et 9. Ainsi lorsque le procédé ira lire les informations qu'il a précedemment mémorisées, il saura en lisant le premier chiffre, correspondant à une position, de quelle table il s'agit. si c'est un des chiffres 0, 1, 2, 3, 4 ou 5, il ira directement chercher dans la table 1 le caractère correspondant. Si c'est le chiffre 6, il lira les deux chiffres suivants et ira chercher dans la table 2 les caractères correspondants à ces trois chiffres.Si c'est un des chiffres 7, 8 ou 9, il lira le chiffre suivant et ira chercher en utilisant ces deux chiffres le (ou les deux dans le'cas des signes de ponctuation) caractère correspondant dans la table 3. Le contenu de ces trois tables a été constitué en étudiant la fréquence d'apparition des caractères, des groupes de 2 consonnnes et des mots dans un texte. Les éléments contenus dans les tables sont ainsi ceux les plus couramment utilisés dans la langue de l'utilisateur de de l'ordinateur quine sert de ce procédé pour lire et écrire des informations. Exemple 1 Lorsqu'un informaticien conçoit une application informatique, il décide du nombre maximum de caractères que chaque information peut avoir. En effet, les informations numériques et alphanumériques sont mémorisées avec des longueurs fixes dans les fichiers par les procédés classiques de mémorisation. Il fixe par exemple que le nom d'un article en stock peut avoir jusqu'à 20 caractères. Si l'article en stock est une pince, c'est l'information "pince " qui sera mémorisée, c'est à dire le mot pince suivi de 15 blancs. Il faut 160 bits (20 fois 8 bits) pour la mémoriser par un procédé classique. L'invention mémorise cette même information par -173630684306652010 L'entier -17363 n'est autre que le groupe de 5 chiffres 50130 (-(-17363)+32767). L'explication de ce calcul a été donné à la page 5. Il a ainsi fallu seulement 16 + 16 + 16 + 9,6 (16-16/5-16/5 puisque les deux derniers chiffres peuvent être utilisés pleinement par l'information suivante) bits, soit un total de 57,6 bits pour mémoriser cette information, alors qu'il en faut 160 avec un procédé classique. Chaque groupe de 5 chiffres correspond à 2 octets, ou r6 bits. Les deux derniers chiffres non utilisés dans le dernier groupe de 2 octets serviront à mémoriser le début de l'information suivante. Après avoir reconstitué les 5 premiers chiffres 50130, le procédé analyse 501300684306652010 de la façon suivante . 5 : Indicateur de découpage. Le procédé sait maintenant qu'il doit lire les deux chiffres suivants pour connattre le nombre de morceaux qui composent l'information. . 01 : Il y a donc 01 + 1 = 2 morceaux. En effet, le nombre mémorisé de morceaux est le nombre réel moins un. Le procédé sait que le chiffre suivant contient le type du premier morceau. . 3 : Type pouvant contenir des caractères en minuscules, des signes de ponctuation et des blancs (comme il y a plus de 5 blancs, le type 0 est utilisé par la suite pour mémoriser les 15 blancs). Le type 3 utilise toujours deux chiffres pour indiquer le nombre de chiffres qui mémorisent le contenu de l'information. Le procédé lit les deux chiffres suivants en le sachant. . 006 : Il y a 3 chiffres. C'est du au fait que lors de la lecture des 2 chiffres suivants le type, le procédé a trouvé un zéro dans le premier chiffre des 2 octets suivants. Il l'a interprété comme une information destinée seulement à décaler le chiffre suivant d'une position. En effet, six (suivi de huit) ne peut pas être mémorisé dans le premier des cinq chiffres mémorisables sur 2 octets (le nombre maximum étant 65535). Il y a donc 06 + 1 = 7 chiffres de type 3. Les chiffres suivants jusqu'au septième sont donc interprétés comme donnant le contenu de l'information. . 84 : Caractère "p". Le procédé a lu le premier chiffre 8. Comme il sait qu'il faut 2 chiffres lorsque le premier chiffre lu est 7, 8 ou 9, il a lu le suivant qui est 2. 84 est la position du caractère "p" dans la table 3. . 3 : Caractère "i". Puisque le procédé sait que si le premier chiffre lu est 0, 1, 2, 3, 4 ou 5, ce chiffre suffit à lui seul pour indiquer la position d'un caractère dans la table 1, il n'a pas lu d'autres chiffres. 3 est la position du caractère "i" dans la table 1. . 0665 : groupe de 2 consonnes "nc". Le O du début est le premier des cinq chiffres mémorisables sur 2 octets. Il n'a servi qu'à décaler le chiffre suivant 6 d'une position. 6 est donc interprété comme le premier chiffre. Or lorsque le premier chiffre est 6, le procédé sait qu'il en faut deux autres pour donner la position des caractères correspondants dans la table 2, il a ainsi lu les deux suivants. 665 est la position de "nc" dans la table 3. . 2 : Caractère "e". 2 est la position du caractère "e" dans la table 1. Sept chiffres ayant été lus (le chiffre 0 apparu avant 665 n'a pas été compté car ce n'est qu'une information de décalage), le procédé va interpréter le suivant comme une information donnant un type. . 0 : Type mémorisant une série de 5 à 106 blancs. Bien que O se trouve être le premier des 5 chiffres mémorisables sur 2 octets, il fil'a pas été interprété comme une information de décalage comme précédemment, car le chiffre suivant est le chiffre 1 qui peut être mémorisé dans le premier des 5 chiffres mémorisables sur 2 octets, et qui n'a donc pas besoin d'être décalé. Le procédé va lire les deux chiffres suivants en sachant qu'ils indiquent le nombre de blancs mémorisés. 10 : Il y a donc 10 + 5 = 15 blancs. En effet le nombre mémorisé de blancs est le nombre réel moins cinq.# Au début de la mémorisation de l'information "pince ", le procédé avait précisé lors de l'écriture que l'information mémorisée avait deux morceaux, ceux-ci ayant été lus, l'information est considérez comme entièrement reconstituée, ce qui est le cas. L'application informatique dite de traitement de texte qui consiste à saisir un texte entier (lettre, rapport, compte rendu) ne représente qu'une petite partie de toutes les applications existantes. La grande majorité des programmes saisissent et mémorisent les informations numériques et alphanumériques une à une, comme dans cet exemple pour le nom de l'article en stock. Exemple 2 Une information qui apparat souvent dans les applications informatiques est un montant. Un procédé classique de mémorisation le considère comme un nombre en simple (montant maximum 99.999,99) ou en double (si le montant doit pouvoir prendre une valeur supérieure à 99.999,99) précision. Il faut respectivement 32 bits (4 octets) et 64 bits (8 octets) sur micro-ordinateur pour mémoriser un montant. Un montant peut être supérieur à 99.999,99, c'est donc sur 64 bits qu'il est généralement mémorisé par un procédé classique. Une fois ce nombre de bits fixés même si un montant inférieur à 100.000,00 est tapé par l'utilisateur, il sera de toute façon mémorisé sur 64 bits. Soit le montant 12.851,25. Il a donc normaîlement besoin de 64 bits pour être mémorisé. L'invention mémorise cette même information par : 24128-18486 Chaque groupe de 5 chiffres correspond à 2 octets. Le dernier groupe contient l'entier négatif -18486. A la page 5, j'ai expliqué que les groupes de 5 chiffres compris entre 32768 et 65535 sont mémorisés sous forme négative, respectivement par les entiers compris entre -1 et -32768, pour-accroitre l'intervalle des groupes de 5 chiffres mémorisables sous forme d'entier sur 2 octets. L'intervalle va ainsi jusqu'a 65535. L'entier négatif mémorisé -18486 n'est ainsi donc que le groupe de 5 unités mémoires 51253 ( -(-18486)+32767 ). Le dernier chiffre (3) de ces cinq chiffres ne fait pas partie de 11 information 12.851,25. 3 est le premier chiffre de l'information suivante qui est donc une série de caractères en minuscules, de signes de ponctuation et de blancs, puisqu'elle est de type 3. Ce chiffre 3 a été pris au hasard Il confirme simplement le fait que lorsque l'invention n'utilise pas entièrement les 5 chiffres utilisables sur 2 octets pouP-mémoriser une information, les chiffres non employés ne sont pas perdus puisqu'ils servent à mémoriser l'information suivante. Il a ainsi fallu 16 + 12,8 (16-16/5, puisque le dernier chiffre peut être pleinement utilisé par l'information suivante) bits, soit un total de- 28,8 bits pour mémoriser l'information 12.851,25 alors qu'il faut 64 bits avec un procédé, classique. Après avoir reconstitué les chiffres 51253 à partir de -18486, l'interprétation de 241285125 par le procédé est . 2 : Montant. Le chiffre 2 indique que l'information mémorisée est un montant. Le procédé sait qu'il doit lire le chiffre suivant pour connaître le nombre de chiffres utilisés pour mémoriser le montant. .4: Il y a donc 4 + 2 + 1 = 7 chiffres. Le nombre de chiffres après la virgule d'un montant dépend de l'unité monétaire utilisée. Ce--nombre de chiffres est indique à l'invention avant le début de toute mémorisation. Cela permet de n'utiliser qu'une seule unité mémoire (un des 5 chiffres mémorisables sur 2 octets) pour mémoriser la longueur d'un-montant-pouvant avoir jusqu'à 10 c#hiffres avant la virgule; soit ~ un maximum de 9.999.999.999,99 pour un montant exprimé en francs. Bien que cette limite est importante, si un montant lui est supérieur, il sera mémorisé grâce au type 7. Ainsi, une longueur supplémentaire de 2 est #sous-entendue, et rajoutée automatiquement à celle mémorisée. Le chiffre 1 supplémentaire vient du fait que le chiffre (4) mémorisé indique le nombre réel de chiffres avant la virgule moins un. Le procédé va donc interpréter les 7 chiffres suivants comme étant ceux qui donnent le contenu du montant. 1285125 : Le montant est donc égal à 12.851,25. Remarque 1 L'application de ce procédé d'écriture-lecture d'informations en mémoire à un programme de traitement de texte donne des résultats moins spectaculaires que dans les deux exemples précédents. Un programmme de traitement de texte est un outil qui permet d'écrire et de modifier un texte quelconque de façon aisé. La mémorisation d'un texte par le procédé reprend les éléments décrits dans les exemples 1 et 2. Les seules différences concernent les signes de ponctuation (table 3) et les mots courants (table 2), comme par exemple " c'est " qui est normallement mémorisé en utilisant 56 bits (8 bits par caractère ou blanc), alors que le procédé le mémorise par 3 unités mémoires, soit 10,41 bits (3 fois 3,47 bits) au total. L'invention divise par un facteur d'environ 2 la pl#ace mémoire nécessaire pour mémoriser un texte. Ainsi les deux phrases : "Les arbres ont des fruits. C'est l'été." sont mémorisées en utilisant 312 bits (39 fois 8 bits) par un procédé classique de mémorisation. L'invention permet de n'utiliser que 153,6 bits (18 octets et 3 des 5 chiffres mémorisables sur les 2 octets suivants, soit(18 fois 8)+ 16 - 3,2 - 3,2 bits). Elle prend par exemple en compte le fait qu'une majuscule commence toujours un texte ou une phrase. Remarque 2 Lorsqu'un groupe de 5 informations élémentaires a été constitué, le procédé qui consiste à en faire un entier de 5 chiffres, n'est autre que la multiplication de la première information par 10000, de la seconde par 1000, de la troisième par 100 de la quatrième par 10. On additionne ensuite ces 4 résultats et la dernière information élémentaire pour avoir un nombre de 5 chiffres. L'opération inverse est effectuée lors de la lecture d'une information mémorisée par ce procédé. Remarque 3 Lorsqu'un programmeur fait appel à ce procédé pour écrire ou lire des informations dans une mémoire, il indique par l'intermédiaire d'une table unique appelée par exemple L..INCH le type de chaque information. Ceci permet au procédé de ne pas avoir à analyser, pour les programmes où les informations sont saisient une à une et donc bien définies, le type des informations, d'où un gain de temps. 8) Application Industrielle Cette invention peut être utilisée par les programmes comme interface logique entre eux mêmes et les mémoires permanentes telles que les bandes magnétiques, les disques souples ou les disques durs. Au lieu d'utiliser les instructions (d'écritures et de lectures d'informations) fournies par le langage de programmation, les programmes feront appels à ce procédé, qui sera accessible sous forme d'un module écrit dans le même langage de programmation ou en langage assembleur. Ce module d'écriture-lecture d'informations peut ainsi être rattaché à un programme lors d'une compilation par une opération dite de "linkage". L'avantage est énorme. Cette invention permet de filtrer les informations lors de toutes les lectures et les écritures sur supports d'informations de façon à doubler la capacité de stockage de ces supports de manière entièrement transparente pour l'utilisateur de l'ordinateur. Ce qui permet de résoudre des problèmes de capacité de stockage insuffisante sans achat de nouveaux matériels. Ce procédé ne peut pas être assimilé à un programme car il est applicable à pratiquement tous les langages de programmation et donc à la très grande majorité des ordinateurs disponibles dans le commerce. En divisant par un facteur d'environ deux le nombre de bits nécessaires pour représenter une information, il divise aussi le nombre de bits à utiliser pour transmettre cette même information. Le temps de transmission d'informations, contenues au départ dans des fichiers écrits en utilisant cette invention, est ainsi divisé par environ deux. Le coût de la transmission , qui est fonction du temps de transmission, lui#même fonction du nombres de bits à transmettre, étant ainsi divisé les entreprises décentraliseront plus facilement l'outil informatique. Ceci quel que soit cet outil informatique (ou ordinateur) puisque cette invention est applicable à pratiquement tous les ordinateurs. 9) Comparaison entre cette invention et la demande EP numéro 0083393 Ces deux procédés ont tous deux pour but de réduire l'espace mémoire nécessaire pour mémoriser des informations. Mais ils sont différents dans leur unité de mémorisation, leur champ d'application, leur performance et leur application industrielle. Pour simplifier les références à ces deux procédés, j'appelle "FR" le procédé d'origine FRançaise et "AM" le procédé numéro 0083393 d'origine AMéricaine. Unité de mémorisation "AM" utilise 4 bits comme unité de mémorisation, alors que "FR" utilise seulement 3,47 bits. En effet, l'invention décrite dans ce dossier utilise chacun des cinq chiffres mémorisables sur deux octets comme unité de mémorisation. Le calcul qui a conduit au nombre 3,47 a été décrit à la page 5. Ainsi "FR" est supérieur à "AM" car par exemple 348 bits pourront contenir 100 informations en utilisant "FR" (348 divisé par 3,47), alors que "AM" n'arrive à y faire tenir que 87 informations (348 divisé par 4). Champ d'Application "AM" réduit l'espace nécessaire pour mémoriser un texte, "FR" fait beaucoup plus. La mémorisation d'un texte concerne principalement les programmes de traitement de texte, or, ce type de programme ne représente qu'environ 10% de toutes les applications informatiques. Les autres programmes saisissent les informations numériques et alphanumériques une à une. "FR" traite séparemment le cas des blancs, des nombres sans virgule, des montants, des nombres d'au plus 10 chiffres avec un-exposant compris entre -10 et +10, des nombres de plus de 10 chiffres avec un exposant compris entre -999 et +999 (un tel nombre avec un exposant 0 n'est autre qu'un nombre de plus de 10 chiffres sans virgule), des caractères en minuscules, des caractères en majuscules. "FR" mémorise ainsi de façon plus efficace chacun de ces groupes, alors que "AM!' traite par exemple tous les nombres de la ~même manière. Décomposition de l'Information Si "AN" ne trouve pas un mot dans ses tables de correspondance, il décompose le mot en suffixes et en préfixes qu'il compare à des tables. Le procédé utilisé par "FR" est différent. Si "FR" ne trouve pas un mot dans sa table de correspondance, il le décompose, non pas en suffixes 'et en préfixes commme "AM", mais en voyelles, en groupes de deux consonnes, et en consonnes qu'il compare à des tables. Si "AM" trouve un mot dans une table, il le mémorise et lui seul par sa position dans la table. Si "FR" trouve un mot dans une table, il le mémorise lui et les deux blancs (ou espaces) qui l'encadrent par une seule position dans la table. D'où un gain supérieur de place mémoire-(Si un mot courant commence une information et qu'aucun blanc ne le précède "FR" en tient compte). Les deux procédés sont donc différents dans la façon dont ils décomposent l'information pour la mémoriser. Application industrielle L'application industrielle décrite dans le procédé "AM" est un circuit électronique faisant partie de l'architecture d'un ordinateur. Elle est donc applicable à un ordinateur lors de sa construction. Les ordinateurs actuels non équipés de ce##ircùit:électronique doivent se contenter de la capacité standard de leurs mémoires permanentes. L'application industrielle du procédé "FR" décrit dans ce dossier est une interface logique, et donc écrite dans un langage de programmation, entre un programme d'ordinateur'et les mémoires permanentes, comme par exemple les bandes, les-disqUes souples-eti-du~fS,de lrordinateur. La seule restriction est que le langage de programmation utilisé puisse mémoriser un entier (nombre compris entre -32768 et 32767) sur deux octets. Le basic et l'assembleur-qui'sont les.langages#les# plus utilisés sur les mini et micro-ordinateurs le permettent par exemple. Alors que le procédé "AM" ne peut s'appliquer qu'à un ordinateur conçu électroniquement de manière à appliquer ce procédé; "FR't est applicable à la grande majorité des ordinateurs actuels sans achat d'un matériel supplémentaire. REVENDICATIONS 1) Procédé, multipliant par environ deux la capacité de mémorisation des ordinateurs et divisant d'autant le temps de transmission d'informations entre ordinateurs, caractérisé par l'utilisation de chacun des cinq chiffres mémorisables sur deux octets comme unité de mémorisation, et applicable à tous les ordinateurs dont un des langages de programmation permet de stocker un entier (nombre entier compris entre -32768 et +32767) sur deux octets, quelle que soit la langue des informations. 2) Procédé selon la revendication 1 caractérisé en ce que l'unité mémoire est de 3,47 bits grâce à la mémorisation de cinq informations élémentaires sur deux octets, avec un signe positif si le groupe de cinq informations est compris entre 00000 et 32767, avec un signe négatif et donc par les entiers allant de -1 à -32768 si le groupe de cinq informations est compris entre 32768 et 65535, et de façon décalée d'un chiffre vers la droite si le groupe de 5 informations est compris entre 65536 et 99999. 3) Procédé selon l'une quelconque des revendications précédentes caractérisé par la multiplication par-des-puissances de 10, allant de 104 à 100 (lors de l'écriture), des informations et par la division de ces mêmes informations par les mêmes puissances de 10 lors de leur lecture, aprés qu'elles aient été reconstituées dans leur forme originale, si elles avaient été mémorisées par le procédé sous forme négative ou décalée; Ceci pour-créer et décomposer des entiers de 5 chiffres. 4) Procédé selon l'une quelconque des revendications précédentes caractérisé par l'utilisation d'une unité mémoire pour indiquer le type de l'information, de zéro, une ou deux unités mémoires pour indiquer la longueur de l'information, d'une unité mémoire pour indiquer que le nombre ou son exposant est négatif, de zéro unité mémoire pour le signe si le nombre est positif. 5) Procédé selon l'une quelconque des revendications précédentes caractérisé par une mémorisation particulière pour chacun des groupes suivants : les blancs (ou espaces), les nombres sans virgule jusqu'à dix chiffres, les montants, les séries de caractères en minuscules accompagnées de signes de ponctuation et de blancs, les séries de caractères en majuscules accompagnées de. signes de ponctuation et de blancs, les nombres de 10 chiffres au maximum avec un exposant compris entre -10 et +10, les nombres de plus de 10 chiffres avec un exposant compris entre -999 et +999 (si l'exposant est nul, cela revient à un nombre de plus de 10 chiffres sans virgule), les caractèves peuutilisEs, les enregistrements et les informations composées de plusieurs types d'informations. 6) Procédé selon l'une quelconque des revendications précédentes caractérisé par la décomposition, en voyelles, en groupes de deux consonnes et en consonnes isolées, que ce procédé effectue s'il ne trouve pas un mot à mémoriser dans une table de cgrrespondance. 7) Procédé selon l'une quelconque des revendications précédentes caractérisé par la mémorisation d'un mot courant et des deux blancs qui l'encadrent (s'il y en a) par trois unités mémoires. 8) procédé selon l'une quelconque des revendications précédants la revendication 7 caractérisé par la mémorisation d'un groupe courant de deux consonnes par trois unités mémoires. 9) Procédé selon l'une quelconque des revendications précédants la revendication 7 caractérisé par la mémorisation de chacun des six caractères les plus courants dans un texte, par une unité mémoire. 10) Procédé selon l'une quelconque des revendications précédants la revendication 7 caractérisé par la mémorisation des 30 caractères ou signes de ponctuation les plus courants, après les six premiers, par deux unités mémoires. 11) Procédé selon l'une quelconque des revendications précédants la revendication 7 caractérisé par la mémqrisation d'aucun chiffre non significatif lorsqu'il mémorise un nombre; 12) Procédé selon l'une quelconque des revendications précédants la revendication 7 caractérisé par la mémorisation d'une série de-blancs par sa longueur et non pas par son contenu.