- 1、本文档共19页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实验报告解析
编译原理课程设计报告
选题名称: LL(1)文法
院(系): 计 算 机 工 程 学院
专 业: 计算机科学与技术
班 级:
姓 名:
学 号:
指导教师:
年月号
目录
目录 I
摘要 II
1.设计内容及要求 1
2实现原理
2.1 判断左递归…………………………………………………………………1
2.2 计算first集合算法………………………………………………………..2
2.3 计算follow集合算法……………………………………………………..3
2.4 预测分析过程算法……………………………………………………….4
3.详细设计实现及关键代码………………………………………………………….5
3.1程序总流程图...................................................................................................6
3.2导入文件 6
3.3判断左递归 6
3.4 FIRST集合的计算 7
3.5 FOLLOW集的计算 9
3.6构造预测分析表 10
3.7 LL1预测分析过程 11
4.程序调试部分截图 14
5.课设总结 16
6.参考文献 18
摘要:
编译程序一般由词法分析器、语法分析器、语义分析程序、中间代码产生程序、目标代码生成程序、代码优化等组成,其中最主要的应该是语法分析,它是编译过程的核心部分。语法分析是在词法分析识别出的Token单词符号串的基础上,分析并判断程序的语法结构是否符合语法规则。而语言的语法结构式用上下文无关文法描述的,这与形式语言的学习有很大的关系。语法分析的本质是按文法的产生式,求出First、Follow集以及预测分析表这就是语法分析也就是此次LL(1)文法分析课程设计的主要内容。
具体实现流程即对读入文法进行初始化的处理,删除无用的符号句子,然后进行相应的消除左递归,以及消除间接左递归,并且对公因子进行提取,对文法分析,然后得到文法的First、Follow集以及分析预测表,然后对输入的句子进行分析,通过出栈入栈进行比较得出是否分析成功,然后通过表格将结果显示出来,还有分析的过程,每一步入栈出栈等演示出来。
关键字:左递归、First、Follow集、预测分析表
正文:
一. 设计内容及要求
(1) 基于PL/0语言,通过编程判断该文法是否为LL(1)文法;
(2)计算出文法的First() Follow()
(3)构造相应文法的预测分析表
(4)对某个输入句子进行语法分析
二. 实现原理
1.LL(1)文法
LL(1)文法是一类可以进行确定的自顶向下语法分析的文法。就是要求描述语言的文法是无左递归的和无回溯的。根据LL(1)文法的定义,对于同一非终结符A的任意两个产生式A:=a和A:=b,都要满足:SELECT(A:=a )∩SELECT(A:=b)=?。
(1)文法的左递归
当一个文法是左递归文法时,采用自顶向下分析法会使分析过程进入无穷循环之中。所以采用自顶向下语法分析需要消除文法的左递归性。文法的左递归是指若文法中对任一非终结符A有推导A(A…,则称该文法是左递归的。
左递归又可以分为直接左递归和间接左递归。
● 直接左递归
若文法中的某一产生式形如A→Aα,α∈V*,则称该文法是直接左递归的。
消除直接左递归的方法:
设有产生式是关于非终结符A的直接左递归:A→Aα|β (α,β∈V*,且β不以A开头)
对A引入一个新的非终结符A′,把上式改写为:
A →βA′
A′→αA′|ε
● 间接左递归
若文法中存在某一非终结符A,使得A(A…至少需要两步推导,则称该文法是间接左递归的。
消除间接左递归的方法:
【方法一】采用代入法把间接左递归变成直接左递归。
【方法二】直接改写文法:设有文法G10[S]:
S→Aα|β ⑴
A→Sγ ⑵
因为S(Aα(Sγα,所以S是一个间接递归的非终结符。为了消除这种间接左递归,将⑵式代入⑴式,即可得到与原文法等价的文法(可以证明):
S→Sγα|β ⑶
⑶式是直接左递归的,可以采用前面介绍的消除直接左递归的方法,对文法进行改写后可得文法:S→
您可能关注的文档
- 绿色食品质量标准体系解析.ppt
- 缅怀先烈ppt解析.ppt
- 缅怀先烈主题班会321解析.ppt
- 缓解武汉市交通拥挤问题的思考解析.ppt
- 编组机解组机改造方案解析.doc
- 编制办法和费用定额解析.ppt
- 编程的基础知识解析.ppt
- 缅怀先烈主题班会解析.ppt
- 绿色骑行活动方案解析.ppt
- 编译原理大作业解析.doc
- 浙江衢州市卫生健康委员会衢州市直公立医院高层次紧缺人才招聘11人笔试模拟试题参考答案详解.docx
- 浙江温州泰顺县退役军人事务局招聘编外工作人员笔试备考题库及参考答案详解一套.docx
- 江苏靖江市数据局公开招聘编外工作人员笔试模拟试题及参考答案详解.docx
- 广东茂名市公安局电白分局招聘警务辅助人员40人笔试模拟试题带答案详解.docx
- 江苏盐城市大丰区住房和城乡建设局招聘劳务派遣工作人员4人笔试模拟试题带答案详解.docx
- 浙江舟山岱山县东沙镇人民政府招聘笔试模拟试题及参考答案详解1套.docx
- 最高人民检察院直属事业单位2025年度公开招聘工作人员笔试模拟试题含答案详解.docx
- 浙江金华市委宣传部、中共金华市委网信办所属事业单位选调工作人员笔试备考题库及答案详解1套.docx
- 广东深圳市党建组织员招聘40人笔试模拟试题及答案详解1套.docx
- 江苏南京水利科学研究院招聘非在编工作人员4人笔试模拟试题及参考答案详解.docx
最近下载
- SY 4201.4-2016 石油天然气建设工程施工质量验收规范 设备安装工程 第4部分:炉类.docx VIP
- 电力市场分析软件:PLEXOS二次开发_(13).电力市场改革与趋势分析.docx VIP
- 云和雪梨生产全程质量控制技术规范.docx VIP
- 电力市场分析软件:PLEXOS二次开发_(12).可视化与报告生成.docx VIP
- 2024-2025学年四川省成都市新都一中实验学校七年级(上)分班数学模拟试卷(含答案).pdf VIP
- 跨座式与悬挂式单轨运输系统幻灯片.ppt VIP
- 市场营销论文:长春农商银行小微企业贷款业务市场营销策略研究.docx VIP
- 电力市场分析软件:PLEXOS二次开发_(11).数据库管理与接口设计.docx VIP
- 电力市场分析软件:PLEXOS二次开发_(10).二次开发工具与技巧.docx VIP
- 有机肥采购项目投标书(范本).docx
文档评论(0)