黑龙江大学《编译原理》课程设计读书工程报告.docx

上传人:rrsccc 文档编号:9338771 上传时间:2021-02-20 格式:DOCX 页数:11 大小:290.87KB
返回 下载 相关 举报
黑龙江大学《编译原理》课程设计读书工程报告.docx_第1页
第1页 / 共11页
黑龙江大学《编译原理》课程设计读书工程报告.docx_第2页
第2页 / 共11页
黑龙江大学《编译原理》课程设计读书工程报告.docx_第3页
第3页 / 共11页
黑龙江大学《编译原理》课程设计读书工程报告.docx_第4页
第4页 / 共11页
黑龙江大学《编译原理》课程设计读书工程报告.docx_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《黑龙江大学《编译原理》课程设计读书工程报告.docx》由会员分享,可在线阅读,更多相关《黑龙江大学《编译原理》课程设计读书工程报告.docx(11页珍藏版)》请在三一文库上搜索。

1、黑龙江大学“编译原理课程设计”读书报告学院计算机科学技术学院年级2013级专业计算机科学与技术学号姓名报告日期2015.6.30成绩黑龙江大学计算机科学技术学院黑龙江大学软件学院11一、开发环境简介二、基本理论阐述、当前理论或实践应用现状三、小型编译器系统架构四、小型编译器主要功能模块与实现(1)功能介绍(2)相关理论(3)算法描述(4)程序流程图(5)测试用例与实验结果 五、读书工程心得总结六、参考文献一、开发环境简介 开发平台:Microsoft visual C+ 6.0.开发环境:是指在基本硬件和数字软件的基础上,为支持系统软件和应用软件的工程化开发和维护儿使用的一组软件,简称SDE。

2、它有软件工具和环境继承机制构成,前者用以支持软件开发的相关过程、活动和人物,后者为工具集成和软件的开发、维护及管理提供统一的支持。1.支持开发完备模型 2.可视化 3.灵活控制二、基本理论阐述、当前理论或实践应用现状 编译原理理论和实践并重,叙述严谨、简明,富有启发性,且内容深入浅出,便于自学。编译原理不仅可以作为高等院校相关专业的教材,也可以作为计算机专业人员的参考用书。 编译器的构造工具是根据用户输入的语言的文法,编译器的构造工具可以生成程序来处理以用户输入的文法书写的文本。随着计算机应用范围的扩大,在软件自动生成,文档处理,特定专业的语言等领域,编译器的构造工具这一技术显得越来越重要.

3、在分析语法成分时比较方便直观,更便于操作。运行程序的同时不断修正改进程序,直至的到最优源程序。 三、小型编译器系统架构它是一个编译器的架构.通俗的来说,它实现了一个库,在这个库上,可以很容易的实现不同的编译相关的程序,当然,编译器自然是其中最重要的一个. 当然其他像编译时间的代码分析也是很容易实现的。构造识别符号串的自动机、词法分析程序的构造、语法分析程序的构造、中间语言的生成程序、编译程序的代码生成。四、小型编译器主要功能模块与实现1、词法分析(1)功能介绍 词法分析是计算机科学中将字符序列转换为单词序列的过程。进行词法分析的程序或者函数叫作词法分析器,也叫扫描器。词法分析器一般以函数的形式

4、存在,供语法分析器调用。词法分析阶段是编译过程的第一个阶段,是编译的基础。这个阶段的任务是从左到右一个字符一个字符地读入源程序,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号)。词法分析程序实现这个任务。词法分析程序可以使用Lex等工具自动生成。(2)相关理论 从源程序中依次读入字符并解析。与关键字,运算符,界符,结束符等进行比较,得出其中的关键字,运算符等并存入数组中。(3)算法描述 写入词法程序在F盘中,判断是否是标示符,保留字,运算符,数字。如果是关键字则直接把信息存入四元组,如果不是则是标示符,把相关信息存入四元组,如果是数字则跳转到数字拼接函数,拼接结束后

5、把信息存入四元组,如果是运算符,界符则直接把信息存入四元组, 最后把标示符,和常数信息写入标示符表,和常数表的相关文件。(4)程序流程图(5)测试用例与实验结果2、语法分析(1)功能介绍 语法分析是根据某种给定的形式文法对由单词序列(如英语单词序列)构成的输入文本进行分析并确定其语法结构的一种过程。(2)相关理论语法分析是编译过程的核心部分,它的任务是在词法分析识别出单词符号串的基础上,分析并判断程序的语法结构是否符合语法规则。 (3)算法描述输入文法规则,对文法进行转换,生成每个非终结符的FIRSTVT和LASTVT,生成算符优先分析表,再输入文法符号,生成移进规约步骤。 (4)程序流程图(

6、5)测试用例与实验结果3.中间语言生成(1)功能介绍1改写输入算法,编制将表达式翻译成四元式的程序。2对输入的任意表达式能分别输出其逆波兰式及四元式。3 生成汇编代码。(2)相关理论编译器就是将“高级语言”翻译为“机器语言(低级语言)”的程序。编译器分析的对象是前端生成并传递过来的中间代码,现代的优化型编译器(optimizing compiler)常常用好几种层次的中间代码来表示程序,高层的中间代码(high level IR)接近输入的源代码的格式,与输入语言相关(language dependent),包含更多的全局性的信息,和源代码的结构;中层的中间代码(middle level IR

7、)与输入语言无关,低层的中间代码(Low level IR)与机器语言类似。 不同的分析,优化发生在最适合的那一层中间代码上。(3)算法描述 利用数组把文件中表达式存入str字符串中,在进行(),+,等算法分析,得出四元式,写成汇编形式。(4)程序流程图(5)测试用例与实验结果五、读书工程心得总结编译原理这门课程不仅仅在于其本身的理论价值,更在于为我们解决问题提供的思维方式和方法。从词法到语法,问题不断被解决的同时,又有一个个新的问题提了出来,通过编译原理课程的实验课和大作业的学习,我的编程能力和对相关课程的理解能力都有了很大的提高,对c语言数据结构的相关知识也有课更深刻的理解,运用的更加熟练

8、。将生涩的定义和概念转换成具体的实验,增强了对课本基础知识的理解与掌握,更重要的是锻炼了编程思想,我想只对于我们这些缺乏经验的学生来说是弥足珍贵的。可编程过程中还是暴漏出存在的一些问题,如经常弄不清应该做什么,读不懂题意,有时做到一半时发现自己曲解题意,于是还得重头再来;有时程序编译链接时总出现意想不到的错误或者警告,这主要是因为自己没有掌握好编程语言;更痛苦的是在知道需求,知道做什么的时候仍然没有思路,这主要是因为自己缺乏编程经验,编程经验还需要自己慢慢积累。由于个人经验与个人能力的束缚,自己的程序存在着很多不足与缺陷,如程序结构不合理,程序功能简单,程序异常处理不全面。,同时完成编译试验后

9、,更是感到了一种“自动计算”的快乐。”然而我明白自己虽然对编译有了一定的了解,我懂得了文法的分析,学会了构造确定和非确定有限自动机,学会了LL(1)文法和LR(0)文法等,但是并没有完全掌握,对于这些知识点的实质性和其他方面,更是认识不深。作为一名学习计算机科学与技术的学生,我明白编译原理是软件工程的基础,课程的结束并不意味着学习的结束,只有通过以后的学习,才能更深入地了解编译原理。六、参考文献1 秦明,李波. 计算机操作系统实验与实践:基于Windows与LinuxM. 中国电力出版社,2004,4:第13-15页,第36-54页2 张素琴,吕映芝,姜维杜,戴桂兰.编译原理(第二版).北京:清华大学出版社,2004

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1