DCLのしくみ 2
xxpGET/xxpSET で内部変数管理地球流体電脳ライブラリでは,例えば,SGLGET/SGLSET のような内部変 数管理ルーチンが多く使われています.内部変数管理ルーチンとは,設定され た変数の値を保持し,問い合わせに答えて値を返す機能を持ったルーチンで, 「掲示版」のような役目をするものです.この様なルーチンを使う理由として, 次のようなことがあげられます.
複数のサブルーチンで情報を共有するには,COMMON BLOCK を使うこともでき ますが,大きなパッケージでこれを多用するとプログラムの可読性を落とすこ とにつながります. また,サブルーチンの引数を少くすると融通が効かなく なりますが,かといって,むやみに引数の数を増やすとかえって使いにくいも のです.
- 複数のサブルーチンで情報を共有するため
- サブルーチンの引数の個数を最小限にするため
このような問題を解決するのが内部変数管理ルーチンです.もともと「パッケー ジの内部で使われる変数」という意味で,内部変数という言葉を使っています が,その変数はパッケージ外からも参照/設定できるので,その有効範囲から すると C 言語の「外部変数」に似た性格を持つものです.
内部変数管理ルーチンは xxpGET, xxpSET という名前です.xx は通常パッケージの先頭2文字で,p は変数の型によって,I(整数型), R(実数型), L(論理型), C(文字型)のうちの ひとつになります.内部変数は,あらかじめシステムが用意した値(初期値)を デフォルトで保持しています.この値は xxpGET ルーチンによって参照 し,xxpSET ルーチンによって変更することがでます.ユーザーが何も 指定しなければ初期値を使うことになります.
NUMAGUTI Atusi <a1n@gfdl.gov> Last Modified: Thu Aug 31 13:10:59 EDT 1995