电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

《编译原理》语法分析器实验报告模板-课程设计-信安

《编译原理》语法分析器实验报告模板-课程设计-信安_第1页
1/47
《编译原理》语法分析器实验报告模板-课程设计-信安_第2页
2/47
《编译原理》语法分析器实验报告模板-课程设计-信安_第3页
3/47
课 程 设 计 报 告课程名称 编译原理 实验项目 设计与实现一个词法分析器 实验仪器 PC 机 北京信息科技大学信息管理学院(课程上机)实验报告1.实验目的:结合讲授内容,进一步培育学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的语法分析程序设计任务,同时强调好的程序设计风格。2.实验内容:对输入的文法判定是否为 LL(1)文法,若是 LL(1)文法,则构造 LL(1)分析表,输入一个句子,依据 LL(1)分析表输出与句子对应的语法树。设计 LL(1)文法的词法分析器。3.实验要求:(1)输入一个文法 G(如:测试数据 1);(2)编写求 FIRST 集的算法;输出文法 G 的 First 集;(3)编写求 FOLLOW 集的算法;输出文法 G 的 FOLLOW 集;(4)编写求 SELECT 的算法,输出文法 G 的 SELECT 集;(5)判定是否为 LL(1)文法,若是,则编写构造 LL(1)分析表的算法,并输出预测分析表(6)编写表驱动的预测分析算法;(7) 给出输入一个句子(如:测试数据 2)的预测分析步骤; (8)输出依据句子构对应的语法树的过程; (9)构造文法 G 的递归子程序;(选作)测试数据 1:(若用其它测试数据,请替换下面内容)输入文法 G:S->aHH->aMd|dM->Ab|@A->aM|e测试数据 2:输入句子: aaabd#4.实验准备:5.实验过程:#include#include#include/*******************************************/int count=0; /*分解的产生式的个数*/int number; /*所有终结符和非终结符的总数*/char start; /*开始符号*/char termin[50]; /*终结符号*/char non_ter[50]; /*非终结符号*/char v[50]; /*所有符号*/char left[50]; /*左部*/char right[50][50]; /*右部*/char first[50][50],follow[50][50]; /* 各 产 生 式 右 部 的 FIRST 和 左 部 的FOLLOW 集合*/char first1[50][50]; /*所有单个符号的 FIRST 集合*/char select[50][50]; /*各单个产生式的 SELECT 集合*/char f[50],F[50]; /*记录各符号的 FIRST 和 FOLLOW 是否已求过*/char empty[20]; /*记录可直接推出@的符号*/char TEMP[50]; /*求 FOLLOW 时存放某一符号串的 FIRST 集合*/int validity=1; /*表示输入文法是否有效*/int ll=1; /*表示输入文法是否为 LL(1)文法*/int M[20][20]; /*分析表*/...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

《编译原理》语法分析器实验报告模板-课程设计-信安

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部