语言为C++,使用了set,map容器,输入格式:S -> Aa | g | e,支持多‘|’ 符号,采用文件输入
2019-12-21 21:48:24 14KB 编译原理实验 first集 follow LL1文法
1
LR(0)完整的语法分析方法(拓广文法、识别活前缀状态机、LR0表、识别字符串)内有word详细说明
2019-12-21 21:47:30 832KB 编译原理 LR0 状态机 LR0表
1
编译原理最后一次作业,在词法分析、语法分析、语义分析、中间代码基础上实现目标代码。压缩包里有源代码,实验报告和技术文档。
2019-12-21 21:41:24 429KB 编译原理 目标代码 c--文法
1
这是我做的编译原理简单优先文法判定和分析器的构造。 包括第一章 概述 3 1.1 项目背景 3 1.2 设计目的 3 1.3 实验环境与开发工具 3 1.4 C++语言 4 第二章 需求分析 5 2.1 问题陈述 5 2.1.1 简单优先文法 5 2.1.2 简单优先文法的定义 6 2.1.3 简单优先文法的算法 6 2.1.4 简单优先分析法的操作步骤 6 2.2 需要完成的功能 7 2.2.1 判定输入的文法是否是简单优先文法 7 2.2.2 构造文法的简单优先关系矩阵 7 2.3 分析器的构造 7 第三章 逻辑设计 9 3.1系统的组织与基本工作流程 9 3.2 总体结构逻辑结构图 9 第思章 软件功能设计 11 4.1 软件功能分析 11 4.1.1 判定文法是否为简单优先文法 11 4.1.2 查找分析文法优先关系相等 12 4.1.3 查找分析文法中小于的关系 14 4.1.4 查找分析文法中大于的关系 15 4.1.5 构造文法的简单优先关系矩阵 16 第五章 界面设计 18 5.1用户输入文法界面 19 5.2优先矩阵的初始状态 20 5.3 文法中等于关系 21 5.4 小于关系 22 5.5 大于关系 23 5.6 优先关系矩阵 25 小结 27 参考文献 28 附录 29
2019-12-21 21:34:53 337KB 编译原理 课程设计 概要 引言
1
预测分析表自动构造程序的实现 设计内容及要求:对于任意输入的一个LL(1)文法,构造其预测分析表。要求:首先实现集合FIRST(X)构造算法和集合FOLLOW(A)构造算法,再实现教材P.79给出的预测分析表构造算法。程序显示输出预测分析表或输出到指定文件中。 预测分析程序的实现 设计内容及要求: 对文法 G: E→E+T|T 按教材P.76表4.1构造出G的预测分析程序, T→T*F|F 程序显示输出如P.78那样的匹配过程。 F→(E)|i
2019-12-21 21:33:44 236KB 编译原理 c++ 课程设计
1
用于北航本科编译原理与技术课程参考资料。资源内为C++语言实现的C0文法编译器源码,通过文件读取源程序,实现了词法分析,语法分析,语义分析,和执行等功能。vs2012编译通过。
2019-12-21 21:26:23 12KB 编译 C0 compiler 北航
1
目的:充分理解语义分析的方法及相关语义计算的执行时机。 要求: 1.以S属性的语法制导定义为基础,将下表的语义规则嵌套在语法分析的过程中,即实现语法制导的翻译过程。 产 生 式 语 义 规 则 L ® E n print (E.val) E ® E1 + T E.val := E1 .val + T.val E ® T E.val := T.val T ® T1 * F T.val := T1.val * F.val T ® F T.val := F.val F® (E) F.val := E.val F ® digit F.val := digit.lexval 2.以词法分析和语法分析部分的上机结果为基础,添加语义分析部分。即以LR文法为基础。当进行产生式归约时执行对应的语义动作。 3.输入: 5+3+8*2 输出:24 4. 若输入有误,如:3++2 则应提示:重新输入! 5. 由于输入串是具体的数值,因此应调用相应的词法分析的功能。 扩展: 1. 对浮点数和科学计数法的表示也能完成上述的操作。 2. 增加减法和除法(也可继续扩展其他运算)对应的产生式,并能计算其语义结果。 3. 在邮箱中第五次上机的文件夹中有两个压缩包,用递归下降法实现的程序在压缩包“recursion_calculator.rar”中,用非递归的预测分析方法实现的程序在压缩包“predict_calculator.rar”中。可以任选其一作为基础进行改进,增加减法和除法的操作,写出改进后的文法,输出表达式的结果。
2019-12-21 21:25:10 7KB 编译 上机 代码 语义分析
1
#include using namespace std; struct node { char temp; node *next; }; class forecase { public: forecase(node *ptr,int);//构造函数 bool judge_stack_top(); //判断 bool judge_input(); //判断输入字符是否为终态 char* find(); //查表 void push(char *); //入栈 char pop(); //出栈 void caozuo(); void print_input(); //打印输入字符串中剩下的字符 void print_stack(); //打印栈中的所有字符 void daozhi(node *); private: node *top; //指向栈顶
2019-12-21 21:11:17 13KB 文法存储 程序 c
1
完整版LL(1)分析过程模拟课程设计报告
2019-12-21 21:11:02 149KB LL(1),课设
1
用C语言编写实现编译原理实验判断文法是不是LL1文法的程序。程序简单易懂,且基本功能都实现了。
2019-12-21 21:07:39 4KB LL1文法
1