変数テーブル
;変数テーブルglobal開始 (define x "X") (define incr #t) ;変数テーブルlet開始 (let ((x 0)) (set! incr ;変数テーブルlambda開始 (lambda () (begin (set! x (+ x 1)) x)) ;変数テーブルlambda終了 )) ;変数テーブルlet終了 (incr) ;変数テーブルlambdaで (begin (set! x (+ x 1)) x) >> 1 (incr) ;変数テーブルlambdaで (begin (set! x (+ x 1)) x) >> 2 x ;変数テーブルglobalで x >> "X"
Schemeではlexicalな変数テーブルを利用するので、その演算単位が定義された時点でのテーブルを参照すればよい。つまり、構文解析の段階でこのscriptの変数とjavaの変数との対応を付けることができるだろう。