Por que as letras non son consecutivas en EBCDIC?

O estándar ASCII adoptouse en 1963, e agora case ninguén usa unha codificación cuxos primeiros 128 caracteres difiran do ASCII. Non obstante, ata finais do século pasado utilizouse activamente EBCDIC, a codificación estándar para os mainframes de IBM e os seus clons soviéticos para os computadores EC. EBCDIC segue sendo a codificación principal en z/OS, o sistema operativo estándar para os mainframes Z modernos de IBM.

O que chama inmediatamente a atención ao mirar EBCDIC é que as letras non están seguidas: entre I и J e entre R и S había posicións non utilizadas (no ordenador ES para estes intervalos distribuído caracteres cirílicos). A quen se lle ocorrería codificar letras con espazos desiguais entre letras adxacentes?

Por que as letras non son consecutivas en EBCDIC?

O propio nome EBCDIC ("BCDIC estendido") indica que esta codificación, a diferenza de ASCII, non se creou desde cero, senón que se baseou na codificación BCDIC de seis bits, que se utilizou desde IBM 704 (1954):

Por que as letras non son consecutivas en EBCDIC?

Non hai compatibilidade cara atrás inmediata: unha característica conveniente de BCDIC que se perdeu na transición a EBCDIC foi que os números 0-9 corresponden aos códigos 0-9. Non obstante, hai lagoas de sete códigos entre eles I и J e en oito códigos entre R и S xa estiveron en BCDIC. De onde viñeron?

A historia de (E)BCDIC comeza simultáneamente coa historia de IBM, moito antes das computadoras electrónicas. IBM formouse como resultado da fusión de catro empresas, das cales a máis avanzada tecnoloxicamente foi a Tabulating Machine Company, fundada en 1896 por Herman Hollerith, o inventor. tabulador. Os primeiros tabuladores simplemente contaban o número de tarxetas perforadas perforadas nun lugar específico; pero en 1905 Hollerith comezou a producir decimal tabuladores. Cada tarxeta para a tabuladora decimal constaba de campos de lonxitude arbitraria, e os números escritos nestes campos na forma decimal habitual sumáronse sobre todo o mazo. A descomposición do mapa en campos determinouse conectando os cables no panel de conexión do tabulador. Por exemplo, nesta tarxeta perforada de Hollerith, almacenado na Biblioteca do Congreso, o número 23456789012345678 está claramente selado, descoñecido como dividido en campos:

Por que as letras non son consecutivas en EBCDIC?

Os máis atentos poden ter notado que no mapa de Hollerith hai 12 filas para os buracos, aínda que con dez son suficientes para os números; e en BCDIC, para cada valor dos dous bits máis significativos, só se utilizan 12 códigos dos 16 posibles.

Por suposto, isto non é unha coincidencia. Inicialmente, Hollerith pretendía filas adicionais para "marcas especiais" que non se sumaban, senón que simplemente se contaban, como nos primeiros tabuladores. (Hoxe chamariamos “campos de bits”.) Ademais, entre as “marcas especiais” era posible establecer indicadores de grupo: se a tabulación requiría non só as sumas finais, senón tamén as intermedias, entón a tabuladora pararía cando detectou un cambio nalgún dos indicadores do grupo, e o operador tivo que reescribir os subtotais dos encerados dixitais en papel, restablecer o taboleiro e retomar a tabulación. Por exemplo, ao calcular saldos contables, un grupo de tarxetas podería corresponder a unha data ou a unha contraparte.

En 1920, cando Hollerith xa se xubilara, entraron en uso os "tabuladores de mecanografía", que estaban conectados a un teletipo e podían imprimir subtotais eles mesmos sen requirir a intervención do operador. A dificultade agora era determinar a que se refería cada un dos números impresos. En 1931, IBM decidiu usar "marcas especiais" para indicar letras: unha marca na fila 12 indicaba a letra de A para I, no 11 - de J para R, a cero - desde S para Z. O novo "tabulador do alfabeto" podería imprimir o nome de cada grupo de tarxetas xunto cos subtotais; neste caso, a columna ininterrompida converteuse nun espazo entre caracteres. Por favor, teña en conta que S é designado pola combinación de buratos 0+2, e a combinación 0+1 non se utilizou orixinalmente por temor a que dous buratos xuntos na mesma columna causasen problemas mecánicos no lector.

Por que as letras non son consecutivas en EBCDIC?

Agora podes mirar a táboa BCDIC desde un ángulo lixeiramente diferente:

Por que as letras non son consecutivas en EBCDIC?

Excepto que o 0 e o espazo están invertidos, os dous bits máis significativos definen a "marca especial" que foi perforada na tarxeta perforada para o carácter correspondente desde 1931; e os catro bits menos significativos determinan o díxito perforado na parte principal da tarxeta. Soporte de símbolos & - / engadiuse aos tabuladores de IBM na década de 1930, e a codificación BCDIC destes caracteres corresponde ás combinacións de buratos perforadas para eles. Cando se necesitaba soporte para un número aínda maior de caracteres, a fila 8 foi perforada como unha "marca especial" adicional; polo tanto, podía haber ata tres buratos nunha columna. Este formato de tarxetas perforadas permaneceu practicamente inalterado ata finais de século. Na URSS, deixaron as codificacións latinas e de puntuación de IBM, e para as letras cirílicas marcaron varias "marcas especiais" á vez nas filas 12, 11, 0, sen limitarse a tres buratos nunha columna.

Cando se creou o ordenador IBM 704, non pensaron moito na codificación de caracteres para el: tomaron a codificación que xa se usaba nas tarxetas perforadas naquel momento e só "puxérona no seu lugar". En 0, durante a transición de BCDIC a EBCDIC, os catro bits de orde baixa de cada símbolo quedaron inalterados, aínda que os bits de orde superior barallaron un pouco. Así, o formato de tarxeta perforada escollido por Hollerith a principios do século pasado influíu na arquitectura de todos os ordenadores IBM, ata o IBM Z incluído.

Fonte: www.habr.com

Engadir un comentario