2009-08-06から1日間の記事一覧
(define (found? var) (if (not (eq? var 'not-found)) var false)) (define (compile-variable exp target linkage compile-time-env) (let ((found (found? (find-variable exp compile-time-env)))) (end-with-linkage linkage (make-instruction-sequenc…
(define (first-frame env) (car env)) (define (first-variable frame) (car frame)) (define (find-variable variable env) (let ((frame-num 0) (variable-num 0)) (define (scan-frame env) (if (null? env) '() (let ((frame (first-frame env))) (if (…
コード生成関数のすべてに翻訳時環境を追加。(コードは略) (define (compile-lambda-body exp proc-entry compile-time-env) (let ((formals (lambda-parameters exp))) (print "compile-time-environment: "compile-time-env) (append-instruction-sequence…
たいぶおかしなコードですがお許しください。 (define (search-frame frame-num env) (define (scan-frame count env) (cond ((null? env) (error "search-frame" frame-num env)) ((= count frame-num) (car env)) (else (scan-frame (+ count 1) (cdr env)…
め、め、め、めんどーだ.......コード生成関数のすべてに翻訳時環境を追加するって...