编译原理课设7 下载本文

内容发布更新时间 : 2024/6/5 4:02:27星期一 下面是文章的全部内容请认真阅读。

课程设计(论文)任务书

软 件 学 院 学 院 软件测试 专 业 2 班

一、课程设计(论文)题目 FirstVT集和LastVT集生成算法模拟 二、课程设计(论文)工作自 2016 年 6 月 20 日起至 2016 年 6 月 24 日止。 三、课程设计(论文) 地点: 软 件 学 院 实 训 中 心 四、课程设计(论文)内容要求: 1.本课程设计的目的

进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编 译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时, 强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识, 熟 悉使用开发工具VC /JAVA/C#/.NET 。 2.课程设计的任务及要求 1)课程设计任务:

设计一个由正规文法生成FIRSTVT集和LASTVT集的算法动态模拟。(算法参见 教材)

动态模拟算法的基本功能是: (1) 输入一个文法G;

(2) 输出由文法G构造FIRSTVT集的算法; (3) 输出FIRSTVT集;

(4) 输出由文法G构造LASTVT集的算法; (5) 输出LASTVT集。 2)创新要求:

3)课程设计论文编写要求 (1)课程设计任务及要求

(2)设计思路--工作原理、功能规划

(3)详细设计---数据分析、算法思路、功能实现(含程序流程图、主要代码及注

释)、界面等。

(4)运行调试与分析讨论---给出运行屏幕截图,分析运行结果,有何改进想法等。 (5)设计体会与小结---设计遇到的问题及解决办法,通过设计学到了哪些新知识,

编译原理课程设计

巩固了哪些知识,有哪些提高。

(6)报告按规定排版打印,要求装订平整,否则要求返工;

(7)课设报告的装订顺序如下:封面---任务书---中文摘要---目录----正文---附录

(代码及相关图片)

(8)严禁抄袭,如有发现,按不及格处理。 4)课程设计评分标准: (1)学习态度:20分; (2)系统设计:20分; (3)编程调试:20分; (4)回答问题:20分; (5)论文撰写:20分。 5)参考文献:

(1)张素琴,吕映芝. 编译原理[M]., 清华大学出版社

(2)蒋立源、康慕宁等,编译原理(第2版)[M],西安:西北工业大学出版社 6)课程设计进度安排

1.准备阶段(4学时):选择设计题目、了解设计目的要求、查阅相关资料 2.程序模块设计分析阶段(4学时):程序总体设计、详细设计 3.代码编写调试阶段(8学时):程序模块代码编写、调试、测试

4.撰写论文阶段(4学时):总结课程设计任务和设计内容,撰写课程设计论文

学生签名: 2016 年 6 月 24 日

课程设计(论文)评审意见

(1)学习态度(20分):优( )、良( )、中( )、一般( )、差( ); (2)系统设计(20分):优( )、良( )、中( )、一般( )、差( ); (3)编程调试(20分):优( )、良( )、中( )、一般( )、差( ); (4)回答问题(20分):优( )、良( )、中( )、一般( )、差( ); (5)论文撰写(20分):优( )、良( )、中( )、一般( )、差( );

评阅人: 职称: 副教授

2016 年 6 月 日

-第 2 页 -

饶望:FirstVT集和LastVT集生成算法模拟

中文摘要

编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。随之而来的还有形式语言与自动机理论和方法的研究也越来越受到人们的重视,本课程设计主要研究自动机在编译方面的应用,并将讨论重点放在算符优先分析法上,并用此理论完成算数表达式的正确与否的判断。

算符优先分析法是一种自底向上分析方法,也称移进-归约分析法,粗略地说它的实现思想是对输入符号串自左向右进行扫描,并将输入符逐个移入一个后进先出栈中,边移入边分析,一旦栈顶符号串形成某个句型的句柄时,(该句柄对应某产生式的右部),就用该产生式的左部非终结符代替相应右部的文法符号串,这称为一步归约。重复这一过程直到归约到栈中只剩文法的开始符号时则为分析成功,也就确认输入串是文法的句子。

计算非终结符的FIRSTVT集和LASTVT集是构造算符优先分析表的基础,而算符优先分析表的构造又是算符优先分析算法的基础。因此,本程序的实现可以说是算符优先分析算法实现的基础。

-第 3 页 -

编译原理课程设计

目 录

一、课程设计任务及要求 .................................................................. 1 二、需求分析 ...................................................................................... 2 三、设计思路 ...................................................................................... 3 四、详细设计 ...................................................................................... 5 五、运行调试与分析讨论 ................................................................ 11 六、设计体会与小结 ........................................................................ 13 七、参考文献 .................................................................................... 14

-第 4 页 -

饶望:FirstVT集和LastVT集生成算法模拟

一、课程设计任务及要求 课设目的

进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格,并综合使用程序设计语言、数据结构和编译原理的知识,熟悉使用开发工具VC /JAVA/C#/.NET 。

总体要求

1.思想的正确性,采用合适的数据存储结构等。

2.程序实现的正确性,程序整体结构合理、编程风格规范等。

3.程序功能的完善程度,包括功能的基本实现、基本完善、完全实现 4.工作认真、独立完成课设。

基本要求

动态模拟算法的基本功能是: 1.输入一个文法G;

2.输出由文法G构造FIRSTVT集的算法; 3.输出FirstVT集;

4.输出由文法G构造LastVT集的算法; 5.输出LastVT集。

第 1 页