Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Piawaian ASCII telah diterima pakai pada tahun 1963, dan kini hampir tidak ada sesiapa yang menggunakan pengekodan yang 128 aksara pertamanya berbeza daripada ASCII. Walau bagaimanapun, sehingga akhir abad yang lalu, EBCDIC telah digunakan secara aktif - pengekodan standard untuk kerangka utama IBM dan klon Soviet komputer ES mereka. EBCDIC kekal sebagai pengekodan lalai dalam z/OS, sistem pengendalian standard untuk kerangka utama IBM Z moden.

Apa yang menarik perhatian anda apabila melihat EBCDIC ialah huruf tidak sebaris: antara I ΠΈ J dan antara R ΠΈ S kedudukan yang tidak digunakan kekal (pada komputer ES untuk selang waktu ini diedarkan Simbol Cyrillic). Siapa sangka untuk mengekod huruf dengan jurang yang tidak sama antara huruf bersebelahan?

Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Nama EBCDIC ("Extended BCDIC") membayangkan bahawa pengekodan ini - tidak seperti ASCII - tidak dicipta dari awal, tetapi berdasarkan pengekodan BCDIC enam bit yang telah digunakan sejak itu. IBM 704 (1954):

Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Tiada keserasian ke belakang langsung: ciri mudah BCDIC, hilang dengan peralihan kepada EBCDIC, ialah digit 0-9 sepadan dengan kod 0-9. Walau bagaimanapun, tujuh jurang kod antara I ΠΈ J dan lapan kod antara R ΠΈ S dalam BCDIC sudah pun. Dari mana mereka datang?

Sejarah (E)BCDIC bermula pada masa yang sama dengan sejarah IBM, jauh sebelum komputer elektronik. IBM telah dibentuk hasil daripada penggabungan empat syarikat, di mana yang paling maju dari segi teknologi ialah Syarikat Mesin Tabulating, yang diasaskan pada tahun 1896 oleh Herman Hollerith, pencipta penjadual. Penjadual pertama hanya mengira bilangan kad tebuk yang ditebuk di tempat tertentu; tetapi pada tahun 1905 Hollerith memulakan pengeluaran perpuluhan tab. Setiap kad untuk penjadual perpuluhan terdiri daripada medan dengan panjang sewenang-wenangnya, dan nombor yang ditulis dalam medan ini dalam bentuk perpuluhan biasa telah ditambah di seluruh dek. Pecahan peta kepada medan telah ditetapkan dengan menyambungkan wayar pada panel tampalan penjadual. Contohnya, pada kad tebuk Hollerith ini, disimpan di Perpustakaan Kongres, nombor 23456789012345678 nampaknya timbul, tidak diketahui bagaimana ia dibahagikan kepada medan:

Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Yang paling prihatin mungkin menyedari bahawa peta Hollerith mempunyai 12 baris untuk lubang, walaupun sepuluh sudah cukup untuk nombor; dan dalam BCDIC, hanya 12 daripada 16 kod yang mungkin digunakan untuk setiap nilai dua bit yang paling ketara.

Sudah tentu, ini bukan kebetulan. Hollerith pada asalnya bertujuan untuk baris tambahan untuk "tanda khas" yang tidak disimpulkan, tetapi hanya dikira - seperti dalam jadual pertama. (Hari ini kami akan memanggilnya "medan bit".) Di samping itu, penunjuk kumpulan boleh ditetapkan antara "tanda khas": jika bukan sahaja jumlah akhir diperlukan semasa penjadualan, tetapi juga jumlah pertengahan, maka penjadual akan berhenti apabila ia dikesan. perubahan dalam mana-mana penunjuk kumpulan , dan pengendali perlu menyalin subjumlah daripada papan skor digital ke kertas, menetapkan semula papan mata dan menyambung semula penjadualan. Sebagai contoh, apabila mengira kunci kira-kira, sekumpulan kad boleh sepadan dengan satu tarikh atau satu rakan niaga.

Menjelang tahun 1920, apabila Hollerith telah pun bersara, "tabulator pencetakan" mula digunakan, yang disambungkan kepada mesin teletaip dan boleh mencetak subtotal sendiri tanpa memerlukan campur tangan pengendali. Kesukaran sekarang adalah untuk menentukan apa yang dirujuk oleh setiap nombor yang dicetak. Pada tahun 1931, IBM memutuskan untuk menetapkan huruf menggunakan "tanda khas": tanda di baris ke-12 menandakan huruf daripada A kepada I, dalam jilid ke-11 - daripada J kepada R, pada sifar - daripada S kepada Z. "Penjadual abjad" baharu boleh mencetak nama setiap kumpulan kad, bersama-sama dengan jumlah kecil; pada masa yang sama, lajur yang tidak terputus bertukar menjadi ruang antara aksara. Perhatikan itu S dilambangkan dengan gabungan lubang 0+2, dan kombinasi 0+1 pada asalnya tidak digunakan kerana bimbang dua lubang bersebelahan dalam lajur yang sama boleh menyebabkan masalah mekanikal pada pembaca.

Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Kini anda boleh melihat jadual BCDIC dari sudut yang sedikit berbeza:

Mengapakah huruf tidak berturut-turut dalam EBCDIC?

Kecuali 0 dan ruang ditukar, dua bit atas mentakrifkan "tanda khas" yang telah ditebuk ke dalam kad tebuk sejak 1931 untuk aksara yang sepadan; dan empat bit bawah menentukan nombor yang ditebuk di bahagian utama kad. Sokongan simbol & - / telah ditambahkan pada tab IBM pada tahun 1930-an, dan pengekodan BCDIC bagi aksara ini sepadan dengan kombinasi lubang yang ditebuk untuknya. Apabila sokongan untuk lebih banyak aksara diperlukan, baris 8 telah ditumbuk sebagai "tanda khas" tambahan - oleh itu, mungkin terdapat sehingga tiga lubang dalam satu lajur. Format kad tebuk ini kekal hampir tidak berubah sehingga akhir abad ini. Di USSR, pengekodan IBM Latin dan tanda baca ditinggalkan, dan untuk huruf Cyrillic mereka menumbuk beberapa "tanda khas" sekaligus dalam baris 12, 11, 0 - tidak terhad kepada tiga lubang dalam satu lajur.

Apabila komputer IBM 704 sedang dibuat, mereka tidak memikirkan pengekodan aksara untuknya untuk masa yang lama: mereka mengambil pengekodan yang telah digunakan kemudian dalam kad tebuk, dan hanya "diletakkan" 0. Pada tahun 1964, apabila bertukar daripada BCDIC kepada EBCDIC, empat bit bawah bagi setiap aksara dibiarkan tidak berubah, walaupun bit yang lebih tinggi dikocok sedikit. Oleh itu, format kad tebuk yang dipilih oleh Hollerith pada awal abad yang lalu mempengaruhi seni bina semua komputer IBM, sehingga dan termasuk IBM Z.

Sumber: www.habr.com

Tambah komen