Foundationপ্রথম নীতি থেকে
LEVEL 5 · Programming Languages

Environment

এনভায়রনমেন্ট

Name → value mapping ধরে রাখা structure — variable lookup-এর আসল জায়গা। Chain হিসেবে parent-এর সাথে জোড়া থাকে।

Evaluator-এর কাছে environment মানে “এই মুহূর্তে কোন নামের মানে কী”:

class Env(dict):
    def __init__(self, outer=None): self.outer = outer
    def find(self, var):
        return self if var in self else self.outer.find(var)
  • প্রতিটা function call নতুন frame (child env) বানায় — parent হলো definition-site-এর env, এটাই lexical scoping
  • set!-এর মতো mutation nearest frame-এ খোঁজে; define নতুন binding বসায়
  • Symbol table-এর সাথে সম্পর্ক: symbol table compile-time-এর static mapping, environment runtime-এর জীবন্ত mapping