Perché le lettere non sono in fila in EBCDIC?

Lo standard ASCII è stato adottato nel 1963 e ormai quasi nessuno utilizza una codifica i cui primi 128 caratteri differiscono da ASCII. Tuttavia, fino alla fine del secolo scorso, è stato utilizzato attivamente l'EBCDIC, la codifica standard per i mainframe IBM e i loro cloni sovietici dei computer EC. EBCDIC rimane la codifica principale in z/OS, il sistema operativo standard per i moderni mainframe IBM Z.

Ciò che attira immediatamente la tua attenzione quando guardi l'EBCDIC è che le lettere non sono in fila: tra I и J e tra R и S c'erano posizioni inutilizzate (sul computer ES per questi intervalli distribuito caratteri cirillici). Chi avrebbe mai pensato di codificare le lettere con spazi disuguali tra lettere adiacenti?

Perché le lettere non sono in fila in EBCDIC?

Il nome stesso EBCDIC ("Extended BCDIC") suggerisce che questa codifica - a differenza dell'ASCII - non è stata creata da zero, ma basata sulla codifica BCDIC a sei bit, utilizzata da allora IBM704 (1954)

Perché le lettere non sono in fila in EBCDIC?

Non c'è compatibilità immediata con le versioni precedenti: una caratteristica utile del BCDIC che è andata persa nella transizione all'EBCDIC erano i numeri 0-9 corrispondono ai codici 0-9. Tuttavia, ci sono lacune di sette codici nel mezzo I и J e in otto codici tra R и S sono già stato al BCDIC. Da dove provengono?

La storia dell'(E)BCDIC inizia contemporaneamente alla storia dell'IBM, molto prima dei computer elettronici. L'IBM è nata dalla fusione di quattro società, di cui la più tecnologicamente avanzata era la Tabifying Machine Company, fondata nel 1896 da Herman Hollerith, l'inventore tabulatore. I primi tabulatori contavano semplicemente il numero di schede perforate in una posizione specifica; ma nel 1905 Hollerith iniziò la produzione decimale tabulatori. Ogni carta per il tabulatore decimale era costituita da campi di lunghezza arbitraria e i numeri scritti in questi campi nella consueta forma decimale venivano sommati sull'intero mazzo. La suddivisione della mappa in campi è stata determinata collegando i fili sul pannello di connessione del tabulatore. Ad esempio, su questa scheda perforata Hollerith, immagazzinato nella Biblioteca del Congresso è stampigliato chiaramente il numero 23456789012345678, sconosciuto in quanto suddiviso in campi:

Perché le lettere non sono in fila in EBCDIC?

I più attenti avranno notato che sulla mappa Hollerith ci sono 12 righe per i buchi, anche se per i numeri ne bastano dieci; e in BCDIC, per ciascun valore dei due bit più significativi, vengono utilizzati solo 12 codici su 16 possibili.

Naturalmente, questa non è una coincidenza. Inizialmente, Hollerith intendeva righe aggiuntive per "segni speciali" che non venivano sommati, ma semplicemente contati, come nei primissimi tabulatori. (Oggi li chiameremmo “campi di bit”.) Inoltre tra i “voti speciali” era possibile impostare degli indicatori di gruppo: se la tabulazione richiedeva non solo le somme finali, ma anche quelle intermedie, allora il tabulatore si fermava quando ha rilevato un cambiamento in uno qualsiasi degli indicatori del gruppo e l'operatore ha dovuto riscrivere i totali parziali dalle schede digitali su carta, reimpostare la scheda e riprendere la tabulazione. Ad esempio, nel calcolo dei saldi contabili, un gruppo di carte potrebbe corrispondere ad una data o ad una controparte.

Nel 1920, quando Hollerith era già in pensione, entrarono in uso i "tabulatori dattilografici", che erano collegati a una telescrivente e potevano stampare da soli i totali parziali senza richiedere l'intervento dell'operatore. La difficoltà ora era determinare a cosa si riferisse ciascuno dei numeri stampati. Nel 1931, IBM decise di utilizzare “segni speciali” per designare le lettere: un segno nella dodicesima riga indicava la lettera da A a I, nell'11 - da J a R, a zero - da S a Z. Il nuovo "tabulatore dell'alfabeto" potrebbe stampare il nome di ciascun gruppo di carte insieme ai totali parziali; in questo caso, la colonna ininterrotta si è trasformata in uno spazio tra i caratteri. Tienilo presente S è designato dalla combinazione di fori 0+2, e la combinazione 0+1 non è stata originariamente utilizzata per paura che due fori uno accanto all'altro nella stessa colonna causassero problemi meccanici al lettore.

Perché le lettere non sono in fila in EBCDIC?

Ora puoi guardare la tabella BCDIC da un'angolazione leggermente diversa:

Perché le lettere non sono in fila in EBCDIC?

Salvo che lo 0 e lo spazio sono invertiti, i due bit più significativi definiscono il "segno speciale" che dal 1931 viene punzonato sulla scheda perforata per il carattere corrispondente; ed i quattro bit meno significativi determinano la cifra punzonata nella parte principale della carta. Supporto per simboli & - / è stato aggiunto ai tabulatori IBM negli anni '1930 e la codifica BCDIC di questi caratteri corrisponde alle combinazioni di fori perforate per essi. Quando era necessario il supporto per un numero ancora maggiore di caratteri, la riga 8 veniva perforata come un "segno speciale" aggiuntivo, quindi potevano esserci fino a tre fori in una colonna. Questo formato di schede perforate rimase praticamente immutato fino alla fine del secolo. In URSS, hanno lasciato le codifiche latine e di punteggiatura di IBM e per le lettere cirilliche hanno perforato diversi "segni speciali" contemporaneamente nelle righe 12, 11, 0, non limitati a tre fori in una colonna.

Quando fu creato il computer IBM 704, non pensarono a lungo alla codifica dei caratteri: presero la codifica già utilizzata nelle schede perforate a quel tempo e la "misero al suo posto". Nel 0, durante la transizione da BCDIC a EBCDIC, i quattro bit di ordine inferiore di ciascun simbolo furono lasciati invariati, sebbene i bit di ordine superiore furono leggermente mescolati. Pertanto, il formato della scheda perforata scelto da Hollerith all'inizio del secolo scorso influenzò l'architettura di tutti i computer IBM, fino all'IBM Z compreso.

Fonte: habr.com

Aggiungi un commento