5

The Structure and Interpretation of Computer Programs part 3.2では、「環境」は「一連のフレーム」として定義されています。しかし、私が見る限り、この本は環境とフレームの違いについてこれ以上議論していません。また、本の図面は小さくて 2 次元であり、別の完全な図面を除いて時間の進化を容易に示すことができないため、環境の図面はそれらをフレームと混同しているのではないかと思います。

では、作成時の環境を最初のフレームと同じであると考えるのは正しいでしょうか? そして、環境で何らかの変更が発生すると (既存のバインディングが変更され、新しいバインディングが作成された)、環境はフレームのシーケンスに新しいフレームを追加しますか? その理解が正しくない場合、環境とフレームの違いは正確には何ですか?

助けてくれてありがとう!

4

3 に答える 3

2

多くの場合、人々は「環境」と「フレーム」を同じ意味で使用します。個人的には、私は常にそれらを区別するように努めてきました。フレームは特定のスタックを意味し、環境はすべてのフレームを意味します。

于 2010-10-15T19:46:07.650 に答える
2

フレームのシーケンスは、グローバル環境に向かって「上向き」を指す (フレームの) リンクされたリストです。したがって、環境が作成されるとき (たとえば、プロシージャ バインディングのコンテキストで)、「環境」はフレームへのポインターです...これは、囲んでいる環境 (グローバル環境の場合は null) を指します。

つまり...修飾された「はい」...それは、最初のフレームから残りの環境にアクセスできるという意味で最初のフレームです。

それは役に立ちますか?

敬具、ダック

于 2010-09-21T18:24:47.853 に答える
0

初期環境は長さ 1 のシーケンスで、最初のフレームだけだと思います。

于 2010-09-21T17:05:38.710 に答える