![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编译技术
文章平均质量分 61
实名吃香菜
想学数学
展开
-
编译原理实验-中间代码生成(三地址代码)
条件语句三地址代码生成函数如图6-6(a)、图6-6(b)、图6-6(c)所示,该函数对条件语句结点node进行三地址代码化,并将result字符类型指针指向生成的条件语句三地址代码。逻辑表达式三地址代码生成函数如图6-4(a)、图6-4(b)、图6-4(c)所示,该函数对逻辑表达式结点node进行三地址代码化,并将result字符类型指针指向生成的逻辑表达式三地址代码。threeaddress.l源程序中规则部分(识别符号的正则表达式及其对应的相关的动作)如图1-2(a)、1-2(b)所示。原创 2023-05-26 17:02:27 · 4616 阅读 · 0 评论 -
编译原理实验-LR语法分析
由于构建函数形参结点的时候我们是顺序序构建,并且假定只有left结点才是真正的语句结点,因此我们只需逐一访问每一层复合语句结点的左子结点并打印其所包含的信息即可。翻译规则部分中,语句对应的sysy文法及相应的处理如图2-2(d)所示,其中主要建立的ast结点为COMPOUND_STMT类型以及其他各类语句(例如if,while等等)的结点。翻译规则部分中,函数定义对应的sysy文法及相应的处理如图2-2(c)所示,其中主要建立的ast结点为PARM_DECL、FUNCTION_DECL类型的结点。原创 2023-05-26 17:00:13 · 3208 阅读 · 8 评论 -
编译原理实验-递归下降语法分析
match函数主要用来检查sysy文法中的终结符是否与输入串中的当前字符匹配,如果匹配那么就是用调用advance,将下一个待分析的字符设置为当前字符,之后再调用文法中剩余字符对应的函数进行匹配;递归下降分析器编译思想是简单的,从识别符号开始,在语法规则支配下进行语法分析,它逐个扫视源程序中的所有字符,根据文法和当前输入字符预测到下一个语法成份U时,便确定U为目标并调用分析和识别U的子程序,在分析U的过程中,又有可能确立其它(或自身)子目标并调用相应子程序,如此继续下去。较好的完成了本次实验的要求。原创 2023-05-26 16:56:57 · 6759 阅读 · 0 评论 -
编译原理实验-词法分析
用flex生成一个词法分析器,用以识别SysY语法,具体的以test_cases中的文件作为输入,输出token二元组,识别程序中所有的常数、运算符、界符、标识符及关键字。总的来说,通过本次词法分析器实现的实验,对Flex这一词法分析器生成工具的功能有了一个整体的认识,同时也对编译过程中的词法分析过程有了一个更加全面的认知。如下图1-1(a),1-1(b)所示。(1) 分别输入整数123,-123以及浮点数12.5,-12.5,测试该词法分析器对整数与浮点数的分析效果,结果如图2-1所示。原创 2023-05-26 16:50:56 · 3187 阅读 · 2 评论 -
bison没有创建tab.h文件
bison没有创建tab.h文件原创 2022-12-03 20:23:07 · 378 阅读 · 0 评论 -
Flex编译过程中出现未识别规则的错误
编译原理-词法生成器原创 2022-10-24 20:13:23 · 823 阅读 · 0 评论 -
IEEE754:将单精度浮点数的IEEE754格式转换成32位整型
IEEE754原创 2022-10-05 16:44:05 · 1647 阅读 · 0 评论