Compiler 2014: Introduction by example
外观
Source code
a = b + 42
Character stream
'a' ' ' '=' ' ' 'b' ' ' '+' ' ' '4' '2'
Token stream
(ID "a") (ASSIGN "=") (ID "b") (PLUS) (NUM 42)
Parse tree
= / \ a + / \ b 42
Annotated parse tree
= / \ a + Int / \ b 42 Int Int
Continuation-passing style
(+ b 42 (λ (t1) (= a t1)))
Quadruples
temp := b + 42 a := temp
MIPS assembly
lw $t1, -8($fp) addi $t2, $t1, 42 sw $t2, -4($fp)