1、课程设计任务书课程设计任务书 学生姓名:学生姓名: 专业班级:专业班级: 指导教师:指导教师: 工作单位:工作单位: 题题 目目: : 预测分析程序的设计预测分析程序的设计 初始条件:初始条件: 程序设计语言:主要使用 C 语言的开发工具,或者采用 LEX、YACC 等工具,也可 利用其他熟悉的开发工具。算法:可以根据编译原理课程所讲授的算法进行设计。 要求完成的主要任务要求完成的主要任务: : (包括课程设计工作量及其技术要求,说明书撰写等具 体要求) 1. 明确课程设计的目的和重要性, 认真领会课程设计的题目, 读懂课程设计指导书的 要求,学会设计的基本方法与步骤,学会如何运用前修知识与收
2、集、归纳相关资料解 决具体问题的方法。严格要求自己,要独立思考,按时、独立按时、独立完成课程设计任务。 2. 课设任务:对教材 P94 中的上下文无关文法,实现它的预测分析程序,给出符号串 i+i*i 的分析过程。 (参考教材 P9396) 3. 主要功能: 对于这个给的LL (1) 文法, 假设所有非终结符号 P的FIRST集合和FOLLOW 集合都是已知的,构造其预测分析表,程序显示输出预测分析表,同时用这个预测分 析程序对输入串进行分析,并给出了栈的变化过程。 4. 进行总体设计,详细设计:包括算法的设计和数据结构设计。系统实施、调试,合 理使用出错处理程序。 5. 设计报告:要求层次清
3、楚、整洁规范、不得相互抄袭。正文字数不少于 0.3 万字。 包含内容: 课程设计的题目。 目录。 正文:包括引言、需求分析、总体设计及开发工具的选择,设计原则(给出语法分 析方法及中间代码形式的描述、文法和属性文法的设计) ,数据结构与模块说明(功能 与流程图) 、详细的算法设计、软件调试、软件的测试方法和结果、有关技术的讨论、 收获与体会等。 结束语。 参考文献。 附录:软件清单(或者附盘) 。 时间安排:时间安排: 消化资料、系统调查、形式描述 1 天 系统分析、总体设计、实施计划 3 天 撰写课程设计报告书 1 天 指导教师签名:指导教师签名: 20102010 年年 6 6 月月 11
4、11 日日 系主任(或责任教师)签名:系主任(或责任教师)签名: 20102010 年年 6 6 月月 1111 日日 编译原理课程设计说明书编译原理课程设计说明书 3 目目 录录 1 1 引言引言 5 5 2 2 需求分析需求分析 5 5 2.1 问题的提出 5 2.2 问题的解决 5 2.3 解决步骤 6 3 3 总体设计总体设计 6 6 3.1 概要设计 6 3.1.1 设计原理 . 6 3.1.2 构造 LL(1)分析表 7 3.2 详细设计 . 10 3.2.1 程序流程图 10 3.2.2 设计要求 12 3.2.3 设计原理 12 3.2.3.1 FIRST(X)(XVNVT)的
5、构造 . 12 3.2.3.2 函数 getFIRST() (=X1X2X3Xn)的构造 12 3.2.3.3 FOLLOW(A) (AVN)的构造 . 13 3.2.3.4 分析表 M【A,a】的构造 . 13 3.2.3.5 匹配过程的实现 . 13 3.3 程序设计 . 14 编译原理课程设计说明书编译原理课程设计说明书 4 3.3.1 总体方案设计 14 3.3.2 各模块的实现 14 4 4 开发工具的选择开发工具的选择 2323 5 5 程序测试程序测试 2323 6 6 有关技术的讨论有关技术的讨论 2525 7 7 收获与体会收获与体会 2525 8 8 参考文献参考文献 26
6、26 编译原理课程设计说明书编译原理课程设计说明书 5 1 1 引言引言 一个编译程序在对某个源程序完成了词法分析工作之后, 就进入了语法分析 阶段,分析检查源程序是否语法上正确的程序,并生成相应的内部中间表供下一 阶段使用。程序设计语言是一般形式语言的特例,程序语法正确性的检查时语法 句子的识别,语法分析问题也就是句型识别问题。按照识别句子语法树建立的方 式,有自顶向下与自底向上两大类分析技术。本课程讨论自顶向下的情况。 本次课程设计所做的工作是对已知 FIRST 集合和 FOLLOW 集合的 LL(1)文 法构造其预测分析表,程序显示输出预测分析表,同时用这个预测分析程序对输 入串进行分析,并给出了栈的变化过程。 2 2 需求分析需求分析 2.1 问题的提出问题的提出 语法分析是编译过程的核心部分。 他的任务是在词法分析识别单词符号串的 基础上,分