(wat-aro)

生きてます

2016-02-07から1日間の記事一覧

SICP 問題 5.37

preservingを修正して常にsaveとrestoreをさせ,修正前と後を比較する. 修正前 (define (preserving regs seq1 seq2) (if (null? regs) (append-instruction-sequences seq1 seq2) (let ((first-reg (car regs))) ;first-regが (if (and (needs-register? s…

SICP 問題 5.36

本文の被演算子の適用順はoperandをreverseしてから連結していくので右から左になっている. これを左から右に変更する. ;;; 最初のreverseをなくす (define (construct-arglist operand-codes) (if (null? operand-codes) (make-instruction-sequence '() …

SICP 問題 5.35

本文の図5.18 の翻訳出力の例から翻訳前の式を導く. 答え (compile '(define (f x) (+ x (g (+ x 2)))) 'val 'next) 実行結果(整形済み) ((env) (val) ((assign val (op make-compiled-procedure) (label entry12) (reg env)) (goto (label after-lambda1…