分野を限ると主要な感じになる言語 1種を解説
なんか流行っているみたいなので便乗する。
FORTRAN
数値計算方面ではバリバリ現役な最初の高級言語。配列の扱いが簡単だったりと、C と比べて高級な部分があったりする。
最古の高級言語だけあって色々と試行錯誤がなされていて、言語仕様的には意外と面白い。ただ、その手の面白仕様は非推奨になったり、廃止予定になってしまったりする。
そんな、推奨されなかったり、廃止予定になったりした規格を解説する。
entry文
サブルーチンや関数の途中から実行できる機能。
多分、初期化部分だけ異なるほとんど同じ 2つのサブルーチンを一つにまとめたい、とか、サブルーチンのローカル変数を共通化したい、とか、そんな DRY な要望から生まれた機能なんじゃないかな、と思う。
選択戻り
サブルーチンの引数に文番号 ( goto のジャンプ先 ) を渡すことができる。サブルーチンから return するときにジャンプ先を選択することができる。
ファイルを開く open 文や、ファイルから読む read 文は、エラーになった場合や EOF に達した場合のジャンプ先を引数で渡せるという仕組みになっていて、同じような事をユーザーが定義したサブルーチンでもやりたいという要望があったのかな、と思う。
関数では使えない。これは選択戻りを使用したサブルーチンを、ジャンプ先に対応する整数を返す関数としてコンパイルする事を想定しているのかな、と思う。サブルーチンは返り値がないので返り値を追加する事はできるけど、関数は既に返り値があるので、返り値を追加するのは難しいよね、という事かな。
算術if文
与えた式が、正か、0か、負かで、別々の文にジャンプすることができる。
初期の IBM のコンピュータに、そういうマシンインストラクションがあったためらしい。
論理 if 文 ( 条件式の真偽で分岐するお馴染みの if 文 ) よりも先に生まれたのだそうだ。
計算型 goto
与えた式の値によって、ジャンプ先が決まる。ジャンプテーブルみたいなもの。
select case 構文 ( C でいうところの switch case ) が規格になるのは Fortran 90 からで、その代わりに使われていたようだ。
ホレリス定数
「文字数H文字列」という形の文字列定数。'Hello world' は 11HHello world となる。
明らかに文字数を数えるのが面倒くさい。