A sample session with the compiler
Compiler input above, below the code generated for the E-Processor:
CL-USER 17 > (dribble "session.xxx")(pprint *tt*)(pprint *tst00*)
(PROGN
(DEFUN F (N) (COND ((%<= N 1) 1) (1 (%+ (F (%- N 1)) (F (%- N 2))))))
(DEFUN G (N) (COND ((%<= N 0) NIL) (1 (CONS (F N) (G (%- N 1))))))
(DEFUN APP (L X) (COND ((EQ L NIL) (CONS X NIL)) (1 (CONS (CAR L) (APP (CDR L) X)))))
(DEFUN REV (X) (COND ((EQ X NIL) NIL) (1 (APP (REV (CDR X)) (CAR X)))))
(%PRINT (REV (APP '(4 3 2 1) 5))))
CL-USER 18 > (pprint *tst00*)(dribble "session.xxx")(pprint *tt*)
(PRE-TEMPLATE
((PRE-TEMPLATE
(1 2 F)
((LITIDX 0)
(LOD 2)
(%<= 0)
(JNIL #:G2134)
(LITIDX 0)
(JMP #:G2135)
(LABEL #:G2134)
(LITIDX 0)
(JNIL #:G2136)
(LITIDX 1)
(LOD 2)
(%- 0)
(LITIDX 2)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(LITIDX 0)
(LOD 3)
(%- 0)
(LITIDX 2)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(%+ 0)
(JMP #:G2137)
(LABEL #:G2136)
(LODNIL 0)
(LABEL #:G2137)
(LABEL #:G2135)
(STO 2)
(INCSP 1)
(RET 0)))
F
(PRE-TEMPLATE
(0 1 G F)
((LITIDX 0)
(LOD 2)
(%<= 0)
(JNIL #:G2138)
(LODNIL 0)
(JMP #:G2139)
(LABEL #:G2138)
(LITIDX 1)
(JNIL #:G2140)
(LITIDX 1)
(LOD 2)
(%- 0)
(LITIDX 2)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(LOD 2)
(LITIDX 3)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(CONS 0)
(JMP #:G2141)
(LABEL #:G2140)
(LODNIL 0)
(LABEL #:G2141)
(LABEL #:G2139)
(STO 2)
(INCSP 1)
(RET 0)))
G
(PRE-TEMPLATE
(1 APP)
((LODNIL 0)
(LOD 2)
(EQ 0)
(JNIL #:G2142)
(LODNIL 0)
(LOD 3)
(CONS 0)
(JMP #:G2143)
(LABEL #:G2142)
(LITIDX 0)
(JNIL #:G2144)
(LOD 2)
(LOD 2)
(CDR 0)
(LITIDX 1)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(LOD 2)
(CAR 0)
(CONS 0)
(JMP #:G2145)
(LABEL #:G2144)
(LODNIL 0)
(LABEL #:G2145)
(LABEL #:G2143)
(STO 3)
(INCSP 2)
(RET 0)))
APP
(PRE-TEMPLATE
(1 REV APP)
((LODNIL 0)
(LOD 2)
(EQ 0)
(JNIL #:G2146)
(LODNIL 0)
(JMP #:G2147)
(LABEL #:G2146)
(LITIDX 0)
(JNIL #:G2148)
(LOD 1)
(CAR 0)
(LOD 2)
(CDR 0)
(LITIDX 1)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(LITIDX 2)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(JMP #:G2149)
(LABEL #:G2148)
(LODNIL 0)
(LABEL #:G2149)
(LABEL #:G2147)
(STO 2)
(INCSP 1)
(RET 0)))
REV
5
(4 3 2 1))
((LODNIL 0)
(LITIDX 0)
(%MAKE-CLOSURE 0)
(LITIDX 1)
(%SET-SYMBOL-FUNCTION 0)
(INCSP 1)
(LODNIL 0)
(LITIDX 2)
(%MAKE-CLOSURE 0)
(LITIDX 3)
(%SET-SYMBOL-FUNCTION 0)
(INCSP 1)
(LODNIL 0)
(LITIDX 4)
(%MAKE-CLOSURE 0)
(LITIDX 5)
(%SET-SYMBOL-FUNCTION 0)
(INCSP 1)
(LODNIL 0)
(LITIDX 6)
(%MAKE-CLOSURE 0)
(LITIDX 7)
(%SET-SYMBOL-FUNCTION 0)
(INCSP 1)
(LITIDX 8)
(LITIDX 9)
(LITIDX 5)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(LITIDX 7)
(%SYMBOL-FUNCTION 0)
(CALLCLOS 0)
(%PRINT 0)
(HALT 0)))
CL-USER 19 > (pprint *tt*)(pprint *tst00*)(dribble "session.xxx")(dribble)
Zuletzt geändert - 17 02 2008
Impressum