की SICP के पर्यावरण मॉडल के संदर्भ में गतिशील scoping SICP की Section 3.2.2 कोड का निम्न भागमूल्यांकन
(define (square x)
(* x x))
(define (sum-of-squares x y)
(+ (square x) (square y)))
(define (f a)
(sum-of-squares (+ a 1) (* a 2)))
(f 5)
इस चित्र के रूप में समझाया जाता है के निष्पादन में बनाम शाब्दिक:
हर बार जब कोई फ़ंक्शन लागू होता है, तो एक नया फ्रेम बनाया जाता है (E1
द्वारा E4
के माध्यम से लेबल किया गया) जो प्रतीकों और मानों के बीच बाइंडिंग का एक सेट दर्शाता है। जब एक फ्रेम एक फ्रेम में बंधे नहीं है, तो उस फ्रेम के संलग्न वातावरण को उस विशेष प्रतीक के बाध्यकारी के लिए पूछताछ की जाती है।
इस आरेख के बारे में दिलचस्प बात यह है कि E
द्वारा लेबल किए गए सभी फ्रेम वैश्विक वातावरण में निहित हैं। पाठ बताते हैं कि इस वजह से कार्यों वैश्विक वातावरण में परिभाषित किया गया था, लेकिन इस मुद्दे पर विस्तार से बता नहीं करता है:
सूचना है कि वैश्विक पर्यावरण के लिए
square
अंक के द्वारा बनाई गई प्रत्येक फ्रेम, के बाद से इस माहौल ने संकेत दिया हैsquare
प्रक्रिया वस्तु।
, तो इसके बजाय फ्रेम जहां वातावरण में निहित है कि समारोह में बुलाया गया था कहते हैं E3
E2
में निहित थी जो बारी में E1
में निहित किया गया था, कि कैसे एक गतिशील scoped भाषा कृत्यों का एक मान्य मॉडल हो सकता है? साथ ही, इस तरह से आरेख में फ्रेम समान 'पैरेंट' वातावरण है क्योंकि योजना को स्पष्ट रूप से स्कॉप्ड किया गया है?