c++实现的中间代码生成,在语法分析的基础上,对所要分析的文档输出四元式形式。代码能有运行有注释。有使用说明。自己编译原理已通过的作业。
2021-05-23 16:09:20 3.65MB 四元式生产
1
本人用C++写的一个类C的中间代码生成器,希望大家多多指正
2021-05-18 21:32:55 5KB 编译 四元式
1
交大徐老师课程的实验,徐老师非常认真负责,老师留的作业对大家也有很大的提高,自己认为完成的还算不错,从中也特到了很大的提高,希望可以给学弟学妹们提供一些参考,但是严禁抄袭拷贝呦,不然徐老师会严厉惩罚你哒~!更多资源可以关注我的主页~
2021-05-16 20:58:14 75.67MB 北交大 编译原理 中间代码生成 语法
1
TinyCompiler 序言 项目概述 本项目是基于flex,bison和LLVM,使用c ++ 11实现的类C语法编译器,使用flexbindingyacc对源代码进行词法,语法分析;在语法分析阶段生成整个源代码相应的抽象语法树后,根据LLVM IR(中间表示)模块中定义的中间代码语法输出与LLVM中间语言语法,机器无关的中间代码;最后,本项目通过调用LLVM后端模块的接口,根据本地指令集与操作系统架构,将中间代码编译成二进制目标代码。编译生成的目标代码之后可直接编译生成初始化文件,或与其他目标代码链接生成替代文件。 本项目解析的语法与是C语言的一个子集,但部分语法存在区别,这些将在最后的测试用例中具体说明。目前已支持的数据类型包括: 虚空 整型 浮动 双 烧焦 串 布尔 自定义结构体 样本(包括多维样本) 支持的主要语法包括: 变量的声明,初始化(包括一维细分初始化,多维序列暂不支持初始化,只能逐个元素赋值使用) 函数声明,函数调用(传递参数类型可以是任意已支持类型) 外部函数声明和调用 控制流语句if-else,for,while和任意层级的嵌套使用 单行注释(#) 二元运算
2021-05-13 00:02:15 2.01MB bison flex compiler llvm
1
两次编译方法的实验,实验一要求实现一个扫描器,实验二要求实现一个中间代码生成器,其中实验二使用了递归子程序和LL1方法实现,代码为自己编写,希望能给您带来帮助
2021-05-11 00:50:06 2.04MB 编译 实验 源码 LL1
1
编译原理LL(1)原理实现中间代码生成四元式
2021-05-10 15:48:47 6KB LL(I) 中间代码生成
1
提供语法制导翻译及中间代码生成,举例说明语法制导原理和概念,提供一些例题
2021-05-09 19:03:35 824KB 编译原 语法制
1
编译原理 词法分析,语法分析,中间代码生成 源代码 重庆理工大学编译原理实验。
1
编译器设计的编译程序涉及到编译五个阶段中的三个,即词法分析器、语法分析器和中间代码生成器。编译程序的输出结果包括词法分析后的二元式序列、变量名表、状态栈分析过程显示及四元式序列程序。整个编译程序分为三部分:词法分析部分、语法分析处理及四元式生成部分、输出显示部分。编译程序需要在单词级别上来分析和翻译源程序,所以首先要识别出单词,而词法分析部分的任务是:从左至右扫描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。因此,词法分析是编译的基础。执行词法分析的程序称为词法分析器。语法分析是编译程序的核心部分,其主要任务是确定语法结构,检查语法错误,报告错误的性质和位置,并进行适当的纠错工作。语法分析中主要以二元式作为输入部分,所以输出显示部分的任务是将二元式通过LR分析表对语法分析处理过程进行控制,使四元式翻译的工作有条不紊的进行,同时识别语法分析中的语法错误。
1
1设计扫描器的有限自动机(识别器); (2) 设计翻译、生成Token的算法(翻译器); (3) 编写代码并上机调试运行通过。 •输入——源程序文件或源程序字符串; •输出——相应的Token序列; 关键字表和界符表; 符号表和常数表; 1设计语法制导翻译生成表达式的四元式的算法; (2) 编写代码并上机调试运行通过。 •输入——算术表达式 •输出——语法分析结果 相应的四元式序列 (3) 本实验已给出递归子程序法的四元式属性翻译文法的设计,鼓励学生在此基础上进行创新,即设计LL(1)分析法或LR(0)分析法的属性翻译文法,并根据这些属性翻译文法,使用扩展的语法分析器实现语法制导翻译。
1