编译原理课程设计_第1页
编译原理课程设计_第2页
编译原理课程设计_第3页
编译原理课程设计_第4页
编译原理课程设计_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《编译原理课程设计》

指导书太原科技大学计算机科学与技术2020.5前言《编译原理》是计算机科学与技术专业最为重要的一门专业基础课程,内容庞大,涉及面广,知识点多,由于该课程教、学难度都非常大,往往费了大量时间达不到预期教学效果。俗语说:学习的最好方法是实践。本课程设计正是基于此目标,力求为学生提供一个理论联系实际的机会,通过布置一定难度的课题,要求学生独立完成。通过实践,建立系统设计的整体思想,锻炼编写程序、调试程序的能力,学习文档编写规范,培养独立学习、吸取他人经验、探索前言知识的习惯,树立团队协作精神,同时,课程设计可以充分弥补课堂教学及普通实验中知识深度与广度有限的缺陷,更好的帮助学生从全局角度把握课程体系。本课程设计指导书全面把握教学大纲及教材精神的基础上,共设计了9个题目,不是用一个独立的例子涵盖这些知识点,而是按层次逐步深入,使得学生理解编译过程如何相互配合,接口如何设计。通过本课程设计,最终帮学生系统掌握该门课程的主要内容,提高学生动手能力,完成整个学习过程。一、课程设计题目与要求根据课程设计题目规模,要求每个题目4-6人一组。分组规则如下:按照学号顺序每4-6人编为一组,小组成员相对固定,确有特殊原因需要调整的,可以与其它小组成员相互协商对换,提出申请,经指导教师同意后确定。题目由各组选派代表抽签确定,设计题目不得更换。二、题目选题一:算术表达式编译器任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的算术运算表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。算术表达式的文法为:EfE+TIE—TITTfT*FIT/FIFFfiI(E)单词的文法为:EfDIEDDf0I1I2I3I4I5I6I7I8I9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成算术表达式中类型转换的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题二:逻辑表达式编译器任务:编写一个完整的编译程序,包括语法分析器、语义分析过程以及实现对简单程序设计语言中的逻辑运算表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。算术表达式的文法为:STSvTITTTTaFIFFT「FIfalseItrueI(S)功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;3)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题三:关系表达式编译器任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的关系运算表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。关系表达式的文法为:STS>TITIS>TTTT<FIFIT<FFTiI(S)单词的文法为:2)2)整体非法数据码,对中间代码优化后完成目标代码的生成。码,对中间代码优化后完成目标代码的生成。EfDIEDDf0I1I2I3I4I5I6I7I8I9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题四:简单赋值语句1编译器(+、*、())任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单赋值语句表达式进行编译,生成中间代简单赋值语句表达式的文法为:S'fi:=SSfS+TITTfT*F|FFfi|(S)单词的文法为:EfA|ACCfA|B|AC|BCAfa|b|c|LzBf0|1|2|3|4|5|6|7|8|9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:1)全部合法数据8)8)完成目标代码的生成。3)局部非法数据选题五:简单赋值语句2编译器(-、/、())任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单赋值语句表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。简单赋值语句表达式的文法为:S'fi:=SSfS—TITTfT/F|FFfi|(S)单词的文法为:EfA|ACCfA|B|AC|BCAfa|b|c|LzBf0|1|2|3|4|5|6|7|8|9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题六:简单条件语句1编译器(and、+)任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单条件语句表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。简单条件语句表达式的文法为:S'fifAthenSSfi:=BAfBandA|BBf(B+F)1FFfi单词的文法为:EfA|ACCfA|B|AC|BCAfa|b|c|LzBf0|1|2|3|4|5|6|7|8|9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题七:简单条件语句2编译器(or、-)任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单条件语句表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。简单条件语句表达式的文法为:S'fifAthenSSfi:=BAfBorA|BBf(B—F)1FFfi单词的文法为:ETAIACCTAIBIACIBCATa|b|c|LzBT0I1I2I3I4I5I6I7I8I9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题八:简单条件语句3编译器(==、<、+)任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单条件语句表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。简单条件语句表达式的文法为:S'fifAthensSfi:=BAfB==BIB<BIBBfB+FIFFfiI(B)单词的文法为:EfAIACCfAIBIACIBCAfaIbIcILzBf0I1I2I3I4I5I6I7I8I9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据选题九:简单条件语句4编译器(>、!=、+)任务:编写一个完整的编译程序,包括词法分析器、语法分析器、语义分析过程以及实现对简单程序设计语言中的简单条件语句表达式进行编译,生成中间代码,对中间代码优化后完成目标代码的生成。简单条件语句表达式的文法为:S'fifAthenSSfi:=BAfB!=BIB>BIBBfB+FIFFfiI(B)单词的文法为:EfAIACCfAIBIACIBCAfaIbIcILzBf0I1I2I3I4I5I6I7I8I9功能要求:可以输入要编译的文件名,从给定文件中读取编译源程序;能进行功能选择词法分析、语法分析、中间代码生成;词法分析主要完成对单词的识别,并输出单词的二元式序列;4)采用自底向上的LR分析方法进行语法分析;语义分析阶段主要完成逻辑表达式结构的判断;中间代码通过四元式形式表示;完成中间代码优化(基本块优化);完成目标代码的生成。输出形式:有中文提示界面要求:有合理的提示,每个功能可以设立菜单,根据提示,完成相应的功能。存储结构:根据自己的功能要求,在提交的资料中指明用到的存储结构。测试数据:全部合法数据整体非法数据局部非法数据三、课程设计内容与要求课程设计报告主要内容应包括:需求分析根据题目要求,充分分析和理解问题,描述系统的功能要求,明确问题要求做什么?具体内容为:)问题描述)基本要求输入的形式和输入的范围输出的形式程序所能达到的功能概要设计说明用到的所有数据类型的定义及存储结构,主程序的流程及各程序模块之间的调用关系。具体有:数据结构程序模块各模块之间的调用关系及算法设计详细设计写出主要操作的实现算法测试与分析进行系统测试,输出测试结果。测试数据应全面、完整,并对测试结果进行分析总结课程设计的收获、遇到的问题及解决手段、程序调试能力的思考、设计仍存在的问题,对《编译原理》课程的认识等。、课程设计报告的格式要求一律单面打印,简易装订五、课程设计时间及地点周次日期设计内容设计教室15周周一选择题目,熟悉要求周二系统分析、规划周三系统详细设计周四模块连接、调试周五验收系统,撰写报告六、课程设计结果提交1、课程设计提交以下结果:1)课程设计报告书纸质文档;2)程序源代码及课程设计报告电子文档3)每人建立一个文件夹,文件夹格式:学号+姓名,由学委统一交给指导老师2、提交时间与地点:15周周五下午2:00-7:003、凡发现雷同设计结果及报告,不论抄袭者与被抄袭者一律按不集合处理。附:课程设计报告书标准格式TAIYUANUNIVERSITYOFSCIENCEANDTECHNOLOGY计算机学院计算机科学与技术专业《编译原理课程设计》报告XXX系统(/学年第学期)学生姓名:学生班级:学生学号:指导教师:.

计算机科学与技术学院课程设计任务书课程设计名称《编译原理》课程设计课程设计题目学生姓名专业班级学号课程设计任务内容指导教师:时间:年月日

计算机科学与技术学院课程设计成绩评审表课程设计名称《编译原理》课程设计课程设计题目学生姓名专业班级学号同组人指导教师设计成绩评价内容签字:时间:年月日《编译原理》课程设计报告编写格式说明报告内容封面任务书评审表目录正文内容参考文献附录:程序清单(带有较详细的注释)1、目录目录按三级标题写,目录必须与正文标题一致。目录为5号宋体,1.5倍行距。“目录”二字三号黑体加粗、居中。例:目录第一章系统概述2、正文论文正文部分包括:正文主体(没有引言,第一章一般为系统概述)、结束语结束语作为单独一章排列,但总标题前不加“第X章”字样;结束语主要是对所做工作的总结及系统存在的问题与展望,不要写过多的感想。3、参考文献文献是期刊时,格式为:[序号]作者.文章题目.期刊名.年份,卷号(期号):页码例如:[1]马建刚,黄涛等.面向大规模分布式计算发部订阅系统核心技术.软件学报.2006,17(1):1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论