没有合适的资源?快使用搜索试试~ 我知道了~
首页表驱动LL(1)语法分析程序.docx
表驱动LL(1)语法分析程序.docx
需积分: 45 28 下载量 109 浏览量
更新于2023-03-03
评论 6
收藏 1.15MB DOCX 举报
1.1目的与意义 通过设计、编制和调试一个典型的LL(1)语法分析方法,进一步掌握预测分析法的语法分析方法。 1.2主要完成的任务 (1)根据LL(1)分析法编写一个语法分析程序,输入文法的FIRST(α)和FOLLOW(U)集,由程序自动生成文法的预测分析表。 (2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为LL(1)文法。 (3)对输入的任意符号串,所编制的语法分析程序应能正确判断此串是否为文法的句子(句型分析),并要求输出分析过程。 1.3使用的开发工具 Visual C++ 6.0
资源详情
资源评论
资源推荐
燕山大学
编译原理课程设计报告
题目:表驱动 LL(1)语法分析程序
学 院 信息科学与工程学院
年级专业
学生姓名
学生学号
设计日期
目录
1 概述......................................................................................................................................................................1
1.1 目的与意义...............................................................................................................................................1
1.2 主要完成的任务.......................................................................................................................................1
1.3 使用的开发工具.......................................................................................................................................1
1.4 解决的主要问题.......................................................................................................................................1
1.5 课程设计计划...........................................................................................................................................2
2.使用的基本概念和原理......................................................................................................................................2
2.1 FIRST 集...................................................................................................................................................2
2.2 FOLLOW 集..............................................................................................................................................2
2.3 SELECT 集................................................................................................................................................2
2.4 LL(1)文法..................................................................................................................................................3
2.5 表驱动 LL(1)分析程序.............................................................................................................................3
3 总体设计..............................................................................................................................................................4
3.1 技术路线...................................................................................................................................................4
3.2 总体结构...................................................................................................................................................4
3.3 模块划分...................................................................................................................................................4
4 详细设计..............................................................................................................................................................6
4.1 程序流程图...............................................................................................................................................6
4.2 模块设计...................................................................................................................................................7
4.3 函数及参数设计.....................................................................................................................................16
5 编码实现............................................................................................................................................................17
5.1 源代码及注释.........................................................................................................................................17
5.2 开发环境.................................................................................................................................................28
5.3 解决的难点.............................................................................................................................................28
5.4 注意事项.................................................................................................................................................28
6 测试和试运行....................................................................................................................................................28
6.1 测试方法.................................................................................................................................................28
6.2 测试用例.................................................................................................................................................29
6.3 出现的问题及解决方法.........................................................................................................................31
7. 总结...................................................................................................................................................................31
8. 参考文献...........................................................................................................................................................32
第 1 页
1 概述
1.1 目的与意义
通过设计、编制和调试一个典型的 LL(1)语法分析方法,进一步掌握预测分析
法的语法分析方法。
1.2 主要完成的任务
(1) 根 据 LL(1) 分 析 法 编 写 一 个 语 法 分 析 程 序 , 输 入 文 法 的 FIRST(α) 和
FOLLOW(U)集,由程序自动生成文法的预测分析表。
(2)所开发的程序可适用于不同的文法和任意输入串,且能判断该文法是否为
LL(1)文法。
(3)对输入的任意符号串,所编制的语法分析程序应能正确判断此串是否为文
法的句子(句型分析),并要求输出分析过程。
1.3 使用的开发工具
Visual C++ 6.0
1.4 解决的主要问题
(1)对输入的文法的相关信息进行处理,并根据输入的文法的 FIRST(α)和
FOLLOW(U)集以及是否能推导出 ε 来求得每个文法的 SELECT 集。
(2)对具有相同产生式左部的 SELECT 集求交集,判断是否为 LL(1)文法,
若不是程序结束。
(3)构造该文法的预测分析表并输出。
(4)输入符号串,判定该符号串是否为该文法的句子。
(5)对过程中出现的一些错误能够及时报错。
第 2 页
1.5 课程设计计划
表 1.1 课设计划表
周一 确定选题,查阅相关资料,整理思路。
周二 完成程序中输入、LL(1)文法的判定、构造预测分析表的相关代
码。
周三 完成程序中输出预测分析表、输入符号串、处理并输出对符号
串的预测分析过程及结果。
周四 撰写课程设计报告。
2.使用的基本概念和原理
2.1 FIRST 集
定义:设 G=(VT,VN,P,S)是一个上下文无关文法。
若 ,则规定 。
2.2 FOLLOW 集
定义:设 G=(VT,VN,P,S)是一个上下文无关文法, ,S 是开始符号
若 且 ,则规定 。
2.3 SELECT 集
定义:一个产生式的选择符号集 SELECT。给定上下文无关文法的产生式
, , ,若 ,则 。如
果 ,则 。
第 3 页
2.4 LL(1)文法
含义:第一个 L 表明自顶向下分析是从左到右扫描输入串。第二个 L 表明分析
过程中将用最左推导,1 表明只需向右查看一个字符便可决定如何推导,即选
择哪个产生式进行推导。
判定:一个上下文无关文法是 LL(1)文法的充分必要条件是,对每个非终结符
A 的 两 个 不 同 产 生 式 , , 满 足
,其中 α,β 不同时能
2.5 表驱动 LL(1)分析程序
概述:一个表驱动的 LL(1)分析程序由预测分析程序、先进后出栈和预测分析
表 3 个部分组成,其中只有预测分析表与文法有关,而分析表又可用一个矩阵
M 表示。矩阵的元素 M[A,a]中的下标 A 表示非终结符,a 表示终结符或句子括
号#,矩阵元素 M[A,a]中的内容是一条关于 A 的产生式,表明当用非终结符 A
向下推导时,面临输入符 a 时所采取的候选产生式。当元素内容无产生式时,
则表明用 A 为左部向下推导时遇到了不该出现的符号,因此内容为转为出错处
理的信息。
构造预测分析表:
对每个非终结符或‘#’号用 a 表示。
若
把所有无意义的 M[A,a]标上出错标记。
为了使表简化,其产生式的左部可以不写入表中,表中空白处为出错。
剩余34页未读,继续阅读
a152634897951
- 粉丝: 3
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0