あるプログラム言語の解説書の中に次の記述がある。
この記述中の“良いプログラム”がもっている特長はどれか。
このプログラム言語では、関数を呼び出すときに引数を保持するためにスタックが使用される。
引数で受け渡すデータを、どの関数からでも参照できるよう共通域に移せば、スタックの使用料を減らすことができるが“良いプログラム”とはみなされないこともある。
ア | 実行するときのメモリの使用量が、一定以下に必ず収まる。 |
イ | 実行速度について、最適化が行われる。 |
ウ | プログラムの一部(モジュール)を変更しても、残りの部分への影響が少ない。 |
エ | プログラムのステップ数が少なく、分かりやすい |
答え ウ
【解説】
ア | 関数に引き渡すデータの格納場所として共通域を使用するとメモリ使用量を一定にすることができません。なお、スタックを使用する場合、スタックのサイズはあらかじめ指定するのでメモリ使用量を一定にすることができます。 |
イ | 関数に引き渡すデータの格納場所と最適化に関係はありません。 |
ウ | 関数に引き渡すデータの格納場所として共通域を使用し複数のモジュールが参照する場合、モジュールを変更しデータの格納場所の割当てを変更した場合、他のモジュールにも影響が出るため“良いプログラム”ではなくなります。データの格納場所としてスタックを使用するとモジュール変更でデータの割当てを変更しても他のモジュールへの影響はないため“良いプログラム”と言えます。 |
エ | 関数に引き渡すデータの格納場所とプログラムステップ数は関係ありません。 |
【キーワード】
・スタック