%表題   らくらくDCL
%
%履歴
%\Drireki{
%         95/04/13 余田 成男
%        }
%

\begin{center}
\fbox{\parbox{14.75cm}{
\fbox{\parbox{14.5 cm}{
\vspace{1em}
\begin{center}
\parbox{13cm}{

{\bf DCLのしくみ 2}

\begin{center}
{\large \bf xxpGET/xxpSET で内部変数管理}
\end{center}


地球流体電脳ライブラリでは, 例えば, {\tt SGLGET/SGLSET} のような内部変
数管理ルーチンが多く使われています. 内部変数管理ルーチンとは, 設定され
た変数の値を保持し, 問い合わせに答えて値を返す機能を持ったルーチンで, 
「掲示版」のような役目をするものです. この様なルーチンを使う理由として, 
次のようなことがあげられます.
\begin{itemize}
  \item 複数のサブルーチンで情報を共有するため
  \item サブルーチンの引数の個数を最小限にするため
\end{itemize}
複数のサブルーチンで情報を共有するには, COMMON BLOCK を使うこともでき
ますが, 大きなパッケージでこれを多用するとプログラムの可読性を落とすこ
とにつながります.  また, サブルーチンの引数を少くすると融通が効かなく
なりますが, かといって, むやみに引数の数を増やすとかえって使いにくいも
のです.
\vspace{1em}

このような問題を解決するのが内部変数管理ルーチンです. もともと「パッケー
ジの内部で使われる変数」という意味で, 内部変数という言葉を使っています
が, その変数はパッケージ外からも参照/設定できるので, その有効範囲から
すると C 言語の「外部変数」に似た性格を持つものです.
\vspace{1em}

内部変数管理ルーチンは {\tt xxpGET}, {\tt xxpSET} という名前です. {\tt
xx} は通常パッケージの先頭2文字で, {\tt p} は変数の型によって, {\tt
I}(整数型), {\tt R}(実数型), {\tt L}(論理型), {\tt C}(文字型)のうちの
ひとつになります. 内部変数は, あらかじめシステムが用意した値(初期値)を
デフォルトで保持しています. この値は {\tt xxpGET} ルーチンによって参照
し, {\tt xxpSET} ルーチンによって変更することがでます. ユーザーが何も
指定しなければ初期値を使うことになります.



}
\end{center}
\vspace{1em}
}}
}}
\end{center}
