编译原理课程设计-LL1文法分析器设计
《编译原理课程设计-LL1文法分析器设计》由会员分享,可在线阅读,更多相关《编译原理课程设计-LL1文法分析器设计(32页珍藏版)》请在毕设资料网上搜索。
1、 编译原理课程设计报告编译原理课程设计报告 选题名称选题名称: LL(1)文法分析 院(系)院(系): 计 算 机 工 程 学院 专专 业业: 计算机科学与技术 摘要:选题要求:根据某一文法编制调试 LL(1) 文法语法分分析程序,以便对任意输 入的符号串进行分析。 本次课程设计的目的主要是加深对预测分析 LL(1)文法语法分析 法的理解。具体如下:1、对语法规则有明确的定义;2、编写的分析程序能够对给定 文法进行正确的语法分析; 3、 对输入给定的文法, 手工计算FIRST、 FOLLOW集合和select 集合, 应能判断识别是否为给定文法的句子, 并给出推导过程。 4、 对输入给定的文法
2、, 由程序自动构造 FIRST、FOLLOW 集合。5、对于遇到的语法错误,能够做出简单的错误 处理,给出简单的错误提示,保证顺利完成语法分析过程。 关键词:语法分析;FIRST 集合;FOLLOW 集合;分析表 一、设计内容及要求 (1) 基于 PL/0 语言,通过编程判断该文法是否为 LL(1)文法; (2)计算出文法的 First() Follow() (3)构造相应文法的预测分析表 (4)对某个输入句子进行语法分析 二、实现原理 1LL(1)文法 LL(1)文法是一类可以进行确定的自顶向下语法分析的文法。 就是要求描述语言的文法是无左递 归的和无回溯的。根据 LL(1)文法的定义,对于
3、同一非终结符 A 的任意两个产生式 A:=a 和 A:=b,都 要满足:SELECT(A:=a )SELECT(A:=b)=。 (1)文法的左递归 当一个文法是左递归文法时,采用自顶向下分析法会使分析过程进入无穷循环之中。所以采用 自顶向下语法分析需要消除文法的左递归性。 文法的左递归是指若文法中对任一非终结符 A 有推导 AA,则称该文法是左递归的。 左递归又可以分为直接左递归和间接左递归。 直接左递归 若文法中的某一产生式形如 AA,V*,则称该文法是直接左递归的。 消除直接左递归的方法: 设有产生式是关于非终结符 A 的直接左递归:AA| (,V*,且不以 A 开头) 对 A 引入一个新
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课程设计 LL1 文法 分析器 设计
