FORTRANでは文法上, 以下のFORTRAN文字集合が定められており, FORTRANプログラムは,これらの文字だけで書かなければならない. (注釈行や文字型データの中は例外)
英字: ABCDEFGHIJKLMNOPQRSTUVWXYZ 数字: 0123456789 特殊文字: 空白!'() *+,-./:=! 通貨記号
したがって, 小文字でFORTRANプログラムを書くのは厳密に言えば文法違反になる.
これらのFORTRAN文字を含めて, 文字の内部表現方法はFORTRANの規格では特に規定されていない. 実数の内部表現方法と同様に,IBM規格であるEBCDICと, アメリカの標準規格であるASCIIとにわかれる.
IBMによって定められた拡張2進化10進情報交換用コード (Extended Binary Coded Decimal Interchange Code). その名が示す通り, BCD(2進化10進)コードと呼ばれるものを拡張したものである. BCDコードとは16進数のA,B,C,D,E,Fを使わず, 0から9までの数字を使って10進数を表現するもので, 4ビットで10進数の1桁に対応させる.EBCDICでは8ビットで1文字を表現し, 数字は上位4ビットをFとして下位4ビットをBCDコードに対応させている. (これがEBCDICたる由縁) 富士通,日立などのいわゆるIBMコンパチ汎用機でも採用されているが, 各社,微妙に定義が異なる.
FORTRAN文字に関しては各社とも同じコードを使っているようであるが, その他の文字についてはかなり機種依存性が強い. 特に,日本ではカタカナを使うためにコード体系を変更している場合があり, その対応の仕方に2種類ある. 一つは,アルファベットの小文字の部分をカタカナに置き換えてしまう方法で, この方法では,カタカナとアルファベットの小文字は同時に使用できない. 富士通のMシリーズではこの方法が採用されている (計算センターによって異なる場合がある). もう一つは,小文字の部分を上記のようにカタカナに置き換えた上で, さらに,小文字をあいているコードに押し込めたもので, EBCDIK(最後のKはカナ)コードとも呼ばれる. これは日立のMシリーズで採用されている. これら2つの方法で,アルファベットの大文字とカタカナに関しては 同一のコードとなるが,小文字に関しては互換性がなくなる.
これはアメリカ規格協会(ANSI)で規定された文字コード体系である. UNIX, MS-DOS などで採用されている. 日本では,ほぼ同じものがJIS X0201として規定されている. ASCII コードは7ビットで,最上位桁は0であるが, JISには8ビット全部使ってカタカナまで規定した8単位符号表がある.
このように文字コードは,たとえFORTRAN文字であっても機種に依存する. したがって,文字コードを返すICHAR関数はFORTRANの標準の組み込み関数 であるが,その値は機種に依存することになる. 文字コードの大小を機種に依存せずに比較するための関数として, LGE, LGT, LLE, LLT があり, これはその計算機のコード体系によらず, ASCIIコード順に比較する.
EBCDIC コード表
{0.5mm |c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c| & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & A & B & C & D & E & F
0 &NUL&DLE& & &SP && & - & & & & & & & & & 0
1 &SOH&DC1& & & & & / & & a & j &! !&&A& J & & 1
2 &STX&DC2&FS &SYN& & & & & b & k & s & & B & K & S & 2
3 &ETX&DC3& & & & & & & c & l & t & & C & L & T & 3
4 & & & & & & & & & d & m & u & & D & M & U & 4
5 &HT & &LF & & & & & & e & n & v & & E & N & V & 5
6 & &BS &ETB& & & & & & f & o & w & & F & O & W & 6
7 &DEL& &ESC&EOT& & & & & g & p & x & & G & P & X & 7
8 & &CAN& & & & & & & h & q & y & & H & Q & Y & 8
9 & &EM & & & & & & & i & r & z & & I & R & Z & 9
A & & & & &※ &※ &※ & : & & & & & & & &
B &VT & & & & . &&, & & & & & & & &
C &FF & & &DC4&<&*&% & @ & & & & & & & &
D &CR &GS &ENQ&NAK& ( & ) & & ' & & & & & & & &
E &SO &RS &ACK& & + & ; &>& = & & & & & & & &
F &SI &US &BEL&SUB&※ &※ & ? & " & & & & & & & &>
- 制御コードの意味に関しては,この節の最後の表を参照のこと.
- 富士通のコードにはこれ以外の制御コードも定義されている.
- 日立のEBCDIKではアルファベットの小文字のコードが異なる.
- 特殊文字部分の※印は富士通と日立で定義が異なる部分である.
- (5B) は通貨記号であり,アメリカでは となる. その場合には,E0のは!!(バックスラッシュ)となる.
ASCII コード表
{0.5mm |c|c|c|c|c|c|c|c|c| & 0 & 1 & 2 & 3 & 4 & 5 & 6 & 7
0 & NUL & DLE & SP & 0 & @ & P & & p
1 & SOH & DC1 & ! & 1 & A & Q & a & q
2 & STX & DC2 & " & 2 & B & R & b & r
3 & ETX & DC3 & # & 3 & C & S & c & s
4 & EOT & DC4 & & 4 & D & T & d & t
5 & ENQ & NAK & % & 5 & E & U & e & u
6 & ACK & SYN & & & 6 & F & V & f & v
7 & BEL & ETB & ' & 7 & G & W & g & w
8 & BS & CAN & ( & 8 & H & X & h & x
9 & HT & EM & ) & 9 & I & Y & i & y
A & LF & SUB & * & : & J & Z & j & z
B & VT & ESC & + & ; & K & [ & k &
C & FF & FS & , & < & L &!!& l & |
D & CR & GS & - & = & M & ] & m &
E & SO & RS & . & > & N &!^!& n &! !
F & SI & US & / & ? & O & & o & DEL>
JIS X0201 では上の表の!!が, ! !が^-(上線)となっている.
制御コード表
記号 意味 英語名 NUL 空値 null SOH ヘディング開始 start of heading STX テキスト開始 start of text ETX テキスト終了 end of text EOT 伝送終了 end of transmission ENQ 問い合わせ enquiry ACK 肯定応答 acknowledge BEL ベル bell BS 後退 backspace HT 水平タブ horizontal tabulation LF 改行 line feed VT 垂直タブ horizontal tabulation FF 改ページ form feed CR 復帰 carriage return SO シフトアウト shift out SI シフトイン shift in DLE 伝送制御拡張 data link escape記号 意味 英語名 DC1 装置制御1 device control 1 DC2 装置制御2 device control 2 DC3 装置制御3 device control 3 DC4 装置制御4 device control 4 NAK 否定応答 negative acknowledge SYN 同期信号 synchronous idle ETB 伝送ブロック終結 end of transmission block CAN 取消 cancel EM 媒体終端 end of medium SUB 置換文字 substitute character ESC 拡張 escape FS ファイル分離文字 file separator GS グループ分離文字 group separator RS レコード分離文字 record separator US ユニット分離文字 unit separator SP 空白 space DEL 消去 delete
富士通と日立のEBCDICとASCIIの対応
tabularcccc コード & 富士通 & 日立 & ASCII
4A & c* & [ & [
4F & !|!& ! & !
5A & ! & ] & ]
5B & & &
5F & & !^! & !^!
6A & & !|! & !|!
E0 & & & !!>
- 注1:富士通の4Aはcに縦棒.
- 注2:ASCIIコードとの対応は, 通常アスキー端末に出力されるコードで, これ以外のコードに変換される場合もある.
Back to Main
Latex Source
地球流体電脳倶楽部 : 95/6/9 (Version 5.0)NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:03:47 EDT 1995