编译原理课程设计指导书.docx
- 文档编号:30398811
- 上传时间:2023-08-14
- 格式:DOCX
- 页数:17
- 大小:77.71KB
编译原理课程设计指导书.docx
《编译原理课程设计指导书.docx》由会员分享,可在线阅读,更多相关《编译原理课程设计指导书.docx(17页珍藏版)》请在冰豆网上搜索。
编译原理课程设计指导书
编译原理课程设计指导书
课题名称:
指导教师:
专业班级:
小组成员:
(组长)
完成日期:
年月日
目录
1.1课程设计的基本要求和方法
一、目的
二、基本要求
二、课程设计步骤
三、评分标准
1.2编译原理课程设计题目—编译器设计
一、词法分析器设计
二、语法分析器设计
三、中间代码生成器的设计
1.3编译原理设计题目—算法过程模拟
一、First集和Follow集生成算法模拟
二、LL
(1)分析过程模拟
三、逆波兰表达式生成算法模拟
四、算符优先分析表生成模拟
五、算符优先分析过程模拟
六、LR分析过程模拟
附录1档案材料封面
附录2报告格式
附录3评分表
1.1课程设计的基本要求和方法
一、目的
进一步培养学生编译器设计的思想,加深对编译原理和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。
二、基本要求
为了使学生从课程设计中尽可能取得比较大的收获,对课程设计题目分成2类,第一类为编译器模拟设计(共3个),第二类为编译原理算法模拟设计题目(共6个)。
学生可根据自己的情况从这2种类型的题目中选择任意一类完成。
I:
若选择做第一类题目(要求如下:
)
1、分组:
6人分为一组,选举一人为组长,在设计报告的封面中标明。
2、任务:
每一组都必须完成整个编译器的模拟设计(即词法分析器设计、语法分析器设计、中间代码生成器的设计)。
3、分工:
必须明确分工,并在设计报告中写出具体分工,且排名按工作量大小分先后。
此为评判成绩的依据之一。
4、完成时间:
1个月(定于5月10日交)
5、提交成果:
课程设计报告书(打印纸制文档和磁盘)、软件(磁盘)。
每组交一份。
II:
若选择做第二类题目(要求如下:
)
1、分组:
3人分为一组,选举一人为组长,在设计报告的封面中标明。
2、任务:
每一组可以任意选择算法模拟设计题目的四个完成。
3、分工:
必须明确分工,并在设计报告中写出具体分工,且排名按工作量大小分先后。
此为评判成绩的依据之一。
4、完成时间:
1个月(定于5月10日交)
5、提交成果:
课程设计报告书(打印纸制文档和磁盘)、软件(磁盘)。
每组交一份。
三、课程设计步骤
1、问题理解和分析
充分地分析和理解问题本身,弄清要求做什么。
2、确定解决问题的方法(设计)
主要是找到解决问题的主要思路,是怎么做。
在此阶段可考虑系统的功能和模块划分等。
3、详细设计和编码
确定算法的主要流程,再进行编程。
在此阶段应提醒学生程序可先在纸上写,尽量想清楚了再动手上机,在编程过程中注意程序结构的清晰性,避免出现很多明显的程序逻辑错误和语法错误,提高后面程序调试效率。
4、程序调试和运行
使学生掌握程序调试和排错(Debug)的基本方法,增加编程的感觉和解决问题的成就感。
5、完成课程设计报告(备注:
课程设计报告)
1)问题描述
题目要解决的问题是什么
2)分析、设计、实现
解决问题的基本方法说明,包括主要算法思想,算法的流程图。
程序中主要函数或过程的功能说明。
3)运行结果分析。
4)总结
遇到的主要问题是如何解决的、对设计和编码的回顾讨论和分析、进一步改进设想、经验和体会等。
5)附录
源程序清单和结果。
6、参考书籍:
为方便同学们顺利做出课程设计,特向大家推荐几本书:
《编译原理实践教程》西安电子科技大学出版社胡元义主编
《编译技术课程设计与上机指导》重庆大学出版社霍林主编
7、装订要求:
按以下顺序装订(课程设计(论文)档案材料----课程设计指导书-------课程设计报告------评分表)注意封面要省略页眉页脚
四、评分标准
通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。
成绩分优、良、中、及格和不及格五等。
考核标准包括:
(1)编译器思想的正确性,包括是否采用了合适的数据存储结构等。
(20%)
(2)程序实现的正确性,包括程序整体结构是否合理、编程风格是否规范等。
(20%)
(3)程序功能的完善程度,包括功能的基本实现、基本完善、完全实现(20%)
(4)学生的工作态度、独立工作能力。
(20%)
(5)课程设计报告。
(20%)
1.2编译原理课程设计题目—编译器设计
本设计的编译程序涉及到编译五个阶段中的三个,即词法分析器、语法分析器和中间代码生成器。
编译程序的输出结果包括词法分析后的二元式序列、变量名表、状态栈分析过程显示及四元式序列程序。
整个编译程序分为三部分:
(1)词法分析部分
(2)语法分析处理及四元式生成部分
(3)输出显示部分
这个设计主要考察学生对编译原理的基本理论的理解和对C、VC++的运用能力。
测试数据
输入源程序:
while(a>b)
{if(m>=n)
a=a+1;
else
while(k==h)
x=x+2;
m=n+x*(m+y)
}
运行结果显示要求
经编译程序运行后得到的1、二元式序列如下:
(因篇幅问题省略)
2、状态栈分析过程如下:
(因篇幅问题省略)
3、四元式序列如下:
100(*,b,c,T1)
101(+,a,T1,T2)
102(=,T2,,a)
103(j<,a,c,105)
104(j,,,117)
105(j<,b,d,107)
106(j,,,116)
107(j<,d,e,109)
108(j,,,115)
109(j<,a,e,111)
110(j,,,113)
111(=,n,,m)
112(j,,,114)
113(=,q,,m)
114(j,,,107)
115(j,,,105)
116(j,,,103)
一、词法分析器设计
【问题描述】
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。
并依次输出各个单词的内部编码及单词符号自身值。
【基本要求】
词法编译器基本功能是:
(1)输入源程序:
输入C源程序;
(2)输出单词,输出形式为:
(序号,单词);
(3)输出出错信息,输出形式为:
(出错行号,出错列号,出错信息);
(4)输出符号表,输出形式为:
(单词种别码,单词符号);
二、语法分析器设计
【问题描述】
编译程序中语法分析处理以及四元式生成部分主要以二元式作为输入,并通过LR分析表对语法分析处理过程进行控制,使四元式翻译的工作有条不紊的进行,同时识别语法分析中的语法错误。
注意:
1、程序语句的LR分析表
2、算术表达式的LR分析表
3、布尔表达式的LR分析表
三、中间代码生成器设计
【问题描述】
编译程序中语法分析处理以及四元式生成部分主要以二元式作为输入,并通过LR分析表对语法分析处理过程进行控制,使四元式翻译的工作有条不紊的进行,同时识别语法分析中的语法错误。
注意:
1、算术表达式处理的语义加工程序
2、布尔表达式处理的语义加工程序
3、程序语句的语义加工程序
1.3编译原理课程设计题目—算法过程模拟
本设计有6个子设计,主要是模拟编译原理算法的过程,主要模拟其中的七个算法,主要考察学生对算法的理解和对C、VC++的掌握。
一、First集和Follow集生成算法模拟
【问题描述】
设计一个由正规文法生成First集和Follow集并进行简化的算法动态模拟。
【基本要求】
动态模拟算法的基本功能是:
(1)输入一个文法G;
(2)输出由文法G构造FIRST集的算法;
(3)输出First集;
(4)输出由文法G构造FOLLOW集的算法;
(5)输出FOLLOW集。
【测试数据】
输入文法:
E->TE’
E’->+TE’|ε
T->FT’
T’->*FT’|ε
F->(E)|i
二、LL
(1)分析过程模拟
【问题描述】
设计一个给定LL
(1)分析表,输入一个句子,能由依据LL
(1)分析表输出与句子对应的语法树。
能对语法树生成过程进行模拟。
【基本要求】
动态模拟算法的基本功能是:
(1)输入LL
(1)分析表和一个句子;
(2)输出LL
(1)总控程序;
(3)输出依据句子构对应的语法树的过程;
【测试数据】
输入句子:
i*i+i
输入LL
(1)分析表
三、逆波兰表达式的生成
【问题描述】
将用中缀式表示的算术表达式转换为用逆波兰式表示的算术表达式,并计算用逆波兰式来表示的算术表达式的值
【测试数据】
输入如下:
21+((42-2)*15+6))-18#
•输出如下:
原来表达式:
21+((42-2)*15+6))-18#
后缀表达式:
21&42&2&-15&*6&++18&-
计算结果:
609
四、算符优先分析表生成模拟
【问题描述】
设计一个给定文法和对应的FIRSTVT和LASTVT集,能依据依据文法和FIRSTVT和LASTVT生成算符优先分析表。
【基本要求】
动态模拟算法的基本功能是:
(1)输入一个给定文法,及FIRSTVT和LASTVT集;
(2)输出算符优先分析表生成算法;
(3)输出算法优先分析表构造过程的过程;
【测试数据】
输入文法:
E->TE’
E’->+TE’|ε
T->FT’
T’->*FT’|ε
F->(E)|i
五、算符优先分析过程模拟
【问题描述】
设计一个给定算符优先分析表,输入一个句子,能由依据算符优先分析表输出与句子对应的语法树。
能对语法树生成过程进行模拟。
【基本要求】
动态模拟算法的基本功能是:
(1)输入算符优先分析表和一个句子;
(2)输出算符优先分析总控程序
(3)输出依据句子构对应的语法树的过程;
【测试数据】
输入句子:
i*i+i
输入算符优先分析表
六、LR分析过程模拟
【问题描述】
构造LR
(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法
【基本要求】
动态模拟算法的基本功能是:
(1)输入LR分析表和一个句子;
(2)输出LR总控程序(参见p100——101页算法);
(3)输出依据句子构对应的语法树的过程;
【测试数据】
输入句子:
i*i+i
输入LR分析表
附录1档案材料封面
电子与信息工程学院
编译原理课程设计档案材料
课题名称:
指导教师:
专业班级:
小组成员:
(组长)
材料目录
序号
名称
数量
备注
1
编译原理课程设计指导书
1
教师完成
2
编译原理课程设计报告
1
学生完成
3
编译原理课程设计评分表
1
指导教师完成
4
编译原理课程设计源代码
1
任课教师保管
2006年04月
附录2报告格式
编译原理课程设计报告
课题名称:
指导教师:
专业班级:
小组成员:
(组长)
完成日期:
年月日
封面
(空2行)
目录(4号黑体,居中)
1问题的提出(作为正文第1章,小4号宋体,行距18磅,下同)…………1
2××××××(正文第2章)……………………………………………………Y
2.1××××××(正文第2章第1条)………………………………………Y
2.2××××××(正文第2章第2条)………………………………………Y
2.X××××××(正文第2章第X条)…………………………………………Y
3×××××(正文第3章)………………………………………………Y
………………………………………(略)
X×××××(正文第X章)………………………………………………………Y
结论…………………………………………………………………………………Y
致谢…………………………………………………………………………………Y
参考文献………………………………………………………………………………Y
附录A××××(必要时)………………………………………………………Y
附录B××××(必要时)………………………………………………………Y
图1×××××(必要时)…………………………………………………………Y
图2×××××(必要时)…………………………………………………………Y
表1×××××(必要时)…………………………………………………………Y
表2×××××(必要时)…………………………………………………………Y
注:
1.目次中的内容一般列出“章”、“条”二级标题即可;
2.X、Y表示具体的阿拉伯数字;
正文部分:
1问题的提出(可作为正文第1章标题,用小3号黑体,加粗,并留出上下间距为:
段前0.5行,段后0.5行,这些要删)
×××××××××(小4号宋体,1.5倍行距)×××××××××××××××××××××………
1.1××××××(作为正文2级标题,用4号黑体,加粗)
×××××××××(小4号宋体)××××××…………
1.1.1××××(作为正文3级标题,用小4号黑体,不加粗)
×××××××××(小4号宋体)×××××××××××××××××××××××××××………
2×××××××(作为正文第2章标题,用小3号黑体,加粗,并留出上下间距为:
段前0.5行,段后0.5行)
×××××××××(小4号宋体)×××××××××××××××××××××××××××××××××××………
注:
1.正文中表格与插图的字体一律用5号宋体;
2.正文各页的格式请以此页为标准复制,页眉中的页码用阿拉伯数字表示(本文档的页码已设置成自动格式);
3.为保证打印效果,学生在打印前,请将全文字体的颜色统一设置成黑色。
(空2行)
结论(小3号黑体,居中)
×××××××××(小4号宋体,1.5倍行距)×××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××…………
(空2行)
参考文献(小3号黑体,居中)
1
×××××××(小4号宋体,行距18磅)×××××
2××××××××××××××××××××××××××××××××××××××××××
3××××××××××××××××××××××
…………
例如:
1胡曰利,吴晓芙.林木生长与养分动态模型研究V杉木林曲线[1].中南林学院学报,1999,19(4):
1-7
2曾思齐,欧阳君祥.马尾松低质低效次生林分类技术研究.[J].中南林学院学报,2002,22
(2):
12-16
3华罗庚,王元.论一致分布与近似分析.中国科学,1973(4):
339~357
4赵杰,李涛,朱慧.SQLServer数据库管理、设计与实现教程.北京:
清华大学出版社,2004.03
5BorkoH,BernierCL.Indexingconceptsandmethods.NewYork:
AcademicPr,1978
评分表:
课题名称
指导教师
评语
成绩评定
学生姓名
成绩
日期
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课程设计 指导书
![提示](https://static.bdocx.com/images/bang_tan.gif)