网站大量收购独家精品文档,联系QQ:2885784924

编译原理LL分析器C语言.pdf

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理LL分析器C语言

数学与软件科学学院 实验报告 学期: 2015 至 2016第 2 学期 2016 年 4 月 15 日 2013 5 课程名称: 编译原理 专业: 信息与计算科学 级 班 实验编号: 3 实验名称: LL(1)分析器 指导教师: 王开端 学生姓名: 李丹 学号: 2013060510 实验成绩: 实验三 LL(1)分析器 实验目的: 根据书本知识和查阅相关资料,设计一个LL(1)语法分析器。 实验内容: 利用所设计的LL(1)语法分析器判断输入串i+i*i 是否为文法G[E]的句子。文 法G[E]如下: G[E]: E TE E TE| T FT T*FT| F  (E)|i 实验步骤: 1LL(1)分析法 LL(1)分析法又称预测分析法,是一种不带回溯的非递归自顶向下分析法。 LL(1)的含义是:第一个L 表明自顶向下分析是从左至右扫描输入串的;第二个 L “1” 表明分析过程中将用最左推导; 表明只需向右查看一个符号就可以决定如 何推导 (即可知用哪一个产生式进行推导)。 LL(1) 1 分析器结构如图 : 图1 LL(1)分析器 使用LL(1)分析法将会涉及到LL(1)分析表,而分析表又会涉及到FIRST 集 和FOLLOW 集。 2FIRST 集构造 X FIRST(X) 对文法中的每一个非终结符 构造 ,其方法是连续使用以下规则, 直到每个集合的FIRST 不再增大为止。 若有产生式X  a...,且aVT ,则把a 加入到FIRST(X)中;若存在X  , ε FIRST(X) 则将 也加入到 中。 若有X  Y...且Y V ,则将FIRST(Y)中的所有非ε元素 (记为“\{ε}”)都 N 加入到FIRST(X)中;若有X  YY ...Y ,且Y ~ Y 都是非终结符,而Y ~ Y 的候 1 2 K 1 i 1 i Y 选式都有ε存在,则把FIRST( )(j 1,2,...i)的所有非ε元素都加入到FIRST(X)中;j 特别是当Y ~ Y 均含有ε产生式时,应把ε也加入到FIRST(X)中。 1 k 文法G[E]的FIRST 集如下: 1 FIRST(E’) {+,ε} FIRST(T’) {*,ε} FIRST(F) {(,i} () ; ; ; 2 T F...和E T... FIRST(F)FIRST(T)FIRST(E) ( )由 知 ,即有 FIRST(T) FIRST(E) FIRST(F) {(,i}; 3FOLLOW 集构造 对文法G[S]的每一个非终结符A 构造FOLLOW(A),其方法是连续使用以下 规则,直到每个集合的FOLLOW 不再增大为止。 对文法开始符号S,置#于FOLLOW(S)

文档评论(0)

linsspace + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档