欢迎来到天天文库
浏览记录
ID:49691079
大小:67.00 KB
页数:4页
时间:2020-03-02
《软件学院本科编译技术课程设计指导书.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《编译技术》课程设计指导书一、目的、意义本课程设计是为编译技术课程配套设置的,其目的是使学生能够熟练应用和掌握编译技术的基本理论和方法以及使用C/C++高级程序设计语言设计一个较为完整的编译器。通过设计、编制、调试一个编译器,加深对编译技术的设计方法和技术的分析理解,培养动手实践能力,提高解决实际问题的综合素质。二、课程设计要求1.每个学生需要完成从词法分析――>语法分析――>语法制导翻译法(属性文法)完成语义分析――>生成四元式中间代码或X86平台上的目标代码,编制出可运行的编译器。要求:l画出识别上述语言单词的状态转换图l用
2、C/C++语言编写词法分析程序(应考虑能被语法分析程序调用)l预处理,去除注释、多余空格、Tab字符、回车换行符等l设计实现语法分析程序(调用上述词法程序分析单词)l设计构造属性文法及中间代码序列结构l采用语法制导翻译法,完成语义分析程序设计,生成四元式中间代码l或将生成的四元式中间代码转换成X86平台上的目标代码l上机测试并通过所设计实现的编译器2.根据编制调试进展情况对编译器编码方案进行调整;对于调整的具体计划必须记录。最后在课程设计报告适当位置反映出来。3.课程报告具体要求见:编译技术课程设计具体要求和格式规范三、课程设计
3、内容及安排课设编译程序应由四个部分组成。词法分析负责生成单词,语法分析负责语法检查,语义分析及中间代码生成负责生成中间代码。必要时需设计符号表等辅助完成相应功能。具体说,课程设计主要内容,要求学生用C/C++语言对下述文法和单词表定义的语言设计编制一个编译器。1、单词符号及种别表单词符号种别编码单词值main1 int2 float3 double4 char5 if6 else7 do8 while9 l(l
4、d)*10内部字符串(+
5、-
6、ε)dd*(.dd*
7、ε)(e(+
8、-
9、ε)dd*
10、ε)20二进制数值表示=21 +22
11、-23 *24 /25 (26 )27 {28 }29 ,30 ;31 >32 >=33 <34 <=35 ==36 !=37#02、语法结构定义<程序>::=main()<语句块><语句块>::=‘{‘<语句串>’}’<语句串>::=<语句>{;<语句>};<语句>::=<赋值语句>
12、<条件语句>
13、<循环语句><赋值语句>::=ID=<表达式><条件语句>::=if<条件><语句块>[else<语句块>]<循环语句>::=do<语句块>while<条件><条件>::=<表达式><关系运算符><表达式><表达式>::=<项>{+
14、<项>
15、-<项>}<项>::=<因子>{*<因子>
16、/<因子>}<因子>::=ID
17、num
18、(<表达式>)num::=(+
19、-
20、ε)数字数字*(.数字数字*
21、ε)(e(+
22、-
23、ε)数字数字*
24、ε)ID::=字母(字母
25、数字)*字母::=a
26、b
27、c…
28、z
29、A
30、B
31、C…
32、Z数字::=0
33、1
34、2…
35、9<关系运算符>::=<
36、<=
37、>
38、>=
39、==
40、!=3、具体安排先应对课程实验课的内容进行总结,在此基础上,对语义分析及中间代码生成,考虑语法和语义上的错误处理,然后生成相应的中间代码序列,并输出结果。重点须设计编写,if-then语句语义
41、子程序、if-then-else语句语义子程序、while语句语义子程序及复合语句语义子程序。课设主要精力须放在语义分析及中间代码生成序列,并输出结果。四、学生课程设计前预习的内容1.正规文法或正规式,NFA和DFA,DFA的化简;2.根据最小化DFA编写词法分析程序;3.递归下降分析法,预测分析法和预测分析表构造或SLR(1)分析法;4.语法制导翻译:算术和布尔表达式的翻译,赋值语句、控制语句和循环语句的翻译;5.四元式和目标代码的输出方法;6.C/C++相关知识。五、课程设计参考资料1.编译原理(第2版)(高等学校计算机规划
42、教材)教材后面附录C;2.参考SantanuChattopadhyay著徐骁栋、王海洋译.编译器设计相关部分。六、验收要求1.每个学生须对自己设计编码的编译器做简要说明,特别陈述其亮点部分;2.老师在测试数据集中随机选出8个测试语句段,作为学生编译器的输入,检查能否对其做正确的翻译,其间根据其结果的不同情况提问,学生应能适当或正确回答。七、报告要求1.上交文件:a)报告文件电子档、程序源代码和可执行文件。2.报告结构、内容及要求a)封面;b)目录;c)总体设计思想d)详细算法设计(包括分析表设计)e)流程框图f)函数相关说明g)
43、输入与输出(包括出错处理)h)程序运行结果(屏幕截图)i)编译器使用说明j)心得与体会
此文档下载收益归作者所有