2010-09-21 16 views
5

En el Structure and Interpretation of Computer Programs part 3.2, un "entorno" se define como "una secuencia de marcos". Pero, por lo que puedo ver, el libro no analiza la diferencia entre un entorno y un marco. Además, sospecho que los dibujos de entornos los combinan con marcos porque los dibujos de libros son pequeños y en 2-D, y no muestran fácilmente una evolución temporal menor a otro dibujo completo.En SICP 3.2, El modelo de evaluación del entorno, ¿es un entorno inicialmente el mismo que su primer marco?

Entonces, ¿sería correcto pensar que un entorno en la creación es el mismo que su primer marco? Y luego, cuando ocurre cualquier cambio en el entorno (un enlace existente cambiado, un nuevo enlace creado), ¿el entorno agrega un nuevo marco a su secuencia de cuadros? Si ese entendimiento NO es correcto, entonces ¿cuál es la diferencia entre un entorno y un marco ??

¡Gracias de antemano por cualquier ayuda!

Respuesta

2

La secuencia de fotogramas es la lista vinculada (de fotogramas) que apunta 'hacia arriba' hacia el entorno global. Por lo tanto, cuando se crea un entorno (por ejemplo, en el contexto de un enlace de procedimiento), el 'entorno' es un puntero al marco ... que en término apunta al entorno circundante (o nulo, si el entorno global).

Entonces ... un 'sí' calificado ... es el primer fotograma en el sentido de que el resto del entorno es accesible desde ese primer fotograma.

¿Eso ayuda?

Cordialmente, Dak

+0

Eso ayuda, gracias - por lo tanto, en última instancia, un entorno es un puntero a una secuencia de fotogramas, e inicialmente, esa secuencia tiene solo un fotograma. Pero, ¿y el medio ambiente global? Tal vez esté más adelante en el libro, pero si el env global también es solo un puntero a una secuencia de fotogramas, ¿dónde está el "procedimiento global" que apunta a la secuencia global de fotogramas? Esto es como el dilema de la primera causa ... :) – limist

0

Creo que el entorno inicial es una secuencia de longitud 1, con solo el primer fotograma.

2

Muchas veces, la gente usa "medio ambiente" y "marco" de manera intercambiable. Personalmente, siempre he tratado de mantenerlos distintos. Uso frame para significar una pila particular y un entorno para todos los frames.

Cuestiones relacionadas