LispmFPGA

Main
Home
Project Log
The code
Videos

The compiler
Sample
Compilation


System Software
A LispOS
kernel

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)


Navbutton Zentrum Anfang Anfang Ende   mailto Webmaster     Zuletzt geändert - 17 02 2008
Impressum