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

语法分析器实验报告

语法分析器实验报告_第1页
1/22
语法分析器实验报告_第2页
2/22
语法分析器实验报告_第3页
3/22
语法分析器得设计实验报告一、实验内容语法分析程序用 LL(1)语法分析方法。首先输入定义好得文法书写文件(所用得文法可以用 LL(1)分析),先求出所输入得文法得每个非终结符就是否能推出空,再分别计算非终结符号得 FIRST 集合,每个非终结符号得 FOLLOW 集合,以及每个规则得 SELECT 集合,并推断任意一个非终结符号得任意两个规则得 SELECT 集得交集就是不就是都为空,假如就是,则输入文法符合 LL(1)文法,可以进行分析。对于文法:G[E]:E>E+T|TT>T*F|FF>i|(E)分析句子 i+i*i 就是否符合文法。二、基本思想1、语法分析器实现语法分析就是编译过程得核心部分,它得主要任务就是根据程序得语法规则,从由词法分析输出得源程序符号串中识别出各类语法成分,同时进行词法检查,为语义分析与代码生成作准备。这里采纳自顶向下得 LL(1)分析方法。语法分析程序得流程图如图 54 所示。该程序可分为如下几步:(1)读入文法 (2)推断正误 (3)若无误,推断就是否为 LL(1)文法 (4)若就是,构造分析表;(5)由句型判别算法推断输入符号串就是为该文法得句型。三、核心思想该分析程序有 15 部分组成:(1)首先定义各种需要用到得常量与变量;(2)推断一个字符就是否在指定字符串中;(3)读入一个文法;(4)将单个符号或符号串并入另一符号串;(5)求所有能直接推出&得符号;开始读入文法有效?推断句型报错结束语法分析程序流程图就 是 LL(1) 文法?(6)求某一符号能否推出‘ & ’;(7)推断读入得文法就是否正确;(8)求单个符号得 FIRST;(9)求各产生式右部得 FIRST;(10)求各产生式左部得 FOLLOW;(11)推断读入文法就是否为一个 LL(1)文法;(12)构造分析表 M;(13)句型判别算法;(14)一个用户调用函数;(15)主函数;下面就是其中几部分程序段得算法思想:1、求能推出空得非终结符集Ⅰ、实例中求直接推出空得 empty 集得算法描述如下:void emp(char c){ 参数 c 为空符号 char temp[10];定义临时数组int i;for(i=0;i<=count1;i++)从文法得第一个产生式开始查找{if 产生式右部第一个符号就是空符号并且右部长度为 1,then 将该条产生式左部符号保存在临时数组 temp 中将临时数组中得元素合并到记录可推出&符号得数组 empty 中。}Ⅱ、求某一符号能否推出'&'int _emp(char c){ //若能推出&,返回 1;否则,返回 0int i,j,k,result=1,mark=0;char temp[20];temp[0]=c;temp[1]='\0';存放到一个临时数组 empt 里,标识此字符已查找其就是否可推出空字 假如...

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

碎片内容

语法分析器实验报告

一二三四传媒+ 关注
实名认证
内容提供者

大量资料供您选择,没有合适的可以联系小二。

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