Wie wird Lexical Scoping implementiert? [geschlossen]

Vor ein paar Jahren begann ich, einen Interpreter für eine kleine domänenspezifische Sprache zu schreiben, der vom Programmierer definierte Funktionen enthielt.

Zuerst habe ich einen Variablenbereich mit einem einfachen Stapel von Symboltabellen implementiert. Aber jetzt möchte ich zum richtigen lexikalischen Scoping übergehen (mit der Option der Schließung). Kann jemand die Datenstruktur und den Algorithmus hinter dem lexikalischen Umfang erklären?