文件名称:milac:TINY 机器的教育编译器
文件大小:61KB
文件格式:ZIP
更新时间:2024-07-21 04:27:11
C
米拉克 我第一次尝试编译器构建。 这是一个基于小型 pascal 的学校语言 Mila 的编译器,它是一个稍微修改过的 TINY 机器[^1]。 除了教育之外,它对任何东西都没有真正的用处,因为它非常小,并且使用了基本的编译器内容,例如 3 地址代码、控制流图、寄存器分配(线性扫描样式)和一些优化,例如常见的子表达式消除、constat 折叠和传播。 请参阅test目录以获取 Mila 语言参考。 [^1]: [Louden, KC - 编译器构建, 1997]( , "Louden, KC - 编译器构建, 1997") 用于 TINY 机器的 Mila 编译器 先决条件 制作 GCC Flex Bison 建造 cd src && make && cd ../ 对于没有额外调试信息的发布版本。 最终的二进制文件被复制到根目录。 cd src && make debug &
【文件预览】:
milac-master
----src()
--------list.h(10KB)
--------bitset.h(1KB)
--------trace.h(2KB)
--------bb.c(8KB)
--------cse.c(11KB)
--------symtab.h(1KB)
--------optimize.c(9KB)
--------3ac.c(15KB)
--------symtab.c(4KB)
--------regalloc.c(8KB)
--------hashtab.h(2KB)
--------gen.c(12KB)
--------common.h(734B)
--------gen.h(548B)
--------list.c(4KB)
--------mila.l(2KB)
--------copy_prop.c(3KB)
--------lva.c(9KB)
--------util.c(8KB)
--------3ac.h(3KB)
--------code.c(2KB)
--------optimize.h(583B)
--------Makefile(1KB)
--------const_prop.c(9KB)
--------tree.c(10KB)
--------mila.y(6KB)
--------hashtab.c(7KB)
--------util.h(630B)
--------queue.h(23KB)
--------stack.h(929B)
--------stack.c(3KB)
--------tm.c(18KB)
--------debug.h(424B)
--------trace.c(2KB)
--------tree.h(2KB)
--------global.h(868B)
--------code.h(2KB)
--------main.c(5KB)
----LICENSE(698B)
----test()
--------whl.mila(142B)
--------cpc.mila(106B)
--------prog2c.mila(867B)
--------test2.mila(125B)
--------cse1.mila(167B)
--------cp.mila(106B)
--------test.mila(868B)
--------prog1.mila(128B)
--------cpif.mila(134B)
--------prog2.mila(867B)
--------cse.mila(160B)
--------cse2.mila(164B)
--------whl1.mila(142B)
--------cpr.mila(106B)
--------test3.mila(866B)
--------ifcse.mila(2KB)
--------if.mila(82B)
--------cseassign.mila(97B)
----README.md(1KB)
----.gitignore(222B)