编译原理课程设计报告

编译原理课程设计报告

ID:8930349

大小:838.08 KB

页数:138页

时间:2018-04-12

编译原理课程设计报告_第1页
编译原理课程设计报告_第2页
编译原理课程设计报告_第3页
编译原理课程设计报告_第4页
编译原理课程设计报告_第5页
资源描述:

《编译原理课程设计报告》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程设计报告设计题目:一个简单文法的编译器前端的设计与实现班级:计算机1308班组长学号:20134019组长姓名:刘鑫伟指导教师:张俐设计时间:2015年12月138设计分工组长学号及姓名:20134019刘鑫伟分工:符号表,搭建框架。组员1学号及姓名:20134010高八一分工:词法分析,Token。组员2学号及姓名:20134026肖辉分工:文法,语法分析。组员3学号及姓名:20134029袁宵分工:语义分析及四元式生成。138摘要编译原理是计算机科学与技术专业一门重要的专业课,它具有很强的理论性与实践性,目的是系统地向学生介绍编译系统的结构、工作原理以及编译程序各组成部分的设计原理和

2、实现技术,在计算机本科教学中占有十分重要的地位。计算机语言之所以能由单一的机器语言发展到现今的数千种高级语言,就是因为有了编译技术。编译技术是计算机科学中发展得最迅速、最成熟的一个分支,它集中体现了计算机发展的成果与精华。本课设是词法分析、语法分析、语义分析的综合,外加上扩展任务中间代码的优化和目标代码的生成,主要是锻炼学生的逻辑思维能力,进一步理解编译原理的方法和步骤。我们编译课程设计做的是一个简单的编译器的前端。我们用了递归下降子程序法实现这个编译器的前端。我们参考了了老师提供的简单文法,然后完整的程序生成文法,还有四元式生成文法。在此基础上我们还做了处理赋值语句、if-else语句、

3、while语句的语法分析和四元式的生成,这样我们就设计完了四元式的生成。然后,我们又设计了符号表。其中的特色点有:语法分析阶段能够检测出错误,并且能指出错误在哪一行,具体为什么错误;表示式的四元式采用了逆波兰式的方法;同时像if-while,我们的编译器能判断其中的boolean表达式的真值,从而能采用正确的逻辑得出正确的结果;活动记录表阶段能够指出具体采取了什么动作,具体代码。关键词:编译原理,前端,递归下降子程序法,四元式,符号表138目录摘要I1概述62课程设计任务及要求82.1设计任务82.2设计要求83算法与数据结构93.1算法的总体思想(流程)93.2词法扫描模块93.2.1功

4、能93.2.2数据结构93.2.3算法113.3语法分析模块123.3.1功能123.3.2数据结构123.3.3算法133.3.4算法流程图143.4语义分析四元式分析模块203.3.1功能203.3.2数据结构203.3.3算法213.5符号表分析模块293.3.1功能293.3.2数据结构293.3.3算法321384.程序设计与实现334.1程序流程图334.2程序说明334.3实验结果1325.结论1346.参考文献。1357.收获、体会和建议。1351381.概述编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。内容包括语言和文法、词法分析、语法分

5、析、语法制导翻译、中间代码生成、存储管理、代码优化和目标代码生成。 编译原理是计算机专业设置的一门重要的专业课程。虽然只有少数人从事编译方面的工作,但是这门课在理论、技术、方法上都对学生提供了系统而有效的训练,有利于提高软件人员的素质和能力。由于时间和同学们的水平有限,故本实验只涉及到了词法分析,语法分析,及中间代码的四元式生成和符号表。具体概述介如下:1.词法分析:在这个阶段编译器实际阅读源程序(通常以分析程序字符流的形式表示)。扫描程序执行词法分析注释树符号表 :它将字符序列收集到称作记号错误处的有意义单元中,记号同自然语言,如英源代码理器语中的字词相似。因此可以认为扫描程序执行与优化

6、程序拼写相似的任务。本实验的词法分析程序用于生成Token序列。2.语法分析:该程序从扫描程序中获取记号形式的源代码,并完成定义程序结构的语法分析,这与自然语言中句子的语法分析类似。语法分析定义了程序的结构元素及其关系。其任务是识别和处理比单词更大的语法单位。本实验用于指出程序设计语言中的表达式、各种说明和语句乃至全部源程序其中的语法错误;必要时,可生成内部形式,便于下一阶段处理。3.中间代码:根据中间代码的类型和优化的类型,该代码可以是文本串的数组、临时文本文件或是结构的连接列表。对于进行复杂优化的编译器。由于同学们水平有限,我们只做了四元式的生成。1384.语义分析:程序的语义就是它的

7、“意思”,它与语法或结构不同。程序的语义确定程序的运行,但是大多数的程序设计语言都具有在执行之前被确定而不易由语法表示和由分析程序分析的特征。这些特征被称作静态语义,而语义分析程序的任务就是分析这样的语义。一般的程序设计语言的典型静态语义包括声明和类型检查。由于同学们水平有限,我们只做了其中的符号表部分。编译原理课程兼有很强的理论性和实践性,是计算机专业的一门非常重要的专业基础课程,在系统软件中占有十分重要的地位。编译原

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。