なぜ算術IF文は論理IF文よりも先にあったのか

 古いFORTRANには算術IF文というのがある。例えば以下のコード。

IF (A) 100,200,300

100 CONTINUE Aが負の時ここに分岐

200 CONTINUE Aがゼロの時ここに分岐

300 CONTINUE Aが正の時ここに分岐


 調べてみたら最初期のFORTRANから存在している。比較によるIF文(論理IF文)はFORTRAN IVから実装されているが、LOGICAL型が追加されたのもFORTRAN IVからなのでその時に一緒に実装されたものと思われる。が、なぜ最初に算術IF文があったのか?
 最初のFORTRANはIBM704用に開発された。IBM704は2の補数ではなく絶対値と正負の符号で数値を扱うマシン。比較命令はどんなものがあるだろうか。
CORDING for the MIT-IBM 704 COMPUTER(J.McCarthyの名前もあるよ)というのを見つけたので比較に関する命令セットを調べた。

CHAPTER III THE CONTROL INSTRUCTIONS

Compare Accumulator with Storage
CAS A
if C(AC)>C(A), go to the next instruction
if C(AC)=C(A), skip one instruction
if C(AC)http://ja.wikipedia.org/wiki/FORTRAN
http://ja.wikipedia.org/wiki/FORTRAN

CORDING for the MIT-IBM 704 COMPUTER [pdf]

FORTRAN ASSEMBLY PROGRAM(FAP) for the IBM 709/7090[pdf]

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック