Per què les lletres no són consecutives a EBCDIC?

L'estàndard ASCII es va adoptar el 1963, i ara gairebé ningú fa servir una codificació els primers 128 caràcters de la qual difereixen de l'ASCII. No obstant això, fins a finals del segle passat, EBCDIC es va utilitzar activament: la codificació estàndard per als mainframes IBM i els seus ordinadors EC clons soviètics. EBCDIC segueix sent la codificació principal a z/OS, el sistema operatiu estàndard per als mainframes moderns d'IBM Z.

El que de seguida et crida l'atenció en mirar EBCDIC és que les lletres no estan seguides: entre I и J i entre R и S hi havia posicions no utilitzades (a l'ordinador ES per a aquests intervals distribuïts caràcters ciríl·lics). Qui hauria pensat codificar lletres amb espais desiguals entre lletres adjacents?

Per què les lletres no són consecutives a EBCDIC?

El mateix nom EBCDIC ("Extended BCDIC") indica que aquesta codificació, a diferència d'ASCII, no es va crear des de zero, sinó que es va basar en la codificació BCDIC de sis bits, que s'ha utilitzat des de IBM 704 (1954):

Per què les lletres no són consecutives a EBCDIC?

No hi ha cap retrocompatibilitat immediata: una característica convenient de BCDIC que es va perdre en la transició a EBCDIC va ser que els números 0-9 corresponen als codis 0-9. Tanmateix, hi ha llacunes de set codis entre ells I и J i en vuit codis entre R и S ja ha estat a BCDIC. D'on venien?

La història de (E)BCDIC comença simultàniament amb la història d'IBM, molt abans dels ordinadors electrònics. IBM es va formar com a resultat de la fusió de quatre empreses, de les quals la més avançada tecnològicament va ser la Tabulating Machine Company, fundada el 1896 per Herman Hollerith, l'inventor. tabulador. Els primers tabuladors simplement comptaven el nombre de targetes perforades perforades en un lloc específic; però el 1905 Hollerith va començar la producció decimal tabuladors. Cada carta per al tabulador decimal constava de camps de longitud arbitrària, i els números escrits en aquests camps en la forma decimal habitual es sumaven a tota la baralla. El desglossament del mapa en camps es va determinar connectant els cables al tauler de connexió del tabulador. Per exemple, en aquesta targeta perforada de Hollerith, emmagatzemat a la Biblioteca del Congrés, el número 23456789012345678 està clarament segellat, desconegut com a dividit en camps:

Per què les lletres no són consecutives a EBCDIC?

Els més atents potser s'han adonat que al mapa de Hollerith hi ha 12 files per a forats, encara que amb deu n'hi ha prou per als números; i en BCDIC, per cada valor dels dos bits més significatius, només s'utilitzen 12 codis dels 16 possibles.

Per descomptat, això no és una casualitat. Inicialment, Hollerith pretenia files addicionals per a "marques especials" que no es van sumar, sinó que simplement es van comptar, com en els primers tabuladors. (Avui els anomenaríem “camps de bits”.) A més, entre les “notes especials” era possible establir indicadors de grup: si la tabulació requeria no només les sumes finals, sinó també les intermèdies, el tabulador s'aturaria quan va detectar un canvi en qualsevol dels indicadors del grup, i l'operador va haver de reescriure els subtotals dels taulers digitals en paper, restablir el tauler i reprendre la tabulació. Per exemple, quan es calculen els saldos comptables, un grup de targetes podria correspondre a una data o una contrapart.

L'any 1920, quan Hollerith ja s'havia retirat, es van començar a utilitzar "tabuladors de mecanografia", que estaven connectats a un teletip i podien imprimir subtotals ells mateixos sense requerir la intervenció de l'operador. La dificultat ara era determinar a què es referia cadascun dels números impresos. El 1931, IBM va decidir utilitzar "marques especials" per indicar lletres: una marca a la 12a fila indicava la lletra de A до I, a l'11 - de J до R, a zero - des de S до Z. El nou "tabulador de l'alfabet" podria imprimir el nom de cada grup de cartes juntament amb subtotals; en aquest cas, la columna ininterrompuda es va convertir en un espai entre caràcters. Si us plau, tingueu en compte que S està designat per la combinació de forats 0+2, i la combinació 0+1 no es va utilitzar originalment per por que dos forats un al costat de l'altre a la mateixa columna causessin problemes mecànics al lector.

Per què les lletres no són consecutives a EBCDIC?

Ara podeu mirar la taula BCDIC des d'un angle lleugerament diferent:

Per què les lletres no són consecutives a EBCDIC?

Excepte que el 0 i l'espai estan invertits, els dos bits més significatius defineixen la "marca especial" que s'ha perforat a la targeta perforada per al caràcter corresponent des de 1931; i els quatre bits menys significatius determinen el dígit perforat a la part principal de la targeta. Suport de símbols & - / es va afegir als tabuladors d'IBM a la dècada de 1930, i la codificació BCDIC d'aquests caràcters correspon a les combinacions de forats perforades per a ells. Quan es necessitava suport per a un nombre encara més gran de caràcters, la fila 8 es va perforar com a "marca especial" addicional; per tant, hi podria haver fins a tres forats en una columna. Aquest format de targetes perforades es va mantenir pràcticament sense canvis fins a finals de segle. A l'URSS, van deixar les codificacions llatines i de puntuació d'IBM, i per a les lletres ciríl·liques van perforar diverses "marques especials" alhora a les files 12, 11, 0, sense limitar-se a tres forats en una columna.

Quan es va crear l'ordinador IBM 704, no van pensar gaire en la codificació de caràcters per a aquest: van agafar la codificació que ja s'utilitzava a les targetes perforades en aquell moment i només "la van posar al seu lloc". El 0, durant la transició de BCDIC a EBCDIC, els quatre bits de baix ordre de cada símbol es van deixar sense canvis, tot i que els bits d'ordre superior es van barrejar una mica. Així, el format de targeta perforada escollit per Hollerith a principis del segle passat va influir en l'arquitectura de tots els ordinadors d'IBM, fins i tot l'IBM Z inclòs.

Font: www.habr.com

Afegeix comentari