【文件属性】:
文件名称:PigletC:PigletVM的类似于玩具的C语言编译器
文件大小:9KB
文件格式:ZIP
更新时间:2021-01-31 14:03:58
python parser parser-combinators compiler stack-machine
PigletC —用于的类似于C的微型语言编译器
PigletC基于工具集,并用于教学目的。
简单的例子。
int r;
int n;
void main () {
n = 5 ;
r = 1 ;
while (n > 1 ) {
r = r * n;
n = n - 1 ;
}
print (r);
}
编译结果。
PUSHI 1
PUSHI 5
STORE
PUSHI 0
PUSHI 1
STORE
L0:
PUSHI 1
LOAD
PUSHI 1
GREATER
JUMP_IF_FALSE L1
PUSHI 0
PUSHI 0
LOAD
PUSHI 1
LOAD
MUL
STORE
PUSHI 1
PUSHI 1
LOAD
PUSHI 1
SUB
STORE
JUMP L0
L1:
PUSHI 0
LOAD
PRINT
DONE
VM执行的结果。
pigletvm-exec asm fact.c.pvm fact.c.b
pigletvm-exec run fact.c.b
120
Result value: 0
PROFILE: s
【文件预览】:
PigletC-master
----src()
--------term.py(875B)
--------raddsl_parse.py(5KB)
--------trans.py(2KB)
--------main.py(561B)
--------__init__.py(0B)
--------raddsl_rewrite.py(4KB)
--------tools.py(794B)
--------parse.py(2KB)
--------gen.py(953B)
----examples()
--------fib.c(175B)
--------fact.c(113B)
----LICENSE(1KB)
----README.md(962B)
----pigletc.py(458B)
----.gitignore(19B)