Prečo nie sú písmená v EBCDIC za sebou?

Štandard ASCII bol prijatý v roku 1963 av súčasnosti už takmer nikto nepoužíva kódovanie, ktorého prvých 128 znakov sa líši od ASCII. Až do konca minulého storočia sa však aktívne používal EBCDIC - štandardné kódovanie pre sálové počítače IBM a ich sovietske klony počítačov EC. EBCDIC zostáva primárnym kódovaním v z/OS, štandardnom operačnom systéme pre moderné sálové počítače IBM Z.

Pri pohľade na EBCDIC vás okamžite upúta, že písmená nie sú v rade: medzi I и J a medzi R и S boli nepoužité pozície (na počítači ES pre tieto intervaly distribuované cyrilické znaky). Koho by napadlo kódovať písmená s nerovnakými medzerami medzi susednými písmenami?

Prečo nie sú písmená v EBCDIC za sebou?

Už samotný názov EBCDIC („Extended BCDIC“) napovedá, že toto kódovanie – na rozdiel od ASCII – nebolo vytvorené od nuly, ale založené na šesťbitovom kódovaní BCDIC, ktoré sa používa od r. IBM 704 (1954):

Prečo nie sú písmená v EBCDIC za sebou?

Neexistuje okamžitá spätná kompatibilita: pohodlnou vlastnosťou BCDIC, ktorá sa stratila pri prechode na EBCDIC, bolo to, že čísla 0-9 zodpovedajú kódom 0-9. Existujú však medzery medzi siedmimi kódmi I и J a v ôsmich kódoch medzi nimi R и S už boli v BCDIC. Odkiaľ prišli?

História (E)BCDIC začína súčasne s históriou IBM - dávno pred elektronickými počítačmi. IBM vznikla fúziou štyroch spoločností, z ktorých technologicky najvyspelejšia bola spoločnosť Tabulating Machine Company, ktorú v roku 1896 založil vynálezca Herman Hollerith. tabelátor. Prví tabelátori jednoducho spočítali počet dierovaných štítkov vyrazených na konkrétnom mieste; ale v roku 1905 Hollerith začal s výrobou desiatkový tabelátorov. Každá karta pre desiatkový tabelátor pozostávala z polí ľubovoľnej dĺžky a čísla zapísané v týchto poliach v obvyklom desiatkovom tvare boli sčítané v celom balíčku. Rozdelenie mapy na polia bolo určené pripojením vodičov na patch paneli tabelátora. Napríklad na tomto diernom štítku Hollerith uložené v Kongresovej knižnici je číslo 23456789012345678 jasne vyrazené, neznáme ako rozdelené do polí:

Prečo nie sú písmená v EBCDIC za sebou?

Tí najpozornejší si možno všimli, že na Hollerithovej mape je 12 riadkov pre jamky, hoci na čísla stačí desať; a v BCDIC sa pre každú hodnotu dvoch najvýznamnejších bitov používa iba 12 kódov zo 16 možných.

Samozrejme, nie je to náhoda. Spočiatku Hollerith zamýšľal ďalšie riadky pre „špeciálne značky“, ktoré neboli sčítané, ale jednoducho spočítané - ako v úplne prvých tabuľkách. (Dnes by sme ich nazvali „bitové polia“.) Okrem toho medzi „špeciálnymi známkami“ bolo možné nastaviť skupinové ukazovatele: ak tabuľka vyžadovala nielen konečné súčty, ale aj medziľahlé súčty, potom by sa tabelátor zastavil, keď zistila zmenu v ktoromkoľvek zo skupinových indikátorov a operátor musel prepísať medzisúčty z digitálnych tabúľ na papier, resetovať tabuľu a pokračovať v tabuľovaní. Napríklad pri výpočte účtovných zostatkov môže skupina kariet zodpovedať jednému dátumu alebo jednej protistrane.

V roku 1920, keď už Hollerith odišiel do dôchodku, sa začali používať „tabulátory na písanie“, ktoré boli pripojené k teletypu a mohli samy tlačiť medzisúčty bez potreby zásahu operátora. Teraz bolo ťažké určiť, na čo sa každé z vytlačených čísel vzťahuje. V roku 1931 sa IBM rozhodla použiť na označenie písmen „špeciálne značky“: značka v 12. riadku označovala písmeno z A na I, v 11. - od J na R, pri nule - od S na Z. Nový „abecedný tabulátor“ mohol vytlačiť názov každej skupiny kariet spolu s medzisúčtami; v tomto prípade sa neprerušený stĺpec zmenil na medzeru medzi znakmi. Vezmite prosím na vedomie, že S je označený kombináciou otvorov 0+2 a kombinácia 0+1 sa pôvodne nepoužívala z obavy, že dva otvory vedľa seba v tom istom stĺpci spôsobia mechanické problémy v čítačke.

Prečo nie sú písmená v EBCDIC za sebou?

Teraz sa môžete pozrieť na tabuľku BCDIC z trochu iného uhla:

Prečo nie sú písmená v EBCDIC za sebou?

Okrem toho, že 0 a medzera sú obrátené, dva najvýznamnejšie bity definujú "špeciálnu značku", ktorá bola vyrazená do dierneho štítku pre zodpovedajúci znak od roku 1931; a najmenej významné štyri bity určujú číslicu vyrazenú do hlavnej časti karty. Podpora symbolov & - / bol pridaný do tabelátorov IBM v tridsiatych rokoch minulého storočia a kódovanie BCDIC týchto znakov zodpovedá kombináciám otvorov, ktoré boli pre ne vyrazené. Keď bola potrebná podpora pre ešte väčší počet znakov, riadok 1930 bol vyrazený ako dodatočná „špeciálna značka“ - v jednom stĺpci tak mohli byť až tri otvory. Tento formát diernych štítkov zostal prakticky nezmenený až do konca storočia. V ZSSR ponechali latinku a interpunkčné kódovanie IBM a pre písmená cyriliky vypichli niekoľko „špeciálnych značiek“ naraz v riadkoch 8, 12, 11 - neobmedzujúc sa na tri diery v jednom stĺpci.

Keď bol vytvorený počítač IBM 704, dlho nepremýšľali o kódovaní jeho znakov: vzali kódovanie, ktoré sa v tom čase už používalo na diernych štítkoch, a iba ho „umiestnili na svoje miesto“. V roku 0, počas prechodu z BCDIC na EBCDIC, boli štyri bity nižšieho rádu každého symbolu ponechané nezmenené, hoci bity vyššieho rádu boli trochu premiešané. Formát diernych štítkov zvolený Hollerithom na začiatku minulého storočia teda ovplyvnil architektúru všetkých počítačov IBM, až po IBM Z vrátane.

Zdroj: hab.com

Pridať komentár