编译技术课程设计指南(信息2012).doc_第1页
编译技术课程设计指南(信息2012).doc_第2页
编译技术课程设计指南(信息2012).doc_第3页
编译技术课程设计指南(信息2012).doc_第4页
编译技术课程设计指南(信息2012).doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

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

文档简介

课程设计指导书编 译 技 术(分册)唐仕喜 盐城师范学院信息科学与技术学院2012.9编译技术课程设计一、概 述(一)课程设计的性质、目的与作用编译技术是计算机及其相关专业一门重要的核心课程,是学习计算机软件的重要课程。从实际工作需要来看,仅靠教学计划安排的课内实验时间是不够的,为了帮助广大同学对编译过程有更好的掌握,提高运用编译技术和有关形式语言理论和方法解决实际问题的能力,需要对编译过程及涉及到的编译技术进行系统的实践训练,故编写编译技术课程设计这部分内容。课内的实验是侧重于对某一方面知识的学习,在解决实际问题时,可能涉及并运用多个方面的知识,具有较强的综合性,这就需要进行一些综合性的设计练习,来提高分析和解决实际应用问题的能力。编译技术课程设计的目的是进一步培养学生编译器设计的思想,加深对编译技术和应用程序的理解,针对编译过程的重点和难点内容进行编程,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。为了使学生从课程设计中尽可能取得比较大的收获,课程组对课程设计题目精心设计,学生从这些题目中选择,完成一个题目的部分内容。包括:1.词法分析与设计类(共2个);2.语法分析与设计类(共5个);3.中间代码生成分析与设计类(共1个)。(二)课程设计的要求在课程设计时,对要解决的问题,要注意以下几个方面:1.正确:设计的算法要严谨、正确,能正确解决实际问题,符合指定的要求;2.高效:有效的建立数学模型,合理的选择数据结构,编写高效的程序代码;3.清晰:算法和程序的结构要清晰,算法要用流程图来表示,程序代码要加注解;4.设计报告:每一个问题解决后,要按统一的纸张及格式,完整、整洁地写出设计报告,打印程序清单,拷贝所做设计的电子版文档和程序。(三)设计报告格式 在将综合设计作为教学的一个环节时,设计报告一般包括以下几个方面的内容:1.问题描述题目要解决的问题是什么2.算法设计与功能模块解决问题的基本方法说明,包括主要算法思想,算法的流程图。程序中主要函数或过程的功能说明。 3.程序输入与结果输出。4.总结 遇到的主要问题是如何解决的、对设计和编码的回顾讨论和分析、进一步改进设想、经验和体会等。5.附录源程序清单(四)考核评估通过程序实现、总结报告和学习态度综合考评,并结合学生的动手能力,独立分析解决问题的能力和创新精神。成绩分优、良、中、及格和不及格五等。考核标准包括:1.程序实现的正确性,包括程序整体结构是否合理、编程风格是否规范等。(25%)2.程序功能的完善程度,包括功能的基本实现、基本完善、完全实现。 (25%)3.学生的工作态度、独立工作能力。 (25%) 4.课程设计报告。 (25%) 考核标准方式:面试,根据课程设计报告和所做模块提35个问题,当场给分。三、编译技术课程设计课题表【课题 1】设计一个词法分析器。(2人)【基本要求】 词法分析器基本功能是:(1) 输入源程序:输入PASCAL源程序; (2) 输出单词,输出形式为:(序号,单词,对应源程序行号,对应源程序列号);(3) 输出出错信息,输出形式为:(出错行号,出错列号,出错信息);(4) 输出符号表,输出形式为:(单词种别码,单词符号);【测试数据】(1)输入源程序:program example1;vara,b,c:integer;x:char;beginif (a+c*3 b) and (b3) then c:=3;x:=2+(3*a)-b*c*8;if (2+3 a) and (b3) and (ac) then c:=3;for x:= 1+2 to 3 do b:=100;while ab do c:=5;for x:= 1+d to 3 do b:=15;while tb do c:=5;repeata:=10; until ab;end.【课题 2】设计一个由正则表达式生成有限自动机的算法动态模拟。(2人)【基本要求】 动态模拟算法的基本功能是:(1) 输入一个正则表达式;(2) 输出正则表达式转化为有限自动机的算法;(3) 输出有限自动机状态图生成过程;【测试数据】输入正规式:(a|b)*(aa|bb)(a|b)*【课题 3】设计一个对算术表达式求值的程序。(2人)【基本要求】 基本功能是:(1) 输入算术表达式;(2) 用递归下降分析法判别其中算术表达式的正确性;(3) 对其中正确的算术表达式求值;【测试数据】(1)输入:2+3*85*(8+2)【课题 4】设计一个由文法生成First集和Follow集的算法动态模拟。(3人)【基本要求】 动态模拟算法的基本功能是:(1) 输入一个文法G;(2) 输出由文法G构造First集的算法;(3) 输出每个非终极符的First集;(4) 输出由文法G构造Follow集的算法;(5) 输出每个非终极符的Follow集。【测试数据】输入文法:E-TEE-+TE|T-FTT-*FT|F-(E)|i【课题 5】设计一个给定LL(1)分析表,输入一个句子,能由依据LL(1)分析表判断该句子的合法性。(3人)【基本要求】 动态模拟算法的基本功能是:(1) 输入LL(1)分析表和一个句子;(2) 根据LL(1)分析表,判别该句子的合法性;【测试数据】输入句子:i*i+i输入LL(1)分析表(E)iFe e*FT eTFT FTTe e+TEETETEE#)(*+i【课题 6】设计一个给定LR分析表,输入一个句子,能由依据LR分析法判别句子的合法性。(3人)【基本要求】 动态模拟算法的基本功能是:(1) 输入LR分析表和一个句子;(2) 判别该句子的合法性;【测试数据】依据文法:E-E1E1-E1+T1|T1T1-TT-T*F|FF-(E)|i输入句子:i*i+i输入LR分析表r5r5r5r511r1r1S7r19r3r3r3r310S11S6810S4S57333FS4S4S4(r6r4r2)9r1S56r6r6r6528S54r4r4r43r2S7r22accS6121S50TE#*+iGOTOACTION状态【课题 7】设计一个给定简单优先关系矩阵(表),输入一个句子,能由依据文法符号优先关系判断句子的正确性。(2人)【基本要求】 动态模拟算法的基本功能是:(1) 输入优先关系矩阵(表)和一个句子;(2) 根据简单优先关系,判断句子的正确性;【测试数据】依据文法:E-E1E1-E1+T1|T1T1-TT-T*F|FF-(E)|i输入句子i*i输入优先关系矩阵(表)【课题 8】 设计一个中间代码编译器。(3人)【基本要求】 交互式面向对象的中间代码编译器基本功能是:(1) 输入源程序,输入一个PASCAL源程序;(2) 输出中间代码,输出形式为:(序号,对应源程序行号,对应源程序列号,操作符,操作数1,操作数2,结果变量);(3) 输出出错信息,输出形式为:(出错行号,出错列号,出错信息);(4) 输出符号表,输出形式为:(单词种别码,单词符号,单词类型,值,单词相对地址);【测试数据】输入源程序:program example1;vara,b,c:integer;x:char;beginx:=2+3* 8;c:=2for a:= 1 to 3 do b:=c+1;end.【课题 9】设计一个ASP(XML/JSP/PHP)邮件登录界面,在其中加入正则表达式,检测检验密码和邮件地址的格式的正确性。(2人)【基本要求】 邮件登录的基本功能是:(4) 设计一个ASP(XML/JSP/PHP)邮件登录界面;(5) 加入正则表达式,检测检验密码和邮件地址的格式的正确性;(6) 输入任意中、英文和字符,正确则可以登录到指定的邮箱中去,不正确则提示错的地方;【测试数据】邮箱: 密码:tsxlyhvb【课题 10】语法高亮转换软件。问题描述:在我们使用的集成化编译环境(IDE)中,C+语言的源代码通常使用高亮语法表示。(3人)例如: 但是如果我们将这段代码发布到网页中,它的高亮语法表示将消失,代码变为: / example.cpp #include #define pi 3.1415 using namespace std; int main() int n = 0; float a = 12.34; char ch = a; cout hello C+ ; for (int i = 0; i b) and (b3) then c:=3;x:=2+(3*a)-b*c*8;if (2+3 a) and (b3) and (ac) then c:=3;for x:= 1+2 to 3 do b:=100;while ab do c:=5;for x:= 1+d to 3 do b:=15;while tb do c:=5;repeata:=10; until ab;end.【课题 18】*Lex在Linux 或Unix 环境下,用Yacc语法分析器,设计一个给定LR分析表,输入一个句子,能由依据LR分析法判别句子的合法性。(4人)【基本要求】 动态模拟算法的基本功能是:(3) 输入LR分析表和一个句子;(4) 判别该句子的合法性;【测试数据】依据文法:E-E1E1-E1+T1|T1T1-TT-T*F|FF-(E)|i输入句子:i*i+i输入LR分析表r5r5r5r5r1r1S7r19r3r3r3r310S11S6810S4S57333FS4S4S4(r6r4r2)9r1S56r6r6r6528S54r4r4r43r2S7r22accS6121S50TE#*+iGOTOACTION状态 【课题 19】依据董振东的基于知网的义原语义计算原理,计算任意两网页之间的相似度。(4人)【基本要求】、 将网页进行预处理,得到处理好的文本;、 将处理好的文本进行分词,得到标注词;、 由义原语义计算原理,计算任意两网页之间的相似度。【课题 20】设计一个文法,用来确定中文的自然段的段落大意(中心

温馨提示

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

评论

0/150

提交评论