Por que as letras não são consecutivas no EBCDIC?

O padrão ASCII foi adotado em 1963 e agora quase ninguém usa uma codificação cujos primeiros 128 caracteres sejam diferentes do ASCII. No entanto, até o final do século passado, o EBCDIC foi usado ativamente - a codificação padrão para mainframes IBM e seus clones soviéticos de computadores EC. EBCDIC continua sendo a codificação primária em z/OS, o sistema operacional padrão para mainframes IBM Z modernos.

O que imediatamente chama a atenção ao olhar para o EBCDIC é que as letras não estão enfileiradas: entre I и J e entre R и S havia posições não utilizadas (no computador ES para esses intervalos distribuído caracteres cirílicos). Quem teria pensado em codificar letras com espaços desiguais entre letras adjacentes?

Por que as letras não são consecutivas no EBCDIC?

O próprio nome EBCDIC (“Extended BCDIC”) sugere que esta codificação - ao contrário do ASCII - não foi criada do zero, mas baseada na codificação BCDIC de seis bits, que tem sido usada desde então. IBM 704 (1954)

Por que as letras não são consecutivas no EBCDIC?

Não há compatibilidade retroativa imediata: um recurso conveniente do BCDIC que foi perdido na transição para o EBCDIC foi que os números 0-9 correspondem aos códigos 0-9. No entanto, existem lacunas de sete códigos entre I и J e em oito códigos entre R и S já esteve no BCDIC. De onde eles vieram?

A história do (E)BCDIC começa simultaneamente com a história da IBM – muito antes dos computadores eletrônicos. A IBM foi formada a partir da fusão de quatro empresas, das quais a mais avançada tecnologicamente foi a Tabulating Machine Company, fundada em 1896 por Herman Hollerith, o inventor tabulador. Os primeiros tabuladores simplesmente contavam o número de cartões perfurados em um local específico; mas em 1905 Hollerith iniciou a produção decimal tabuladores. Cada carta do tabulador decimal consistia em campos de comprimento arbitrário, e os números escritos nesses campos na forma decimal usual eram somados em todo o baralho. A divisão do mapa em campos foi determinada conectando os fios no patch panel do tabulador. Por exemplo, neste cartão perfurado Hollerith, armazenado na Biblioteca do Congresso, o número 23456789012345678 está claramente carimbado, desconhecido conforme dividido em campos:

Por que as letras não são consecutivas no EBCDIC?

Os mais atentos devem ter notado que no mapa de Hollerith existem 12 linhas para buracos, embora dez sejam suficientes para números; e no BCDIC, para cada valor dos dois bits mais significativos, apenas 12 códigos são usados ​​dos 16 possíveis.

Claro, isso não é uma coincidência. Inicialmente, Hollerith pretendia linhas adicionais para “marcas especiais” que não eram somadas, mas simplesmente contadas - como nos primeiros tabuladores. (Hoje os chamaríamos de “campos de bits”.) Além disso, entre as “marcas especiais” era possível definir indicadores de grupo: se a tabulação exigisse não apenas as somas finais, mas também as intermediárias, o tabulador pararia quando detectou uma alteração em qualquer um dos indicadores do grupo e o operador teve que reescrever os subtotais dos quadros digitais no papel, redefinir o quadro e retomar a tabulação. Por exemplo, no cálculo dos saldos contabilísticos, um grupo de cartões pode corresponder a uma data ou a uma contraparte.

Em 1920, quando Hollerith já havia se aposentado, entraram em uso os “tabuladores de digitação”, que eram conectados a um teletipo e podiam imprimir eles próprios subtotais sem exigir intervenção do operador. A dificuldade agora era determinar a que se referia cada um dos números impressos. Em 1931, a IBM decidiu usar “marcas especiais” para indicar letras: uma marca na 12ª linha indicava a letra de A para I, no dia 11 - de J para R, em zero - de S para Z. O novo "tabulador alfabético" poderia imprimir o nome de cada grupo de cartas junto com os subtotais; neste caso, a coluna contínua se transformou em um espaço entre os caracteres. Por favor, note que S é designado pela combinação de furos 0+2, e a combinação 0+1 não foi originalmente usada por medo de que dois furos próximos um do outro na mesma coluna pudessem causar problemas mecânicos no leitor.

Por que as letras não são consecutivas no EBCDIC?

Agora você pode observar a tabela BCDIC de um ângulo ligeiramente diferente:

Por que as letras não são consecutivas no EBCDIC?

Exceto que o 0 e o espaço são invertidos, os dois bits mais significativos definem a "marca especial" que foi perfurada no cartão perfurado para o caractere correspondente desde 1931; e os quatro bits menos significativos determinam o dígito perfurado na parte principal do cartão. Suporte de símbolo & - / foi adicionado aos tabuladores IBM na década de 1930, e a codificação BCDIC desses caracteres corresponde às combinações de furos perfurados para eles. Quando era necessário suporte para um número ainda maior de caracteres, a linha 8 era perfurada como uma “marca especial” adicional - assim, poderia haver até três furos em uma coluna. Este formato de cartões perfurados permaneceu praticamente inalterado até o final do século. Na URSS, eles deixaram as codificações latinas e de pontuação da IBM e, para letras cirílicas, perfuraram várias “marcas especiais” de uma só vez nas linhas 12, 11, 0 - não se limitando a três furos em uma coluna.

Quando o computador IBM 704 foi criado, eles não pensaram muito na codificação de caracteres para ele: pegaram a codificação já usada nos cartões perfurados da época e apenas “colocaram-na no seu lugar”. Em 0, durante a transição de BCDIC para EBCDIC, os quatro bits de ordem inferior de cada símbolo permaneceram inalterados, embora os bits de ordem superior tenham sido um pouco embaralhados. Assim, o formato de cartão perfurado escolhido por Hollerith no início do século passado influenciou a arquitetura de todos os computadores IBM, até e inclusive o IBM Z.

Fonte: habr.com

Adicionar um comentário