《编译原理》课程设计指导书一、课程设计的目的本次课程设计的时间为2 周,目的是通过实际的题目如:词法分析、语法分析、代码优化等, 使学生了解和掌握编译程序的工作原理,同时培养学生用相关的程序设计语言进行程序设计,实现编译的功能,从而提高学生的综合能力。二、设计名称: 小型语言编译器的设计/ 编译技术的计算机实现。三、设计要求本次课程设计有两种选择:合作完成与独立完成。若选择合作完成,则需自行组合 5 位学生成为一个小组,小组成员合作完成一个小型编译器(见设计内容题目一) 。若选择独立完成, 则从设计内容题目二的13 个题目中任选一个独立实现。这 13 个题目,都有一定的工作量,涵盖本课程内容和实际应用相关的主要技术。四、设计内容题目一:小型语言编译器的设计。1、 通过设计、编制、调试一个对于小型语言词法的词法分析程序,加深对词法分析原理的理解,并实现输出单词序列的词法检查和分析。(建议1 名学生完成)2、 设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1 名学生完成)3、 设计、编制、调试一个布尔表达式的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1 名学生完成)4、 设计、编制、调试一个条件语句的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1 名学生完成)5、 设计、编制、调试一个循环语句的语法及语义分析程序,加深对语法及语义分析原理的理解。(建议1 名学生完成)6、 将前 5 个要求得到的程序合并成一个小型语言的语法制导的三地址代码生成器。(5名学生共同完成)题目二:下列13 个题目任选 。选题说明: 可以从下列题目中任选一题,每个题目按难度设定不同的参考分数,上机成绩采用 100 分制。题目指定的参考分数仅适用于上机程序部分,实验报告成绩有自己的标准。1.文法的计算机表示设计要求:1.可以使用任何语言来完成,例如:Java、C、C++ 。2.文法中的空字符串统一使用@表示。3.包括各种可能出现的文法描述方法。a)使用定义描述文法b)只用产生式描述文法i.用大写字母和小写字母分别表示非终结符和终结符ii.用带尖括号的和不带尖括号分别表示非终结符和终结符iii.产生式可以使用->或::= 表示的方法4.对给定文法判断是乔姆斯基文法中的哪一种文法5.文法要求以文本文件方式输入,不同的文法只要修改文件即可。不允许使用键盘输入文法。6.将文法中不可到达和不可终...