编译原理课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南华大学
计算机科学与技术学院
编译原理课程设计名:赋值语句,if语句,while循环语句词法,语法及语义分析,中间代码生成程序设计
专业:计算机科学与技术班级:计算机091 姓名:Dragon 学号: 20094440116 实验地点:8栋2-209 任课老师:刘星
完成日期:2012.5.14
《编译原理》课程设计指导书
一、课程设计教学的目的与要求
课程设计是对学生的一种全面综合训练,是与课堂听讲、自学和练习相辅相成的必不可少的一个教学环节。通常,设计题中的问题比平时的练习题要复杂,也更接近实际。编译原理这门课程安排的课程设计的目的是旨在要求学生进一步巩固课堂上所学的理论知识,深化理解和灵活掌握教学内容,选择合适的数据逻辑结构表示问题,然后编制算法和程序完成设计要求,从而进一步培养学生独立思考问题、分析问题、解决实际问题的动手能力。
要求学生在上机前应认真做好各种准备工作,熟悉机器的操作系统和语言的集成环境,独立完成算法编制和程序代码的编写。
设计时间:1周。
开发工具:
(1)DOS环境下使用Turbo C;
(2)Windows环境下使用Visual C++ 。
(3)其它熟悉语言。
二、课程设计的内容:
设计题一:算术表达式的语法分析及语义分析程序设计。
1.目的
通过设计、编制、调试一个算术表达式的语法及语义分析程序,加深对语法及语义
分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。
2.设计内容及要求:
算术表达式的文法:
〈无符号整数〉∷=〈数字〉{〈数字〉}
〈标志符〉∷=〈字母〉{〈字母〉|〈数字〉}
〈表达式〉∷= [+|-]〈项〉{〈加法运算符〉〈项〉}
〈项〉∷=〈因子〉{〈乘法运算符〉〈因子〉}
〈因子〉∷=〈标志符〉|〈无符号整数〉|‘(’〈表达式〉‘)’
〈加法运算符〉∷=+|-
〈乘法运算符〉∷=*|/
(1)可以选择递归下降法、LL(1)、算符优先分析法、LR法完成以上任务,中间代码选用逆波兰式或四元式。
(2)写出算术表达式的符合分析方法要求的文法,给出分析方法的思想,完成分析程序设计。
(3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
设计题二:布尔表达式的语法分析及语义分析程序设计。
1.目的
通过设计、编制、调试一个布尔表达式的语法及语义分析程序,加深对语法及语义
分析原理的理解,并实现词法分析程序对单词序列的词法检查和分析。
2.设计内容及要求
(1)可以选择递归下降法、LL(1)、算符优先分析法、LR法完成以上任务,中
间代码选用逆波兰式或四元式。
(2)如1题写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序设计。
(3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
设计题三:条件语句的语法分析及语义分析程序设计。
1.目的
通过设计、编制、调试一个语法及语义分析程序,加深对语法及语义分析原理的理
解。
2.设计内容及要求
IF 〈布尔表达式〉 THEN 〈赋值语句〉 ELSE 〈赋值语句〉其中
(1)可以选择递归下降法、LL(1)、算符优先分析法、LR法完成以上任务,中间代码选用四元式。
(2)如1题写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序
设计。
(3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
设计题四:循环语句的语法分析及语义分析程序设计。
1.目的
通过设计、编制、调试一个语法及语义分析程序,加深对语法及语义分析原理的理
解。
2.设计内容及要求
WHILE〈布尔表达式〉DO〈赋值语句〉
其中
(1)可以选择递归下降法、LL(1)、算符优先分析法、LR法完成以上任务,中间代码选用四元式。
(2)如1题写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序
设计。
(3)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
设计题五:自选一种常见高级语言为背景,对其进行简化.例如只包括整型常数和其四则运算以及相应的赋值语句,转移语句,条件语句和最简单的输入输出语句等.编制一个包括必要处理阶段(词法分析、语法分析、语义分析、代码生成)简化又完整的编译程序.。
1.目的
对编译的完整过程有一个感性认识,对各个环节的任务,处理方法有一定的熟悉。
2.设计内容及要求
(1)如1题写出符合分析方法要求的文法,给出分析方法的思想,完成分析程序
设计。
(2)编制好分析程序后,设计若干用例,上机测试并通过所设计的分析程序。
三、课程特色
《编译原理》课程是理论性较强的课程。其特点是概念多、内容抽象。尤其是文法、形式语言及自动机的概念是计算机专业的理论学习和研究的基础。编译原理与方法对于深刻理
解程序设计语言、深入了解程序在计算机中的运行机制、掌握程序设计语言的翻译方法起到不可替代的作用。同时《编译原理》课程也是实践性很强的课程,要求学生在基本掌握了编译理论和技术的基础上,综合应用先修课程及本课程的知识,完成课程的实验和课程设计。
四、课程设计步骤与方法
第一步需要同学给出语法分析方法及中间代码形式的描述及文法和属性文法的描述;或者词法分析方法及符号表和TOKEN代码的设计。
第二步需要同学进行简要的分析与概要设计;
第三步需要同学按照学过的语法分析方法和语法制导翻译方法进行详细的算法设计,然后进行实际编程。
五、课程设计说明书与图纸
课程设计报告书的内容应包括:
1.设计题目、班级、学号、姓名、完成日期;
2.给出语法分析方法及中间代码形式的描述、文法和属性文法的设计;或者词法
分析方法及符号表和TOKEN代码的设计。
3.简要的分析与概要设计;
4.详细的算法描述;
5.源程序清单;
6.给出软件的测试方法和测试结果;
7.设计的评价、收获与体会。
六、课程设计答辩
课程设计完成后由教师上机现场检查并由学生回答老师的提问
七、课程设计进度表
序号内容所用时间
1天
1 给出语法分析方法及中间代码形式的描述、文
法和属性文法的设计;或者词法分析方法及符
号表和TOKEN代码的设计。
2 简要的分析与概要设计 1天
3 算法设计与程序设计3天
4 撰写课程设计报告书1天
合计
以上布置的任务是基本设计任务,希望同学们自己加大难度,取得更好成绩;同时要求同学们不得出现抄袭现象。
上交内容:
⏹1、以学号命名的文件夹,包括程序源代码,一组较完备的测试
数据(存在一个文本文件中);
⏹2、课程设计报告(纸质版和电子版都要交,电子版放上面那个
文件夹下):包括选题说明,简单的软件需求分析说明,软件设计说明,