Wêrom binne de letters net op in rige yn EBCDIC?

De ASCII-standert waard oannommen yn 1963, en no brûkt amper ien in kodearring wêrfan de earste 128 tekens ferskille fan ASCII. Lykwols, oant it ein fan 'e foarige ieu, EBCDIC waard aktyf brûkt - de standert kodearring foar IBM mainframes en harren Sovjet clones EC kompjûters. EBCDIC bliuwt de primêre kodearring yn z / OS, it standert bestjoeringssysteem foar moderne IBM Z mainframes.

Wat jo direkt opfalt as jo nei EBCDIC sjogge, is dat de letters net op in rige steane: tusken I и J en tusken R и S d'r wiene net brûkte posysjes (op 'e ES-komputer foar dizze yntervallen ferdield Syrillyske karakters). Wa soe tocht hawwe om letters te kodearjen mei ûngelikense spaasjes tusken neistlizzende letters?

Wêrom binne de letters net op in rige yn EBCDIC?

De namme EBCDIC ("útwreide BCDIC") jout oan dat dizze kodearring - oars as ASCII - net fanôf it begjin makke is, mar basearre op de seis-bit BCDIC-kodearring, dy't sûnt brûkt is IBM 704 (1954):

Wêrom binne de letters net op in rige yn EBCDIC?

D'r is gjin direkte efterútkompatibiliteit: in handich skaaimerk fan BCDIC dat ferlern gie yn 'e oergong nei EBCDIC wie dat de nûmers 0-9 oerien mei koades 0-9. D'r binne lykwols gatten fan sân koades tusken I и J en yn acht koades tusken R и S binne al by BCDIC west. Wêr kamen se wei?

De skiednis fan (E)BCDIC begjint tagelyk mei de skiednis fan IBM - lang foar elektroanyske kompjûters. IBM waard foarme as gefolch fan de fúzje fan fjouwer bedriuwen, wêrfan de meast technologysk avansearre de Tabulating Machine Company wie, oprjochte yn 1896 troch Herman Hollerith, de útfiner tabulator. De earste tabulators telle gewoan it oantal ponskaarten op in spesifike lokaasje; mar yn 1905 begûn Hollerith produksje desimaal tabulators. Eltse kaart foar de desimaal tabulator bestie út fjilden fan willekeurich lingte, en de nûmers skreaun yn dizze fjilden yn 'e gewoane desimaal foarm waarden gearfette oer de hiele deck. De ferdieling fan de kaart yn fjilden waard bepaald troch it ferbinen fan de triedden op de tabulator syn patch paniel. Bygelyks, op dizze Hollerith ponskaart, opslein yn 'e Library of Congress is it nûmer 23456789012345678 dúdlik stimpele, ûnbekend as ferdield yn fjilden:

Wêrom binne de letters net op in rige yn EBCDIC?

De meast opmerksume kin hawwe opfallen dat op de Hollerith kaart der binne 12 rigen foar gatten, hoewol't tsien binne genôch foar nûmers; en yn BCDIC, foar eltse wearde fan de meast wichtige twa bits, allinne 12 koades wurde brûkt út 16 mooglik.

Fansels is dit gjin tafal. Yn earste ynstânsje hat Hollerith ekstra rigen bedoeld foar "spesjale merken" dy't net byinoar waarden, mar gewoan teld - lykas yn 'e allerearste tabulators. (Hjoed soene wy ​​se "bitfjilden" neame.) Dêrneist wie it mooglik om ûnder de "spesjale merken" groepyndikatoaren yn te stellen: as de tabulaasje net allinich de definitive sommen fereasket, mar ek tuskenbeiden, dan soe de tabulator stopje as it ûntdekte in feroaring yn ien fan 'e groepyndikatoaren, en de operator moast de subtotalen fan' e digitale boerden op papier oerskriuwe, it boerd weromsette en de tabulaasje opnij begjinne. Bygelyks, by it berekkenjen fan boekhâldingssaldo's, kin in groep kaarten oerienkomme mei ien datum of ien tsjinpartij.

Tsjin 1920, doe't Hollerith al mei pensjoen wie, kamen "typtabulators" yn gebrûk, dy't ferbûn wiene mei in teletype en sels subtotalen ôfdrukke koene sûnder dat de operator yntervinsje nedich wie. De muoite wie no om te bepalen wêr't elk fan 'e printe nûmers nei ferwiisde. Yn 1931 besleat IBM om "spesjale tekens" te brûken om letters oan te jaan: in teken yn 'e 12e rige joech de letter oan fan A до I, yn de 11e - fan J до R, op nul - fan S до Z. De nije "alfabet tabulator" koe printsje de namme fan elke groep kaarten tegearre mei subtotalen; yn dit gefal feroare de ûnbrutsen kolom yn in romte tusken karakters. Tink derom dat S wurdt oanwiisd troch it gat kombinaasje 0+2, en de 0+1 kombinaasje waard net oarspronklik brûkt út eangst dat twa gatten neist elkoar yn deselde kolom soe soargje meganyske problemen yn de lêzer.

Wêrom binne de letters net op in rige yn EBCDIC?

No kinne jo nei de BCDIC-tabel sjen fan in wat oare hoeke:

Wêrom binne de letters net op in rige yn EBCDIC?

Utsein dat de 0 en romte wurde omkeard, definiearje de meast wichtige twa bits de "spesjale mark" dat is punched yn 'e punch card foar it korrespondearjende karakter sûnt 1931; en de minste signifikante fjouwer bits bepale it sifer punched yn it wichtichste part fan de kaart. Symboal stipe & - / waard tafoege oan IBM-tabulators yn 'e jierren '1930, en de BCDIC-kodearring fan dizze karakters komt oerien mei de gatkombinaasjes foar har. Doe't stipe foar in noch grutter oantal karakters nedich wie, waard rige 8 as in ekstra "spesjaal teken" slein - dus koe d'r maksimaal trije gatten yn ien kolom wêze. Dit formaat fan ponskaarten bleau praktysk net feroare oant de ein fan 'e ieu. Yn 'e USSR lieten se IBM's Latynske en ynterpunksjekodearrings, en foar Syrillyske letters sloegen se ferskate "spesjale tekens" tagelyk yn rigen 12, 11, 0 - net beheind ta trije gatten yn ien kolom.

Doe't de IBM 704-kompjûter makke waard, tochten se net lang nei oer de karakterkodearring dêrfoar: se namen de kodearring dy't op dat stuit al brûkt waard yn ponskaarten, en "sette it op syn plak." Yn 0, tidens de oergong fan BCDIC nei EBCDIC, waarden de leechste fjouwer bits fan elk symboal net feroare, hoewol't de hege-oarder bits in bytsje skodde. Sa hat it troch Hollerith oan it begjin fan de foarige ieu keazen ponskaartformaat ynfloed op de arsjitektuer fan alle IBM-kompjûters, oant en mei de IBM Z.

Boarne: www.habr.com

Add a comment