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

编译原理专业课程设计LL文法分析器设计C语言实现

编译原理专业课程设计LL文法分析器设计C语言实现_第1页
1/41
编译原理专业课程设计LL文法分析器设计C语言实现_第2页
2/41
编译原理专业课程设计LL文法分析器设计C语言实现_第3页
3/41
集 美 大 学 计 算 机 工 程 学 院编译原理课程设计汇报选题名称: LL ( 1 )文法分析 院(系): 计 算 机 工 程 学院 专 业: 计算机科学和技术 班 级: 计算 1412 指导老师: 付永刚 年学期: ~ 年 第 2 学期 年 06 月 29 日摘要:选题要求:依据某一文法编制调试 LL(1) 文法语法分分析程序,方便对任意输入符号串进行分析。此次课程设计目标关键是加深对估量分析 LL(1)文法语法分析法了解。具体以下:1、对语法规则有明确定义;2、编写分析程序能够对给定文法进行正确语法分析;3、对输入给定文法,手工计算 FIRST、FOLLOW 集合和 select 集合,应能判定识别是否为给定文法句子,并给出推导过程。4、对输入给定文法,由程序自动结构 FIRST、FOLLOW 集合。5、对于碰到语法错误,能够做出简单错误处理,给出简单错误提醒,确保顺利完成语法分析过程。 关键词:语法分析;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 是一个间接递归非终止符...

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

碎片内容

编译原理专业课程设计LL文法分析器设计C语言实现

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