別のプログラムのトレース
あるプログラム (関数・手続)から別のプログラムへのトレースにおける注意点は、以下の通りである。
・呼出し先のトレース表を右に字下げして書く。 呼出し元と呼出し先の関係を理解しやすくするために。
・本ブログでは別のプログラムについては、トレース表の通し記号を「A」でなく, 「AA」から始める。 呼出し先では, 「BA」 から始める。
・大域変数の値は、すべてのトレース表をまたいで使用する。
・局所変数・ 引数・大域変数の名前が重複する場合、大域変数に 「大域」を付ける。
・例えば、大域変数sと局所変数sが両方とも存在するプログラムでは、トレースでは大域変数は 「大域」を付け、「大域s」と記入する。
以下のプログラムを例に説明する。

prog1 (“B”) として手続 prog1を呼び出す場合の実行手順は、以下の通りである。
最終的に表示は 「BAB」 となる。

トレース表は、以下の通りである。「 1: 大域: s← “A” 」 で、大域変数はプログラム実行前に最初に初期値が格納される。 [局所変数と大域変数]
prog1 (“B”) として手続 prog1を呼び出す。

(参考)
情報処理教科書 出るとこだけ!基本情報技術者[科目B]第4版 橋本 祐史 (著) 翔泳社


コメント