Bakit hindi magkasunod ang mga letra sa EBCDIC?

Ang pamantayan ng ASCII ay pinagtibay noong 1963, at ngayon ay halos walang gumagamit ng pag-encode na ang unang 128 na mga character ay naiiba sa ASCII. Gayunpaman, hanggang sa katapusan ng huling siglo, ang EBCDIC ay aktibong ginamit - ang karaniwang pag-encode para sa mga mainframe ng IBM at kanilang mga Sobyet na clone na EC computer. Ang EBCDIC ay nananatiling pangunahing encoding sa z/OS, ang karaniwang operating system para sa modernong IBM Z mainframes.

Ang agad na pumukaw sa iyong mata kapag tumitingin sa EBCDIC ay ang mga titik ay hindi magkasunod: sa pagitan I ΠΈ J at sa pagitan R ΠΈ S may mga hindi nagamit na posisyon (sa ES computer para sa mga agwat na ito ipinamahagi Mga character na cyrillic). Sino ang mag-aakalang mag-encode ng mga titik na may hindi pantay na espasyo sa pagitan ng mga katabing titik?

Bakit hindi magkasunod ang mga letra sa EBCDIC?

Ang mismong pangalang EBCDIC (β€œExtended BCDIC”) ay nagpapahiwatig na ang pag-encode na ito - hindi tulad ng ASCII - ay hindi nilikha mula sa simula, ngunit batay sa anim na bit na BCDIC na pag-encode, na ginamit mula noong IBM 704 (1954):

Bakit hindi magkasunod ang mga letra sa EBCDIC?

Walang agarang backward compatibility: isang maginhawang feature ng BCDIC na nawala sa paglipat sa EBCDIC ay ang mga numero 0-9 tumutugma sa mga code 0-9. Gayunpaman, may mga puwang ng pitong code sa pagitan I ΠΈ J at sa walong code sa pagitan R ΠΈ S nakapunta na sa BCDIC. Saan sila nanggaling?

Ang kasaysayan ng (E)BCDIC ay nagsisimula nang sabay-sabay sa kasaysayan ng IBM - bago pa man ang mga elektronikong computer. Nabuo ang IBM bilang resulta ng pagsasanib ng apat na kumpanya, kung saan ang pinaka advanced sa teknolohiya ay ang Tabulating Machine Company, na itinatag noong 1896 ni Herman Hollerith, ang imbentor. tabulator. Binibilang lang ng mga unang tabulator ang bilang ng mga punched card na na-punch sa isang partikular na lokasyon; ngunit noong 1905 nagsimula ang produksyon ni Hollerith decimal mga tabulator. Ang bawat card para sa decimal na tabulator ay binubuo ng mga field na arbitraryong haba, at ang mga numerong nakasulat sa mga field na ito sa karaniwang decimal na anyo ay pinagsama-sama sa buong deck. Natukoy ang breakdown ng mapa sa mga field sa pamamagitan ng pagkonekta sa mga wire sa patch panel ng tabulator. Halimbawa, sa Hollerith punch card na ito, nakaimbak sa Library of Congress, ang numerong 23456789012345678 ay malinaw na naselyohang, hindi alam na nahahati sa mga patlang:

Bakit hindi magkasunod ang mga letra sa EBCDIC?

Ang pinaka-matulungin ay maaaring napansin na sa mapa ng Hollerith mayroong 12 mga hilera para sa mga butas, bagaman ang sampu ay sapat para sa mga numero; at sa BCDIC, para sa bawat halaga ng pinakamahalagang dalawang bits, 12 code lamang ang ginagamit sa 16 na posible.

Siyempre, hindi ito nagkataon. Sa una, nilayon ni Hollerith ang mga karagdagang row para sa "mga espesyal na marka" na hindi idinagdag, ngunit binibilang lamang - tulad ng sa pinakaunang mga tabulator. (Ngayon ay tatawagin natin ang mga ito na "bit field".) Bilang karagdagan, kabilang sa mga "espesyal na marka" posible na magtakda ng mga tagapagpahiwatig ng grupo: kung ang tabulasyon ay nangangailangan hindi lamang ang mga panghuling kabuuan, kundi pati na rin ang mga intermediate, kung gayon ang tabulator ay titigil kapag nakakita ito ng pagbabago sa alinman sa mga indicator ng grupo , at kailangang muling isulat ng operator ang mga subtotal mula sa mga digital board sa papel, i-reset ang board, at ipagpatuloy ang pag-tabula. Halimbawa, kapag kinakalkula ang mga balanse sa accounting, ang isang pangkat ng mga card ay maaaring tumugma sa isang petsa o isang katapat.

Noong 1920, nang magretiro na si Hollerith, ginamit ang "mga tabulator sa pagta-type", na konektado sa isang teletype at maaaring mag-print ng mga subtotal sa kanilang sarili nang hindi nangangailangan ng interbensyon ng operator. Ang kahirapan ngayon ay upang matukoy kung ano ang tinutukoy ng bawat naka-print na numero. Noong 1931, nagpasya ang IBM na gumamit ng "mga espesyal na marka" upang ipahiwatig ang mga titik: isang marka sa ika-12 na hanay ang nagsasaad ng liham mula sa A sa I, sa ika-11 - mula sa J sa R, sa zero - mula S sa Z. Maaaring i-print ng bagong "alphabet tabulator" ang pangalan ng bawat pangkat ng mga card kasama ang mga subtotal; sa kasong ito, ang hindi naputol na column ay naging espasyo sa pagitan ng mga character. Mangyaring tandaan na S ay itinalaga ng kumbinasyong butas na 0+2, at ang kumbinasyong 0+1 ay hindi orihinal na ginamit dahil sa takot na ang dalawang butas na magkatabi sa iisang column ay magdudulot ng mga problema sa makina sa mambabasa.

Bakit hindi magkasunod ang mga letra sa EBCDIC?

Ngayon ay maaari mong tingnan ang talahanayan ng BCDIC mula sa isang bahagyang naiibang anggulo:

Bakit hindi magkasunod ang mga letra sa EBCDIC?

Maliban na ang 0 at espasyo ay binaligtad, ang pinakamahalagang dalawang bit ay tumutukoy sa "espesyal na marka" na na-punch sa punch card para sa kaukulang karakter mula noong 1931; at ang hindi bababa sa makabuluhang apat na bit ay tumutukoy sa digit na na-punch sa pangunahing bahagi ng card. Suporta sa simbolo & - / ay idinagdag sa mga tabulator ng IBM noong 1930s, at ang pag-encode ng BCDIC ng mga character na ito ay tumutugma sa mga kumbinasyong butas na na-punch para sa kanila. Kapag kailangan ang suporta para sa mas malaking bilang ng mga character, ang row 8 ay sinuntok bilang karagdagang "espesyal na marka" - kaya, maaaring magkaroon ng hanggang tatlong butas sa isang column. Ang format na ito ng mga punched card ay nanatiling halos hindi nagbabago hanggang sa katapusan ng siglo. Sa USSR, iniwan nila ang mga pag-encode ng Latin at bantas ng IBM, at para sa mga letrang Cyrillic ay sinuntok nila ang ilang "mga espesyal na marka" nang sabay-sabay sa mga hilera 12, 11, 0 - hindi limitado sa tatlong butas sa isang hanay.

Noong nilikha ang IBM 704 computer, hindi na nila pinag-isipan nang matagal ang pag-encode ng character para dito: kinuha nila ang encoding na ginamit na sa mga punched card noong panahong iyon, at "ilagay lang ito sa lugar nito." Noong 0, sa panahon ng paglipat mula sa BCDIC patungo sa EBCDIC, ang mababang-order na apat na bit ng bawat simbolo ay hindi nabago, kahit na ang mga high-order na bit ay bahagyang binasa. Kaya, ang format ng punched card na pinili ni Hollerith sa simula ng huling siglo ay nakaimpluwensya sa arkitektura ng lahat ng IBM computer, hanggang sa at kabilang ang IBM Z.

Pinagmulan: www.habr.com

Magdagdag ng komento