Skip to content

Latest commit

 

History

History
5 lines (3 loc) · 999 Bytes

help.md

File metadata and controls

5 lines (3 loc) · 999 Bytes

Lab 1 实验指导

Lab1 是你实现 miniSysY 编译器的第一个实验,尽管本次实验的内容很少——只需要支持一个 main 函数即可,但后续的实验会在上一次实验的基础上迭代,好的架构可以有效降低后续迭代的复杂程度。你应该按照编写一个编译器的流程,设计好词法分析、语法分析、语义分析、生成 LLVM IR 等步骤的架构,保证它们有一定的可扩展性,以方便后续实验的进行。

在还没有引入 miniSysY 标准库中的 putint() 之前,评测机都会通过返回值来判断你生成的代码执行得是否正确。你的编译器输出的 LLVM IR 在本地编译或解释执行后看起来并没有任何效果,它只是返回了一个数字,不会在标准输出中输出任何东西。在 Unix & Linux 中,你可以通过 echo $? 来查看最后运行的命令的返回值。需要注意的是,echo $? 输出的是返回值对 256 取模后的结果。