FORTRANのひけつ 1

不定の概念

FORTRAN 規格の基本的な概念に「不定」という概念があります.これは最も重 要な概念の一つでありながら,最もわかりにくい概念でもあります.岩波 FORTRAN 辞典には,

プログラム実行中に,変数,配列要素または部分列が想定できるような値 を持たない定義状態.
とありますが,なかなかイメージが湧きません.簡単にいえば,「○○の時, 変数××は不定となる.」という文章は,コンパイラをつくる人に対しては, 「○○の時, 変数××が占めていた記憶領域をどのように使ってもよい.」と いうことになり,我々プログラマに対しては,「コンパイラをつくる人に,上 のように言ってしまったので,××がどうなるかわからない.」ということに なります.

「不定」とは逆に,規格によって値が保証されている状態を「確定」といいま す.規格上,プログラムの中で引用できる変数は「確定」された変数だけです. 変数が「不定」となる例に次のようなものがあります.

2番めの状況を回避するには SAVE 文を使います.SAVE 文は,サブルーチンの 実行が終ってもサブルーチン内の変数の値を保持するように指示する宣言文で す.コンパイラによっては(というより多くのコンパイラでは)サブルーチン の中で使われる局所変数を保存しますが,これは「方言」です. ただし, DATA 文で指定された変数は,.そ.の.値.が.書.き.換.え.ら.れ. な.い.限.り,RETURN 文または END 文を実行しても「不定」にはなりません.

因みに,DCL の xxpGET/xxpSET ルーチンが,掲示板の役目を果たせる のは,この DATA 文と SAVE 文のおかげです.



Back to Main


Latex Source


地球流体電脳倶楽部 : 95/6/9 (Version 5.0)

NUMAGUTI Atusi <a1n@gfdl.gov>
Last Modified: Thu Aug 31 13:11:14 EDT 1995