Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

La norme ASCII a été adoptée en 1963 et désormais, presque personne n'utilise un codage dont les 128 premiers caractères diffèrent de l'ASCII. Cependant, jusqu'à la fin du siècle dernier, EBCDIC était activement utilisé - le codage standard des mainframes IBM et de leurs clones soviétiques des ordinateurs EC. EBCDIC reste le codage principal dans z/OS, le système d'exploitation standard pour les mainframes IBM Z modernes.

Ce qui frappe immédiatement quand on regarde EBCDIC, c'est que les lettres ne sont pas alignées : entre I и J et entre R и S il y avait des positions inutilisées (sur l'ordinateur ES pour ces intervalles distribué caractères cyrilliques). Qui aurait pensé à coder des lettres avec des espaces inégaux entre lettres adjacentes ?

Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

Le nom même EBCDIC (« Extended BCDIC ») laisse entendre que cet encodage - contrairement à ASCII - n'a pas été créé de toutes pièces, mais basé sur l'encodage BCDIC à six bits, utilisé depuis IBM 704 (1954):

Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

Il n'y a pas de compatibilité ascendante immédiate : une fonctionnalité pratique de BCDIC qui a été perdue lors de la transition vers EBCDIC était que les nombres 0-9 correspondent aux codes 0-9. Cependant, il existe des écarts de sept codes entre I и J et en huit codes entre R и S sont déjà allés au BCDIC. D'où viennent-ils?

L'histoire du (E)BCDIC commence en même temps que celle d'IBM, bien avant les ordinateurs électroniques. IBM est née de la fusion de quatre sociétés, dont la plus avancée technologiquement était la Tabulated Machine Company, fondée en 1896 par Herman Hollerith, l'inventeur tabulatrice. Les premières tabulatrices comptaient simplement le nombre de cartes perforées perforées à un endroit précis ; mais en 1905 Hollerith commença la production décimal tabulateurs. Chaque carte de la tabulatrice décimale était constituée de champs de longueur arbitraire, et les nombres écrits dans ces champs sous la forme décimale habituelle étaient additionnés sur l'ensemble du jeu. La répartition de la carte en champs a été déterminée en connectant les fils sur le panneau de brassage de la tabulatrice. Par exemple, sur cette carte perforée Hollerith, stocké à la Bibliothèque du Congrès, le numéro 23456789012345678 est clairement estampillé, inconnu car divisé en champs :

Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

Les plus attentifs auront peut-être remarqué que sur la carte Hollerith, il y a 12 rangées pour les trous, bien que dix suffisent pour les chiffres ; et en BCDIC, pour chaque valeur des deux bits de poids fort, seuls 12 codes sont utilisés sur 16 possibles.

Bien entendu, ce n’est pas une coïncidence. Initialement, Hollerith prévoyait des lignes supplémentaires pour les « marques spéciales » qui n'étaient pas additionnées, mais simplement comptées - comme dans les toutes premières tabulatrices. (Aujourd'hui, nous les appellerions « champs de bits ».) De plus, parmi les « marques spéciales », il était possible de définir des indicateurs de groupe : si la tabulation nécessitait non seulement les sommes finales, mais aussi les sommes intermédiaires, alors la tabulatrice s'arrêterait lorsque il a détecté un changement dans l'un des indicateurs de groupe et l'opérateur a dû réécrire les sous-totaux des tableaux numériques sur papier, réinitialiser le tableau et reprendre la tabulation. Par exemple, lors du calcul des soldes comptables, un groupe de cartes pourrait correspondre à une date ou à une contrepartie.

En 1920, alors que Hollerith avait déjà pris sa retraite, des « tabulatrices à dactylographie » furent utilisées, qui étaient connectées à un télétype et pouvaient imprimer elles-mêmes les sous-totaux sans nécessiter l'intervention d'un opérateur. La difficulté était maintenant de déterminer à quoi faisait référence chacun des numéros imprimés. En 1931, IBM décide d'utiliser des « marques spéciales » pour indiquer les lettres : une marque dans la 12ème rangée indiquait la lettre de A à I, au 11ème - de J à R, à zéro - de S à Z. La nouvelle « tabulatrice alphabétique » pourrait imprimer le nom de chaque groupe de cartes ainsi que les sous-totaux ; dans ce cas, la colonne ininterrompue s'est transformée en un espace entre les caractères. Veuillez noter que S est désigné par la combinaison de trous 0+2, et la combinaison 0+1 n'a pas été utilisée à l'origine de peur que deux trous côte à côte dans la même colonne ne provoquent des problèmes mécaniques dans le lecteur.

Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

Vous pouvez maintenant regarder le tableau BCDIC sous un angle légèrement différent :

Pourquoi les lettres ne sont-elles pas alignées dans EBCDIC ?

Sauf que le 0 et l'espace sont inversés, les deux bits de poids fort définissent la « marque spéciale » qui est poinçonnée sur la carte perforée pour le caractère correspondant depuis 1931 ; et les quatre bits les moins significatifs déterminent le chiffre inscrit dans la partie principale de la carte. Prise en charge des symboles & - / a été ajouté aux tabulatrices IBM dans les années 1930, et le codage BCDIC de ces caractères correspond aux combinaisons de trous perforées pour eux. Lorsque la prise en charge d'un nombre encore plus grand de caractères était nécessaire, la ligne 8 était poinçonnée comme une « marque spéciale » supplémentaire - ainsi, il pouvait y avoir jusqu'à trois trous dans une colonne. Ce format de cartes perforées est resté quasiment inchangé jusqu'à la fin du siècle. En URSS, ils ont abandonné les codages latins et de ponctuation d'IBM, et pour les lettres cyrilliques, ils ont percé plusieurs « marques spéciales » à la fois dans les lignes 12, 11, 0 - sans se limiter à trois trous dans une colonne.

Lors de la création de l'ordinateur IBM 704, ils n'ont pas réfléchi longtemps au codage des caractères : ils ont pris le codage déjà utilisé dans les cartes perforées à l'époque et l'ont seulement « mis à sa place ». En 0, lors de la transition de BCDIC à EBCDIC, les quatre bits de poids faible de chaque symbole sont restés inchangés, bien que les bits de poids fort aient été légèrement mélangés. Ainsi, le format de carte perforée choisi par Hollerith au début du siècle dernier a influencé l'architecture de tous les ordinateurs IBM, jusqu'à l'IBM Z inclus.

Source: habr.com

Ajouter un commentaire