EBCDIC (英語: Extended Binary Coded Decimal Interchange Code[1]、エビシディック、拡張二進化十進コード[2]) はIBMにより定義された8ビットのコード化文字セットである[3]。ASCII普及前の1963年に、BCD(Binary-coded decimal、二進化十進コード)を拡張する形で作られ、主にIBM系のメインフレームやオフィスコンピュータなどで使用されている[4][5][6]。

IBMのCDRA(Character Data Representation Architecture; 文字データ表現体系)では、EBCDICは符号化方法(Encoding Scheme)の1つと位置づけられている[7]。各国語などの文字集合であるコードページを、EBCDICなどの符号化方式で符号化するが、EBCDICの符号化にもシングルバイト、ダブルバイト、マルチバイトの構造がある。これらの組み合わせがCCSIDとして定義されており、例えば日本用のEBCDICのCCSIDは、ひらがなや漢字を含まない組み合わせも含めると、10以上定義されている[8]。

この他、IBM以外の互換メーカーなどのEBCDICをベースとした各種の文字コードまたは符号化方法も、EBCDICまたはEBCDIC系と呼ばれる場合がある。

歴史

EBCDICはSystem/360と同時に発表された。

IBMはASCII標準化委員会の主提案社であったが[9]、BCDをベースとしたのは、当時のデータの大多数はパンチカードの形でBCDの形式で保管されていたため、蓄積データの互換性を優先したためである。

System/360がベストセラーとなると、そのクローンであるRCA Spectra、ICL System 4、富士通 FACOM、日立製作所 HITACなどもEBCDICを採用した。

EBCDICを標準の文字コードとするオペレーティングシステムには、IBMメインフレーム用のz/OS、z/VSE、z/VMや、IBMミッドレンジコンピュータ用のOS/400、IBM iなどがある。ただし、IBMメインフレーム上でもz/OS上のUSS(UNIX互換環境)や、Linux、あるいはAS/400やPower Systems i Edition上で稼動するLinuxやAIXなどは、ASCIIである。EBCDICと、ASCII、シフトJIS、Unicodeなどの主要な文字コード間は、オペレーティングシステム、ミドルウェア、各種ツール、アプリケーション・ソフトウェアなどの機能を使用したコード変換が行われている。

IBM以外ではBS2000、HP MPE、Unisys MCPなどもEBCDICをベースにしている。日立製作所はEBCDICをベースとした自社の文字コードをEBCDIKと呼んでいる[10]。上述のようにIBMの日本用EBCDICの組み合わせ(CCSID)は10以上定義されているが、他メーカーでは細部が異なるため、いわゆるEBCDIC系統では多数の文字コードが存在している。

詳細

CCSID、コードページとの関係

上述のように、IBM CDRA上ではEBCDICは「文字コード」ではなく「符号化方法」の1つであり、具体的なコード配置(各文字と符号位置の配置)はコードページによっても異なる。符号化方法にEBCDIC (1100)を使用したコードページとCCSIDの例には以下がある。なお CCSID 5026(日本語カタカナ拡張)にはコードページが2つあり(混合CCSID)、切り替えて使用する。

EBCDICを使用したCCSID、コードページの例
CCSIDコードページ(CPGID)符号化方法(ES)コードページ名備考
37[11]371100USA/Canada - CECPUSA英語(EBCDIC)
500[12]5001100International #5多国語英語(EBCDIC)
5026/930/1390[13]2901100Japanese (Katakana) ExtendedSBCS日本語カナ(EBCDIC)
3001100Japan (Kanji) - Host, DBCSDBCS日本語(EBCDIC)
5035/939/1399[14]010271100Japanese (Latin) ExtendedSBCS日本語英小文字カナ(EBCDIC)
3001100Japan (Kanji) - Host, DBCSDBCS日本語(EBCDIC)

コード配置

 00102030405060708090A0B0C0D0E0F0
0    sp&-        0
1      /     AJ 1
2            BKS2
3            CLT3
4            DMU4
5            ENV5
6            FOW6
7            GPX7
8            HQY8
9            IRZ9
A       :        
B    . ,#        
C    <*%@        
D    ()_'        
E    +;>=        
F      ?"        
 00102030405060708090A0B0C0D0E0F0
0    sp&-コテハムリ{}¥0
1     ゥ/サaj~ルAJ 1
2    。ェイシbksレBKS2
3    「ォウスcltロCLT3
4    」ャエセdmuワDMU4
5    、ュオソenvンENV5
6    ・ョカタfow゛FOW6
7    ヲッキチgpx゜GPX7
8    ァークツhqy HQY8
9    ィアケ`irz IRZ9
A    ¢!¦:トヒメ     
B    .$,#ナフモ     
C    <*%@ニヘヤ     
D    ()_'ヌホユ     
E    +;>=ネマヨ     
F    │¬?"ノミラ     

制御文字コードの配置

EBCDICにもASCIIと同様、通信処理の制御や周辺機器の制御などの目的に用いる文字コードが存在する。割り当て範囲は、16進数表現の00hから3Fhの間と0FFh。

 00102030405060708090A0B0C0D0E0F0
0NULDLEDS(予約)sp&-コテハムリ{}¥0
1SOHDC1SOS(予約) ゥ/サaj~ルAJ 1
2STXDC2FSSYN。ェイシbksレBKS2
3ETXDC3WUSIR「ォウスcltロCLT3
4SELRES/ENPBYP/INPPP」ャエセdmuワDMU4
5HTNLLFTRN、ュオソenvンENV5
6RNLBSETBNBS・ョカタfow゛FOW6
7DELPOCESCEOTヲッキチgpx゜GPX7
8GECANSASBSァークツhqy HQY8
9SPSEMSFEITィアケ`irz IRZ9
ARPTUBSSM/SWRFF¢!¦:トヒメ     
BVTCU1CSPCU3.$,#ナフモ     
CFFIFSMFADC4<*%@ニヘヤ     
DCRIGSENQNAK()_'ヌホユ     
ESO/LS1IRSACK(予約)+;>=ネマヨ     
FSI/LS0IUS/ITBBELSUB│¬?"ノミラ    EO

ASCIIと共通の機能名称を持つ制御文字コードがある反面、プリンタ等の基本的な改行制御に関わる制御文字コードの個数に差異があるといった違いもある。

脚注

  1. ↑ J.DONOVAN 1972, p. 65.
  2. ↑ AS/400用語集
  3. ↑ Extended Binary-Coded Decimal Interchange Code (EBCDIC) - IBM Terminology
  4. ↑ What is EBCDIC? - wiseGEEK
  5. ↑ The EBCDIC character set - Application programming on z/OS
  6. ↑ EBCDIC - DB2 10 for z/OS
  7. ↑ Appendix A. Encoding Schemes - IBM CDRA
  8. ↑ Coded character set identifiers - IBM CDRA
  9. ↑ They had 4 staff on the final 21-member ASA X3.2 sub-committee
  10. ↑ 付録K.4 EBCDIC/EBCDIKのコード表 - 日立製作所
  11. ↑ CCSID 37 - IBM CDRA
  12. ↑ CCSID 500 - IBM CDRA
  13. ↑ CCSID 5026 - IBM CDRA
  14. ↑ CCSID 5035 - IBM CDRA

参考文献

外部リンク

⌬ Phoenix Mesh CID: 未登録 IPFS未登録 📡 0ピア N=1 CRITICAL PQS B68