EBCDIC では文字が連続していないのはなぜですか?

ASCII 標準は 1963 年に採用され、現在では最初の 128 文字が ASCII と異なるエンコーディングを使用する人はほとんどいません。 ただし、前世紀の終わりまでは、IBM メインフレームとそのソビエト クローン EC コンピュータの標準エンコーディングである EBCDIC が積極的に使用されていました。 EBCDIC は、最新の IBM Z メインフレームの標準オペレーティング システムである z/OS の主要なエンコーディングであり続けます。

EBCDIC を見るとすぐに目につくのは、文字が連続していないことです。 I и J そしてその間 R и S (これらの間隔の間、ES コンピュータ上に未使用のポジションがありました) 配布された キリル文字)。 隣接する文字間のスペースが等しくない文字をエンコードするなど誰が考えたでしょうか?

EBCDIC では文字が連続していないのはなぜですか?

EBCDIC (「拡張 BCDIC」) という名前自体が、このエンコーディングが - ASCII とは異なり、最初から作成されたのではなく、以来使用されている XNUMX ビット BCDIC エンコーディングに基づいていることを示唆しています。 IBM 704 (1954):

EBCDIC では文字が連続していないのはなぜですか?

すぐには下位互換性はありません。BCDIC の便利な機能は、EBCDIC への移行で失われましたが、 0 - 9 コード0~9に対応します。 ただし、間には XNUMX コードのギャップがあります。 I и J 間のXNUMXつのコードで R и S すでにBCDICに行ったことがあります。 彼らはどこから来ましたか?

(E)BCDIC の歴史は、IBM の歴史と同時に始まり、電子コンピューターのずっと前から始まります。 IBM は 1896 社の合併の結果として設立されました。その中で最も技術的に進んだのは、発明者のハーマン・ホレリスによって XNUMX 年に設立された集計機会社でした。 タブ。 最初の集計ツールは、特定の場所にパンチされたカードの数を単純に数えていました。 しかし、1905 年にホレリスは生産を開始しました。 XNUMX進数 集計表。 十進数タブの各カードは任意の長さのフィールドで構成されており、これらのフィールドに通常の XNUMX 進形式で書かれた数値がデッキ全体で合計されます。 マップのフィールドへの分割は、タブレータのパッチ パネルにワイヤを接続することによって決定されました。 たとえば、このホレリスのパンチカードでは、 保管されている 米国議会図書館では、番号 23456789012345678 が明確に刻印されていますが、フィールドに分割されているかどうかは不明です。

EBCDIC では文字が連続していないのはなぜですか?

最も注意深い人は、ホレリス マップには穴が 12 列あることに気づいたかもしれませんが、数字は 12 行あれば十分です。 また、BCDIC では、最上位 16 ビットの各値について、可能な XNUMX 個のコードのうち XNUMX 個のみが使用されます。

もちろん、これは偶然ではありません。 当初、ホレリスは、最初の集計表のように、合計されずに単にカウントされる「特別なマーク」の追加行を意図していました。 (今日では、それらを「ビット フィールド」と呼びます。) さらに、「特別なマーク」の中でグループ インジケーターを設定することもできました。集計に最終的な合計だけでなく中間の合計も必要な場合、集計ツールは次の時点で停止します。いずれかのグループ指標の変化が検出されたため、オペレーターはデジタルボードから小計を紙に書き直し、ボードをリセットして集計を再開する必要がありました。 たとえば、会計残高を計算する場合、カードのグループが XNUMX つの日付または XNUMX つの取引相手に対応する可能性があります。

ホレリスがすでに引退していた 1920 年までに、テレタイプに接続され、オペレーターの介入を必要とせずに小計自体を印刷できる「タイピング集計機」が使用されるようになりました。 ここでの困難は、印刷されたそれぞれの数字が何を指しているのかを判断することでした。 1931 年、IBM は文字を示すために「特別なマーク」を使用することを決定しました。12 行目のマークは、からの文字を示していました。 A до I、11番目 - から J до R、ゼロから S до Z。 新しい「アルファベット表作成ツール」は、カードの各グループの名前を小計とともに印刷できます。 この場合、途切れていない列が文字間のスペースに変わりました。 その点に注意してください S は穴の組み合わせ 0+2 で指定されますが、0+1 の組み合わせは、同じ列内で隣り合う XNUMX つの穴がリーダーに機械的な問題を引き起こすことを恐れて、当初は使用されませんでした。

EBCDIC では文字が連続していないのはなぜですか?

ここで、BCDIC テーブルを少し異なる角度から見ることができます。

EBCDIC では文字が連続していないのはなぜですか?

0 とスペースが逆になっていることを除いて、最上位 1931 ビットは、XNUMX 年以来、対応する文字のパンチカードに打ち込まれてきた「特別なマーク」を定義します。 最下位 XNUMX ビットは、カードの主要部分に打ち込まれる数字を決定します。 シンボルのサポート & - / は 1930 年代に IBM 表作成ツールに追加され、これらの文字の BCDIC エンコードは、それらの文字にパンチされた穴の組み合わせに対応します。 さらに多くの文字のサポートが必要な場合は、行 8 が追加の「特別なマーク」としてパンチされました。つまり、12 つの列に最大 11 つの穴が存在する可能性がありました。 このパンチカードの形式は、世紀末までほとんど変更されませんでした。 ソ連では、IBM のラテン語と句読点のエンコーディングを残し、キリル文字の場合は、0 列に XNUMX つの穴に限定されず、行 XNUMX、XNUMX、XNUMX に一度にいくつかの「特別なマーク」を打ちました。

IBM 704 コンピュータが作成されたとき、彼らはその文字エンコーディングについてあまり考えませんでした。当時パンチカードですでに使用されていたエンコーディングを採用し、それを「その場所に置いた」だけでした。 0 年の BCDIC から EBCDIC への移行中、上位ビットは少しシャッフルされましたが、各シンボルの下位 1964 ビットは変更されませんでした。 したがって、前世紀の初めにホレリスによって選択されたパンチカード形式は、IBM Z に至るまでのすべての IBM コンピューターのアーキテクチャに影響を与えました。

出所: habr.com

コメントを追加します