Miks ei ole tähed EBCDIC-s järjestikused?

ASCII standard võeti vastu 1963. aastal ja praegu ei kasuta peaaegu keegi kodeeringut, mille esimesed 128 tähemärki ASCII-st erinevad. Kuid kuni eelmise sajandi lõpuni kasutati aktiivselt EBCDIC-i - IBMi suurarvutite ja nende nõukogude kloonide EC arvutite standardset kodeeringut. EBCDIC jääb peamiseks kodeeringuks z/OS-is, mis on tänapäevaste IBM Z suurarvutite standardne operatsioonisüsteem.

EBCDIC-i vaadates hakkab kohe silma see, et tähed pole reas: vahel I и J ja vahel R и S oli kasutamata positsioone (ES arvutis nende intervallide jaoks jagatud kirillitsa tähed). Kes oleks võinud kodeerida tähti, kus kõrvuti asetsevate tähtede vahel on ebavõrdsed tühikud?

Miks ei ole tähed EBCDIC-s järjestikused?

Juba nimi EBCDIC (“Extended BCDIC”) vihjab, et seda kodeeringut – erinevalt ASCII-st – ei loodud nullist, vaid see põhines kuuebitisel BCDIC-kodeeringul, mida on kasutatud alates aastast. IBM 704 (1954):

Miks ei ole tähed EBCDIC-s järjestikused?

Vahetut tagasiühilduvust ei ole: BCDIC-i mugav funktsioon, mis läks EBCDIC-le üleminekul kaduma, oli see, et numbrid 0-9 vastavad koodidele 0-9. Kuid nende vahel on seitsme koodi lüngad I и J ja vahel kaheksas koodis R и S juba BCDICis käinud. Kust nad tulid?

(E)BCDIC-i ajalugu algab samaaegselt IBM-i ajalooga – ammu enne elektroonilisi arvuteid. IBM tekkis nelja ettevõtte ühinemise tulemusena, millest tehnoloogiliselt kõige arenenum oli leiutaja Herman Hollerithi 1896. aastal asutatud Tabulating Machine Company. tabulaator. Esimesed tabulaatorid lihtsalt loendasid kindlas kohas perfokaartide arvu; kuid 1905. aastal alustas Hollerith tootmist kümnend tabulaatorid. Iga kümnendtabulaatori kaart koosnes suvalise pikkusega väljadest ja nendele väljadele tavalises kümnendvormingus kirjutatud numbrid liideti üle kogu paki. Kaardi jaotus väljadeks määrati tabulaatori plaastri paneeli juhtmete ühendamise teel. Näiteks sellel Hollerithi perfokaardil ladustatud Kongressi raamatukogus on number 23456789012345678 selgelt tembeldatud, teadmata, kuna see on jagatud väljadeks:

Miks ei ole tähed EBCDIC-s järjestikused?

Tähelepanelikumad võisid märgata, et Hollerithi kaardil on aukude jaoks 12 rida, kuigi arvude jaoks piisab kümnest; ja BCDIC-s kasutatakse kahe kõige olulisema biti iga väärtuse jaoks ainult 12 koodi 16-st võimalikust.

Muidugi pole see juhus. Algselt kavandas Hollerith lisaridu “erimärkide” jaoks, mida ei summeeritud, vaid lihtsalt loendati - nagu esimestes tabulaatorites. (Täna nimetaksime neid "bitiväljadeks".) Lisaks oli "erimärkide" hulgas võimalik määrata rühmanäitajaid: kui tabeldamisel oli vaja mitte ainult lõppsummasid, vaid ka vahesummasid, siis tabeldaja peatus, kui see tuvastas muutuse mis tahes rühmanäitajates ja operaator pidi digitahvlite vahesummad paberile ümber kirjutama, tahvli lähtestama ja tabelitamist jätkama. Näiteks raamatupidamissaldode arvutamisel võib kaartide rühm vastata ühele kuupäevale või ühele vastaspoolele.

1920. aastaks, kui Hollerith oli juba pensionile jäänud, hakati kasutama “kirjutustabulaatoreid”, mis olid ühendatud teletüüpi ja võisid ise vahesummasid printida ilma operaatori sekkumist vajamata. Nüüd oli raske kindlaks teha, millele iga trükitud number viitab. 1931. aastal otsustas IBM kasutada tähtede tähistamiseks "erimärke": märk 12. reas tähistas tähte A kuni I, 11. - alates J kuni R, nullist – alates S kuni Z. Uus "tähestiku tabel" võiks printida iga kaardirühma nime koos vahesummadega; sel juhul muutus katkematu veerg tähemärkidevaheliseks tühikuks. Pange tähele, et S tähistatakse aukude kombinatsiooniga 0+2 ja 0+1 kombinatsiooni algselt ei kasutatud, kuna kardeti, et kaks auku kõrvuti samas veerus põhjustavad lugejas mehaanilisi probleeme.

Miks ei ole tähed EBCDIC-s järjestikused?

Nüüd saate vaadata BCDIC tabelit veidi teise nurga alt:

Miks ei ole tähed EBCDIC-s järjestikused?

Välja arvatud see, et 0 ja tühik on vastupidised, määratlevad kaks kõige olulisemat bitti "erimärgi", mis on 1931. aastast vastava märgi perfokaardile löödud; ja kõige väiksema tähtsusega neli bitti määravad kaardi põhiossa augustatud numbri. Sümbolite tugi & - / lisati 1930. aastatel IBMi tabulaatoritesse ja nende märkide BCDIC-kodeering vastab nende jaoks tehtud augukombinatsioonidele. Kui oli vaja toetada veelgi suuremat arvu märke, löödi 8. rida täiendava “erimärgina” – seega võis ühes veerus olla kuni kolm auku. Selline perfokaartide formaat jäi peaaegu muutumatuks kuni sajandi lõpuni. NSV Liidus jätsid nad maha IBM-i ladina ja kirjavahemärkide kodeeringud ning kirillitsa tähtede jaoks lõid ridadesse 12, 11, 0 korraga mitu “erimärki” - mitte ainult kolme auguga ühes veerus.

Arvuti IBM 704 loomisel ei mõelnud nad selle märgikodeeringule kaua: võtsid kasutusele tollal perfokaartidel juba kasutusel olnud kodeeringu ja „panid selle oma kohale“. 0. aastal, üleminekul BCDIC-lt EBCDIC-le, jäeti iga sümboli madalat järku neli bitti muutmata, kuigi kõrgema järgu bitte segati veidi. Nii mõjutas Hollerithi eelmise sajandi alguses valitud perfokaardivorming kõigi IBMi arvutite arhitektuuri, kuni IBM Z-ni välja.

Allikas: www.habr.com

Lisa kommentaar