¿Por qué las letras no están seguidas en EBCDIC?

El estándar ASCII se adoptó en 1963 y hoy en día casi nadie utiliza una codificación cuyos primeros 128 caracteres difieran del ASCII. Sin embargo, hasta finales del siglo pasado, se utilizó activamente EBCDIC, la codificación estándar para los mainframes de IBM y sus clones soviéticos de las computadoras EC. EBCDIC sigue siendo la codificación principal en z/OS, el sistema operativo estándar para los mainframes IBM Z modernos.

Lo que inmediatamente llama la atención al mirar EBCDIC es que las letras no están en fila: entre I и J y entre R и S había posiciones no utilizadas (en la computadora ES para estos intervalos repartido caracteres cirílicos). ¿A quién se le hubiera ocurrido codificar letras con espacios desiguales entre letras adyacentes?

¿Por qué las letras no están seguidas en EBCDIC?

El mismo nombre EBCDIC ("BCDIC extendido") sugiere que esta codificación, a diferencia de ASCII, no se creó desde cero, sino que se basó en la codificación BCDIC de seis bits, que se ha utilizado desde IBM 704 (1954):

¿Por qué las letras no están seguidas en EBCDIC?

No hay compatibilidad retroactiva inmediata: una característica conveniente del BCDIC que se perdió en la transición al EBCDIC fue que los números 0-9 corresponden a los códigos 0-9. Sin embargo, existen lagunas de siete códigos entre I и J y en ocho códigos entre R и S Ya he estado en BCDIC. ¿De dónde vienen ellos?

La historia de (E)BCDIC comienza simultáneamente con la historia de IBM, mucho antes que las computadoras electrónicas. IBM se formó como resultado de la fusión de cuatro empresas, de las cuales la más avanzada tecnológicamente fue Tabulated Machine Company, fundada en 1896 por Herman Hollerith, el inventor. tabulador. Los primeros tabuladores simplemente contaban el número de tarjetas perforadas en un lugar específico; pero en 1905 Hollerith comenzó la producción. decimal tabuladores. Cada tarjeta del tabulador decimal constaba de campos de longitud arbitraria, y los números escritos en estos campos en la forma decimal habitual se sumaban en toda la baraja. La división del mapa en campos se determinó conectando los cables en el panel de conexión del tabulador. Por ejemplo, en esta tarjeta perforada de Hollerith, almacenado en la Biblioteca del Congreso, el número 23456789012345678 está claramente estampado, desconocido según está dividido en campos:

¿Por qué las letras no están seguidas en EBCDIC?

Los más atentos habrán notado que en el mapa de Hollerith hay 12 filas para los hoyos, aunque diez son suficientes para los números; y en el BCDIC, para cada valor de los dos bits más significativos sólo se utilizan 12 códigos de 16 posibles.

Por supuesto, esto no es una coincidencia. Inicialmente, Hollerith pretendía filas adicionales para las "marcas especiales", que no se sumaban, sino que simplemente se contaban, como en los primeros tabuladores. (Hoy los llamaríamos "campos de bits".) Además, entre las "marcas especiales" era posible establecer indicadores de grupo: si la tabulación requería no solo las sumas finales, sino también las intermedias, entonces el tabulador se detendría cuando detectó un cambio en alguno de los indicadores del grupo y el operador tuvo que reescribir los subtotales de los tableros digitales en papel, resetear el tablero y reanudar la tabulación. Por ejemplo, al calcular los saldos contables, un grupo de tarjetas podría corresponder a una fecha o a una contraparte.

En 1920, cuando Hollerith ya se había jubilado, se empezaron a utilizar los "tabuladores de mecanografía", que estaban conectados a un teletipo y podían imprimir subtotales por sí mismos sin necesidad de intervención del operador. La dificultad ahora era determinar a qué se refería cada uno de los números impresos. En 1931, IBM decidió utilizar “marcas especiales” para indicar letras: una marca en la fila 12 indicaba la letra de A a I, en el 11 - desde J a R, en cero - desde S a Z. El nuevo "tabulador alfabético" podría imprimir el nombre de cada grupo de tarjetas junto con los subtotales; en este caso, la columna continua se convirtió en un espacio entre caracteres. Tenga en cuenta que S está designado por la combinación de orificios 0+2, y la combinación 0+1 no se usó originalmente por temor a que dos orificios uno al lado del otro en la misma columna causaran problemas mecánicos en el lector.

¿Por qué las letras no están seguidas en EBCDIC?

Ahora puedes mirar la tabla BCDIC desde un ángulo ligeramente diferente:

¿Por qué las letras no están seguidas en EBCDIC?

Excepto que el 0 y el espacio están invertidos, los dos bits más significativos definen la "marca especial" que se ha perforado en la tarjeta perforada para el carácter correspondiente desde 1931; y los cuatro bits menos significativos determinan el dígito perforado en la parte principal de la tarjeta. Soporte de símbolos & - / se agregó a los tabuladores de IBM en la década de 1930, y la codificación BCDIC de estos caracteres corresponde a las combinaciones de agujeros perforados para ellos. Cuando se necesitaba soporte para un número aún mayor de caracteres, la fila 8 se perforaba como una "marca especial" adicional; por lo tanto, podía haber hasta tres agujeros en una columna. Este formato de tarjetas perforadas se mantuvo prácticamente sin cambios hasta finales de siglo. En la URSS, dejaron las codificaciones latinas y de puntuación de IBM, y para las letras cirílicas perforaron varias "marcas especiales" a la vez en las filas 12, 11, 0, sin limitarse a tres agujeros en una columna.

Cuando se creó la computadora IBM 704, no pensaron mucho en la codificación de caracteres: tomaron la codificación que ya se usaba en las tarjetas perforadas en ese momento y solo "la pusieron en su lugar". En 0, durante la transición del BCDIC al EBCDIC, los cuatro bits de orden inferior de cada símbolo se dejaron sin cambios, aunque los bits de orden superior se mezclaron un poco. Así, el formato de tarjeta perforada elegido por Hollerith a principios del siglo pasado influyó en la arquitectura de todos los ordenadores IBM, hasta el IBM Z inclusive.

Fuente: habr.com

Añadir un comentario