4

「スタック ダイアグラム」の原則を完全に理解しようとしています。誰かが私が正しいかどうかを確認してもらえますか?

これまでのところ、コード内の関数で使用される変数を追跡するためにスタック ダイアグラムが使用されていると理解しています。

ただし、特定の関数内で新しい変数が作成されるかどうかはわかりませんが、それがスタック ダイアグラムに含まれている必要があります。

たとえば、変数「p」をスタック ダイアグラムに含める必要があるでしょうか。まあ言ってみれば:

def g(y):
    p = A(y, y)  
    print z, p
    return p

def A(x, y):
    x = x + 1
    return x * y

x = 1
y = x + 2

私のスタックは次のようになるはずです。

<module>  x --> 1
          y --> 3   (Should I put 3 or x + 2 here)

fct g     y --> 3 (should I stop here or should I include a line for the variable p)


fct A     x --> 4
          y --> 3 

最後の質問は次のとおりです。関数が行うその他のことについて何か言及する必要がありますか。関数 A の場合と同様に、x*y = 12 を返します。これをスタック ダイアグラムに含める必要がありますか、それともダイアグラムはこのままで正しいでしょうか?

ありがとう

4

1 に答える 1

4

スタック ダイアグラムの定義によると、次のようになります。

各機能はフレームで表されます。フレームは、その横に関数の名前があり、その中に関数のパラメーターと変数があるボックスです。

これは、関数内で定義された変数も考慮する必要があることを意味します。-の代わりにyの値を維持することをお勧めします。y=3y=x+2

2 番目のクエリに答えるには、説明から、スタック ダイアグラムは主に変数から関数名へのマッピングを追跡するために使用されるようです。ただし、言語プロセッサとランタイムが開発されると、提案されたスタック ダイアグラムの原則に必要な追加が行われることを忘れないでください。これにより、変数の処理やエラーの特定が容易または効率的になります。

うまくいけば、この投稿はあなたの疑問を明確にします

于 2013-08-07T06:24:24.670 に答える