编译原理
易水凌波
守正笃实,久久为工。
展开
-
编译原理 算符优先
编译原理 算符优先 思路: 首先需要定义数据结构如下: static struct Node2//用于构造算符优先算法 { char Left; char Right; bool isfirstvt; bool islastvt; }; 一个节点代表一个A->a这样的一个式子,left是非终结符,right为终结符。Isfirstvt为真是代表a是A的firstvt中的一员。Islastvt同理。 之后进行文法的扩展,与算符优先处理的初始化。如下: GrammerSet[grammerse原创 2020-11-26 17:16:02 · 867 阅读 · 0 评论 -
编译原理 预测分析法
实验二 预测分析算法的设计与实现 一、实验目的 通过预测分析算法的设计与实现,加深对自上而下语法分析方法的理解,尤其是对自上而下分析条件的理解。 二、实验要求 输入文法及待分析的输入串,输出其预测分析过程及结果。 三、实验步骤 1、确定目标数据结构 先看下输入的文法结构 E->TK K->+TK|$ T->FM M->*FM|$ F->i|(E) # $代表空,#代表结束 将文法使用具体的数据结构描述出来使用C++好像只有结构体有可操作性了。所以我果断使用结构体。用一个结构原创 2020-11-09 20:12:05 · 4403 阅读 · 5 评论 -
词法分析器
** 实验一 源程序的预处理及词法分析程序设计 ** ** 一、 实验目的 设计并实现一个包含预处理功能的词法分析程序,加深对编译中词法分析过程的理解。 二、 实验要求 1、实现预处理功能 源程序中可能包含有对程序执行无意义的符号,要求将其剔除。 首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的回车符、换行符与制表符等编辑性文字;把多个空白符合并为一个;去掉注释。 2、实现词法分析功能 输入:所给文法的源程序字符串。原创 2020-10-29 23:50:52 · 1041 阅读 · 0 评论