加藤@ODNです.

In article <cvn5ro$a09$1@ns.src.ricoh.co.jp>, Junn Ohta wrote:
>fj.comp.oldiesの記事<421ed469.7069%katoh@pop12.odn.ne.jp>で
>    katoh@pop12.odn.ne.jpさんは書きました。
>> >・ソースが長くなるとコンパイルが遅くなるのでそもそも空白を嫌う
>> 
>> H定数の中以外は,一切空白を読み飛ばすのが「真っ当な」FORTRAN コンパイラ
>> の仕様ですから,これも「?」.
>
>空白を読み飛ばすことに加えて、少なくとも汎用機では
>論理レコードが80バイト1レコードのように固定長レコ
>ードを採用していたので、空白を詰めて書いてもスキャ
>ンする文字数に変わりはなかったはずです。

確かに.

>ただ、現在の計算機言語のようなトークンリーダは存在
>しなくて、ステートメント全体を読み込んでから

そもそも FORTRAN の時はトークンという概念がなかったからねぇ...一番下
のレベルでは「空白を読み飛ばす」一文字リーダが使われてました.
#これの空白を読み飛ばす時間が大きく効いていたとは考え難い.

>・「FORMAT(」で始まっていればFORMAT文(ただしFORMAT
>  という名前の配列の可能性もあるのでそれはあとでチ
>  ェック)
>・そうでなくて「=」が含まれていれば代入文かDO文
>・そうでなくてGOTOで始まっていればGOTO文
>  ...

大した違いではありませんが,私がコンパイラを作った時の古〜い記憶では,
"=", ",", "(", ")" の出現の有無と順序をチェックして基本的な分類※を行
い,それ以外の場合に GOTO 文の類のチェックを行っていたような...
#なんせ,   
         G    OT    O1  00
#なんてのも「正しい」GOTO 文ですから,色々と面倒...しかも次の行が
      +    = 1.0
#なら「正しい」代入文...

※ "()" 対の中の "," は(添字の区切りだから)無視して,"= ," なら DO 
文,"=" だけなら代入文,"( ) ," は算術 IF 文,みたいな.
#なので,H 定数の存在は甚だしく面倒.

>のように分岐しながら構文解析していたはずなので、こ
>の段階のスキャンでコンパイル時間が遅くなる可能性は
>あったかもしれませんね。

なので,これも余り関係ないように思えます.
-- 
Hideki Kato <mailto:katoh@pop12.odn.ne.jp>