(not ...) is simply a function (and ... ...) is macro: (and . '()) --> #t (and . (h . t)) --> (if (not h) #f (and . t) (or ... ...) similary quotes and constant cells <1 2> (1 2 3 . '()) (1 2 3 4 5) tuples [a b c d | g] (a (b (c (d g)))) (a 1) tuple is the basic data glue: and its a function for example: (a b c d) (fun (a . (b . (c . '()))) (a b | d) [A B | D] < a c d > {a b c } (# a c d) [a v d x] (tuple x y z) --> [x y z] (cell) (define fun (lambda (x y z) ...)) eval - apply (lambda (x y z) (define a ...) (define b ...) ... (+ 1 2)) (encell cn init_v) kent gaesars (fun (x y z) (def tmp1 in1) (def tmp2 in2) (def tmp3 in3) (stm1) (stm2) (def tmp4 in4) (stm3)) (f x y z) ((fun () (def tmp1 exp1) (def tmp2 exp2) (g tmp1)) (if sadf asdf asdf) ((fun (sdf) (def what exp) (if (eq what case1) res1 (if (eq what case2) res2 (if (eq what res2)))))) ;;;;;;;;;;;;;; ;; Language ;; ;;;;;;;;;;;;;; ;; Primitive Types symbol int char ;;Literals 1234 $1 $a $\xA3 $\o7221 $\32 $\n $\t $\s $\newline $\tab $\space $\alarm 'symbol nil ;;Special forms fun def if call/cc ;;built in functions ;;;;;;;;;;;;; ;;Compiler ;;Registers VALUE ENVIRONMENT STACK CONTINUATION PC ;; System Calls (load $R $S offset) (save $R $S offset) (new $S) (new size) (branch-if-nil) (jump "label") (jump $R) (push) (pop) ;;Heap Memory Heap memory locations are indexed like &1324 &0: nil is here &1: (int, 1234) &2: (char, 'a') &3: (sym, #indx) &4: (vec, 10, &indx) &5: (code, #indx) ;;Programe Code "label" instruction instruction "label" ;;Symbols "sym1" 1 "hello" 2 "world" 3