変数テーブル

;変数テーブル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の変数との対応を付けることができるだろう。