Jeremy Siek 6 vuotta sitten
vanhempi
commit
0180049dcc
1 muutettua tiedostoa jossa 41 lisäystä ja 1 poistoa
  1. 41 1
      notes.md

+ 41 - 1
notes.md

@@ -317,4 +317,44 @@ reveal-functions
 |
 V
 
-    F1
+    exp ::= (function-ref label) | (app exp exp*) | ...
+    tail ::= x | n | #t | #f | (op exp*) | (let ([x exp]) tail) 
+          | (if exp tail tail)
+          | (vector exp*) | (vector-ref exp n) | (vector-set! exp n exp)
+          | (void)
+          | (function-ref label) | (tailcall exp exp*)
+    def ::= (define (var [var : type]*) : type tail)
+    F1 ::= (program () def+)
+
+expose-allocations
+|
+V
+
+    same as above
+
+remove-complex-opera*
+|
+V
+
+    arg ::= x | n | #t | #f | (void)
+    exp ::= ... | (op arg*) | (app arg arg*) | ...
+    tail ::= ... | (op arg*) | (tailcall arg arg*) | ... 
+    def ::= (define (var [var : type]*) : type tail)
+    F1 ::= (program () def+)
+
+create-CFG
+|
+V
+
+    arg ::= x | n | #t | #f | (void)
+    exp ::= arg | (op arg*) | (allocate n type) | (global-value x) 
+          | (has-type exp type) | (app arg arg*)
+    tail ::= (goto label) | (if (op arg*) ((goto label)) ((goto label)))
+          | (return exp) | (seq stmt tail) | (tailcall arg arg*)
+    stmt ::= (assign x exp) | (collect n)
+    def ::= (define (var [var : type]*) : type ((label . tail)*))
+    C3 ::= (program ((type . type)) def+)
+
+
+|
+V