Compiling Expressions, Part 1 |
|
(define (compile-self-evaluating exp target linkage)
(end-with-linkage linkage
(make-instruction-sequence
`((assign ,target (const ,exp))))))
(define (compile-application exp target linkage)
(let ((proc-code (compile (operator exp) 'proc 'next))
(operand-codes
(map (lambda (operand) (compile operand 'val 'next))
(operands exp))))
(preserving '(env continue)
proc-code
(preserving '(proc continue)
(construct-arglist operand-codes)
(compile-procedure-call target linkage)))))