Chez Scheme Version 6.1
Copyright (c) 1998 Cadence Research Systems

> (load "~/init.scm")
sllgen.scm 2000-09-25 11:48
define-datatype.scm version J3 2000-12-22 07:12
test-harness.scm: unified test harness for CSG111 2004-01-08 13:12
test-suite.scm: unified test suite 2004-03-16 10:45
> (load "cps2.scm")
cps2.scm: 2004-03-21 22:44
> (run "+(1,2,3)")
3
> (run "+(3,5,7)")
8
> (trace eval-exp-c apply-context)
(eval-exp-c apply-context)
> (run "+(3,5,7)")
|(eval-exp-c
   (primapp-exp (add-prim) ((lit-exp 3) (lit-exp 5) (lit-exp 7)))
   (empty-env-record)
   (empty-context))
|(eval-exp-c
   (lit-exp 3)
   (empty-env-record)
   (eval-exps1-context
     ((lit-exp 5) (lit-exp 7))
     (empty-env-record)
     (apply-primitive-context (add-prim) (empty-context))))
|(apply-context
   (eval-exps1-context
     ((lit-exp 5) (lit-exp 7))
     (empty-env-record)
     (apply-primitive-context (add-prim) (empty-context)))
   3)
|(eval-exp-c
   (lit-exp 5)
   (empty-env-record)
   (eval-exps1-context
     ((lit-exp 7))
     (empty-env-record)
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context)))))
|(apply-context
   (eval-exps1-context
     ((lit-exp 7))
     (empty-env-record)
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context))))
   5)
|(eval-exp-c
   (lit-exp 7)
   (empty-env-record)
   (eval-exps1-context
     ()
     (empty-env-record)
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context))))))
|(apply-context
   (eval-exps1-context
     ()
     (empty-env-record)
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context)))))
   7)
|(apply-context
   (eval-exps2-context
     7
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context)))))
   ())
|(apply-context
   (eval-exps2-context
     5
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context))))
   (7))
|(apply-context
   (eval-exps2-context 3 (apply-primitive-context (add-prim) (empty-context)))
   (5 7))
|(apply-context (apply-primitive-context (add-prim) (empty-context)) (3 5 7))
|(apply-context (empty-context) 8)
|8
8
> (trace apply-primitive)
(apply-primitive)
> (run "+(3,5,7)")
|(eval-exp-c
   (primapp-exp (add-prim) ((lit-exp 3) (lit-exp 5) (lit-exp 7)))
   (empty-env-record)
   (empty-context))
|(eval-exp-c
   (lit-exp 3)
   (empty-env-record)
   (eval-exps1-context
     ((lit-exp 5) (lit-exp 7))
     (empty-env-record)
     (apply-primitive-context (add-prim) (empty-context))))
|(apply-context
   (eval-exps1-context
     ((lit-exp 5) (lit-exp 7))
     (empty-env-record)
     (apply-primitive-context (add-prim) (empty-context)))
   3)
|(eval-exp-c
   (lit-exp 5)
   (empty-env-record)
   (eval-exps1-context
     ((lit-exp 7))
     (empty-env-record)
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context)))))
|(apply-context
   (eval-exps1-context
     ((lit-exp 7))
     (empty-env-record)
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context))))
   5)
|(eval-exp-c
   (lit-exp 7)
   (empty-env-record)
   (eval-exps1-context
     ()
     (empty-env-record)
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context))))))
|(apply-context
   (eval-exps1-context
     ()
     (empty-env-record)
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context)))))
   7)
|(apply-context
   (eval-exps2-context
     7
     (eval-exps2-context
       5
       (eval-exps2-context
         3
         (apply-primitive-context (add-prim) (empty-context)))))
   ())
|(apply-context
   (eval-exps2-context
     5
     (eval-exps2-context
       3
       (apply-primitive-context (add-prim) (empty-context))))
   (7))
|(apply-context
   (eval-exps2-context 3 (apply-primitive-context (add-prim) (empty-context)))
   (5 7))
|(apply-context (apply-primitive-context (add-prim) (empty-context)) (3 5 7))
| (apply-primitive (add-prim) (3 5 7))
| 8
|(apply-context (empty-context) 8)
|8
8
> 