1、 课 程 设 计 说 明 书课 程 设 计 说 明 书 课程名称:编译原理课程设计 题目: LR(1)分析和语义分析 院 系: 理学院 专业班级:信息与计算科学 11-2 班 学 号: 2014 年 6 月 26 日 课程设计(论文)任务书 学 号 学生姓名 专业(班级) 信计 11-2 设计题目 LR(1)分析和语义分析 设 计 技 术 参 数 jdk 1.6 开发工具:Myeclipse 10.0 设 计 要 求 对某一文法进行 LR(1)分析和语义分析 工 作 量 文档不少于 12 页,参考文献不少于 10 个 工 作 计 划 6 月 16-17 日了解 LR 分析的原理和过程,选定一个
2、要分析的文法 6 月 18-19 日构造项目集规范族利用项目集规范族和转移函数构造 LR(1)分析表 6 月 20-21 日学习语义分析,并对选定文法赋予语义规则 6 月 22-23 日编写 JAVA 代码实现对文法的 LR(1)分析和语义分析 6 月 24-25 日完成文档写作包括实现原理,程序流程图和类的说明 6 月 26 日提交课程设计 参 考 资 料 1David A.Watt.Programming Language Syntax and SemantiesM.prentice Hall,1911. 2赵克佳,杨灿群,罗红兵.多语种多平台编译系统剖析M.工业出版社 1997. 3陈火
3、旺,钱家骅,孙永强,程序设计语言编译原理M,国学工业出版社 4李赣生,王华民. 编译程序原理和技术M.清华大学出版社,1997. 5金成植,编译程序构造原理和实现技术M.高等教育出版社,2000. 6杜淑敏,王永宁.编译程序设计原理M.北京大学出版社,1986. 7Jim Holmes.Compiler ConstructionM.Prentice Hall,1995. 8Bertrand Meyer.Reusable SoftwareM.Prentice Hall,1994. 9Andrew W.Appel.Modern Compiler DesignM.Cambridge Universi
4、ty Press,1998. 10陈意云.编译原理和技术M.中国科学技术大学出版社,1997. 指导教师签字 教研室主任签字 年 月 日 编译原理课程设计 3 目录 1 绪论 1 2 概述 1 2.1 设计背景. 1 2.2 设计目的. 1 2.3 软件定义. 2 2.4 开发环境. 2 3 项目设计报告 3 3.1 程序流图. 3 3.2 实现原理. 4 3.2.1 LR 分析概述 4 3.2.2 LR(1)项目集规范族的构造 4 3.2.3 LR(1)分析表的构造 6 3.3 类的说明. 6 4 项目测试报告 6 4.1 测试的目的. 6 4.2 项目集规范族和 LR(1)分析表 . 7
5、4.3 语义规则. 8 4.4 运行界面. 8 4.5 相关代码 10 5 心得体会 . 21 参考文献. 22 编译原理课程设计 1 1 1 绪论 编译原理是计算机专业的一门重要的专业课程,其中包含大量软件设计 思想。大家通过课程设计,实现一些重要的算法,或设计一个完整的编译程序模 型,能够进一步加深理解和掌握所学知识,对提高自己的软件设计水平具有十分 重要的意义。 2 概述 2.1 设计背景 随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已为人们 熟知,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应 用的一部分,使用计算机对 LR(1)文法判断与预测分析器的构造
6、系统,具有比手 工运算、构造所无法比拟的优点。例如:查找迅速、查找方便、准确性高等。这 些优点能够极大地提高判定 LR(1)文法的效率,也是我们此次课程设计的目的。 因此,开发这样的一套 LR(1)文法判定与预测分析器的构造软件是很有必要的。 编译原理是大学计算机专业的必修课程,而词法分析作为其中的一部分占 据着比较重要的地位。词法分析是编译原理的第一阶段,它的主要任务是从左至 右逐个字符地对源程序进行扫描,产生一个个单词序列,用以语法分析。 通关本次课程设计,我们对编译原理的理解就不止停留在课本上,而是知 道怎样把编译原理应用到实际的编译程序设计的实践中。 对我们今后的学习和工 作都是至关重要的。 2.2 设计目的 因为 LR(0)分析过程中不需要向右查看输入符号,因而它可以对文法的限制 较大,对绝大多数的高级语言的语法分析器是不能适用的,所以,要分析绝大多 数的高级语言编译程序的需要,采用向后查看一个输入