![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
编译原理实验
文章平均质量分 79
北理工编译原理实验
此实验是北理工计卫星老师的课后实验
基于https://github.com/jiweixing/BIT-MiniCC的框架编写C语言编译器
寒士°、
这个作者很懒,什么都没留下…
展开
-
编译原理实验——BIT-MiniCC
实验目录原创 2022-03-02 15:27:48 · 6999 阅读 · 4 评论 -
BIT-MiniCC——negen(lab8目标代码生成)
终于来到了最后一步——目标代码生成本次的实验目标是将生成的中间代码四元式翻译成x86汇编语言原理其实就是根据不同的四元式对应不同的语句输出为汇编代码即可根据要求是只需要满足3个测试用例即可,再多只需要继续添加翻译语句就行一、1.由于本次实验提供的测试用例的输入输出函数,Mars_PrintInt,Mars_PrintStr,Mars_GetInt在x86中并未定义。所以需要通过借用对应的c语言函数,又由于x86中对应的printf和scanf的调用处理较为特殊,所以在此处对于这一类函原创 2022-03-02 14:25:30 · 3073 阅读 · 2 评论 -
BIT-MiniCC——semantic+icgen(lab6语义分析6+lab7中间代码生成)
lab6的语义分析要求能够识别出3种C语言错误即可,本次实验选择的是0_var_not_defined,1_var_defined_again,2_break_not_in_loop三种错误。lab7的中间代码生成是将AST树翻译成四元式,对于变量的寄存器分配方法选择的是不进行分配,统一设置为全局变量。实验思路在BITMINICC——lab6+lab7_寒士°、的博客-CSDN博客中,本篇给出详细代码,可以结合起来看。1.在BIT-MiniCC-master\src\bit\minisys\mi原创 2022-02-27 14:59:02 · 7225 阅读 · 0 评论 -
BIT-MiniCC——parser(lab5语法分析器)
本次实验要求生成代码的抽象语法树(AST),具体的算法原理在BITMINICC——利用Antlr的Listener生成AST_寒士°、的博客-CSDN博客中有详细的介绍,此处就不再过多介绍了,这篇博客将给出详细代码,参考着看相信能够更加理解。而其中提到的文法再编译原理Antlr教程_寒士°、的博客-CSDN博客中也提到了。———————————————————————————————————————————那么现在就开始语法分析器的编写一、1.在BIT-MiniCC-master\src原创 2022-02-27 12:37:28 · 4023 阅读 · 1 评论 -
BIT-MiniCC——scanner(lab3词法分析器)
词法分析器原创 2022-02-26 17:09:01 · 4155 阅读 · 0 评论 -
编译原理Antlr教程
BIT编译原理Antlr教程原创 2022-02-26 14:14:39 · 6963 阅读 · 14 评论 -
BITMINICC——利用Antlr的Listener生成AST
BITMINICC生成AST首先请花一定的时间阅读下面的参考方法,本文是我对下面文章的一个理解和踩坑记录。参考方法:https://zhuanlan.zhihu.com/p/369250644?utm_source=qq&utm_medium=social&utm_oi=7325352049330257921.一个好的文法因为要用Antlr生成Lexer以及Listener,所以一个定义完整的文法是最重要的。因为当你用一个缺陷的文法,重写好了Listener,分析好了上一个实原创 2021-05-28 00:40:38 · 4299 阅读 · 0 评论 -
BITMINICC——lab6+lab7
在做lab6和lab7之前,先确保你已经有了一个结构完整的AST树。原创 2021-05-28 09:48:21 · 4315 阅读 · 4 评论