De ce literele nu sunt la rând în EBCDIC?

Standardul ASCII a fost adoptat în 1963, iar acum aproape nimeni nu folosește o codificare ale cărei prime 128 de caractere diferă de ASCII. Cu toate acestea, până la sfârșitul secolului trecut, EBCDIC a fost utilizat în mod activ - codificarea standard pentru mainframe-urile IBM și computerele lor EC clonele sovietice. EBCDIC rămâne codificarea principală în z/OS, sistemul de operare standard pentru mainframe-urile IBM Z moderne.

Ceea ce îți atrage imediat atenția când te uiți la EBCDIC este că literele nu sunt pe rând: între I и J si intre R и S au existat poziții nefolosite (pe computerul ES pentru aceste intervale distribuite caractere chirilice). Cine s-ar fi gândit să codifice litere cu spații inegale între literele adiacente?

De ce literele nu sunt la rând în EBCDIC?

Însuși numele EBCDIC („Extended BCDIC”) sugerează că această codificare - spre deosebire de ASCII - nu a fost creată de la zero, ci bazată pe codificarea BCDIC pe șase biți, care a fost folosită de la început. IBM 704 (1954):

De ce literele nu sunt la rând în EBCDIC?

Nu există o compatibilitate inversă imediată: o caracteristică convenabilă a BCDIC care s-a pierdut în tranziția la EBCDIC a fost că numerele 0-9 corespund codurilor 0-9. Cu toate acestea, există lacune de șapte coduri între I и J iar în opt coduri între R и S au fost deja la BCDIC. De unde au venit?

Istoria (E)BCDIC începe simultan cu istoria IBM - cu mult înaintea calculatoarelor electronice. IBM s-a format ca urmare a fuziunii a patru companii, dintre care cea mai avansată tehnologic a fost Tabulating Machine Company, fondată în 1896 de Herman Hollerith, inventatorul. tabulator. Primele tabulatoare au numărat pur și simplu numărul de cărți perforate perforate într-o anumită locație; dar în 1905 Hollerith a început producția zecimal tabulatoare. Fiecare carte pentru tabulatorul zecimal era alcătuită din câmpuri de lungime arbitrară, iar numerele scrise în aceste câmpuri în forma zecimală obișnuită au fost însumate pe întregul pachet. Împărțirea hărții în câmpuri a fost determinată prin conectarea cablurilor de pe panoul de corecție al tabulatorului. De exemplu, pe acest card perforat Hollerith, stocate în Biblioteca Congresului, numărul 23456789012345678 este ștampilat clar, necunoscut ca fiind împărțit în câmpuri:

De ce literele nu sunt la rând în EBCDIC?

Cei mai atenți ar fi observat poate că pe harta Hollerith sunt 12 rânduri pentru găuri, deși zece sunt suficiente pentru numere; iar în BCDIC, pentru fiecare valoare a celor mai semnificativi doi biți, sunt utilizate doar 12 coduri din 16 posibile.

Desigur, aceasta nu este o coincidență. Inițial, Hollerith a intenționat rânduri suplimentare pentru „semne speciale” care nu au fost adunate, ci pur și simplu numărate - ca în primele tabulatoare. (Astăzi le-am numi „câmpuri de biți”.) În plus, printre „notele speciale” era posibil să se stabilească indicatori de grup: dacă tabularea necesita nu numai sumele finale, ci și sumele intermediare, atunci tabulatorul s-ar opri atunci când a detectat o modificare a oricăruia dintre indicatorii de grup, iar operatorul a trebuit să rescrie subtotalurile de pe panourile digitale pe hârtie, să reseteze tabla și să reia tabelarea. De exemplu, la calcularea soldurilor contabile, un grup de carduri ar putea corespunde unei date sau unei contrapartide.

În 1920, când Hollerith se retrăsese deja, au intrat în uz „tabulatoare de tastare”, care erau conectate la un teletip și puteau imprima ele însele subtotalurile fără a necesita intervenția operatorului. Dificultatea acum era de a determina la ce se referă fiecare dintre numerele tipărite. În 1931, IBM a decis să folosească „semne speciale” pentru a indica literele: un semn în al 12-lea rând a indicat litera de la A la I, în al 11-lea - din J la R, la zero - de la S la Z. Noul „tabulator alfabetic” ar putea tipări numele fiecărui grup de cărți împreună cu subtotalurile; în acest caz, coloana neîntreruptă s-a transformat într-un spațiu între caractere. Te rog noteaza asta S este desemnată prin combinația de găuri 0+2, iar combinația 0+1 nu a fost folosită inițial de teama că două găuri una lângă alta în aceeași coloană ar provoca probleme mecanice cititorului.

De ce literele nu sunt la rând în EBCDIC?

Acum puteți privi tabelul BCDIC dintr-un unghi ușor diferit:

De ce literele nu sunt la rând în EBCDIC?

Cu excepția faptului că 0 și spațiul sunt inversate, cei mai semnificativi doi biți definesc „marca specială” care a fost perforată în cardul perforat pentru caracterul corespunzător din 1931; iar cei mai puțin semnificativi patru biți determină cifra introdusă în partea principală a cardului. Suport simbol & - / a fost adăugat la tabulatoarele IBM în anii 1930, iar codificarea BCDIC a acestor caractere corespunde combinațiilor de găuri perforate pentru ele. Când era nevoie de suport pentru un număr și mai mare de caractere, rândul 8 a fost perforat ca un „marcaj special” suplimentar - astfel, ar putea exista până la trei găuri într-o coloană. Acest format de cărți perforate a rămas practic neschimbat până la sfârșitul secolului. În URSS, au lăsat codurile latine și de punctuație ale IBM, iar pentru literele chirilice au perforat simultan mai multe „semne speciale” în rândurile 12, 11, 0 - fără a se limita la trei găuri într-o coloană.

Când a fost creat computerul IBM 704, nu s-au gândit mult la codificarea caracterelor pentru acesta: au luat codificarea deja folosită în cardurile perforate la acel moment și doar „o puneau la locul său”. În 0, în timpul tranziției de la BCDIC la EBCDIC, cei patru biți de ordin inferior ai fiecărui simbol au fost lăsați neschimbați, deși biții de ordin înalt au fost amestecați puțin. Astfel, formatul de card perforat ales de Hollerith la începutul secolului trecut a influențat arhitectura tuturor calculatoarelor IBM, până la IBM Z inclusiv.

Sursa: www.habr.com

Adauga un comentariu