编译原理-课程设计报告-简单编译器实现

编译原理-课程设计报告-简单编译器实现

ID:9936920

大小:875.50 KB

页数:34页

时间:2018-05-16

编译原理-课程设计报告-简单编译器实现_第1页
编译原理-课程设计报告-简单编译器实现_第2页
编译原理-课程设计报告-简单编译器实现_第3页
编译原理-课程设计报告-简单编译器实现_第4页
编译原理-课程设计报告-简单编译器实现_第5页
资源描述:

《编译原理-课程设计报告-简单编译器实现》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、成绩:课程设计题目:简单编译器实现学院:信息工程学院计算机系专业:计算机科学与技术班级:计科1103班组长:小组成员:指导教师:2014年12月19日34目录1概述31.1源、目标语言简介31.2实现平台与运行平台简介31.3其它42简单词法分析器的设计与实现42.1基础理论说明42.2需求分析42.3概要设计52.4详细设计52.5测试数据与结果72.6心得体会73简单语法分析器设计与实现83.1基础理论说明83.2需求分析83.3概要设计83.4详细设计83.5测试数据与结果93.6心得体会104中间代码产生器的设计与实现104.1基础理论说明104.2需求分析

2、104.3概要设计104.4详细设计114.5测试数据与结果124.6心得体会12附录:14附录A:主要源程序与系统截图14附录B:任务分配表及个人完成的程序模块33附录C:小组讨论与研发记录34341概述编译程序的工作过程一般可以分为五个阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。每一个阶段在功能上是相对独立的,它一方面从上一个阶段获取分析的结果来进行分析,另一方面由将结果传递给下一个阶段。由编译程序的五个阶段就对应了编译系统的结构。其中词法分析器利用超前搜索、状态转换等方法,将源程序转化成为一个一个的单词符号二元式。一般程序语言的单词符

3、号包括关键字、运算符、常数、标识符和界符。语法分析器将这些单词符号作为输入,对它进行语法分析。语法分析分为两种方法:自上而下分析法和自下而上分析法。针对不同程序语言的语法规则可以采取不同的分析方法,当然两种方法也可以同时使用。语法分析器把语法单元作为输入供语义分析器使用。一般的语义分析器主要采用的是语法制导方法,即在语法分析的同时进行语法分析,并产生一定的语义动作,来生成中间代码。上面三个过程可以与硬件无关,而接下来的优化器和目标代码生成器是针对某一种处理器而言的。代码优化是将语义分析生成的中间代码进行优化,产生执行效率更高的代码。目标代码生成器最终生成可以在某种机

4、器上运行的机器语言或者汇编语言。在整个编译过程中还包括对表格的操作和对错误的处理,这些也都是非常重要的环节。1.1源、目标语言简介使用C语言做简单语法分析器,C语言是一门高级计算机编程语言,设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言1.2实现平台与运行平台简介在win32环境下进行编译,Win32是指MicrosoftWindows操作系统的32位环境,是目前使用最多的操作系统。实验环境:需要TC、VC++6.0等开发工具作为本次试验的环境。341.3其它通过实现一个可以把类似c语言的源代码转变

5、为中间代码的编译器,更好地理解编译的过程,锻炼我们组的编程能力。2简单词法分析器的设计与实现2.1基础理论说明词法分析负责对源程序的字符串进行扫描和分解,根据构词法将字符流(CharacterStream)转化成单词流(TokenStream)。2.2需求分析词法分析器产生下述小语言的单词序列这个小语言的所有的单词符号,以及它们的种别编码和内部值[1]如下表:单词符号种别编码助记符内码值DIMIFDOSTOPEND标识符常数(整)=+***,()1234567891011121314$DIM$IF$DO$STOP$END$ID$INT$ASSIGN$PLUS$STA

6、R$POWER$COMMA$LPAR$RPAR------内部字符串标准二进形式------342.3概要设计首先,所有的关键字(如IF﹑WHILE等)都是“保留字”。所谓的保留字的意思是,用户不得使用它们作为自己定义的标示符。例如,下面的写法是绝对禁止的:IF(5)=x其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标示符来处理。也就是说,对于关键字不专设对应的转换图。但把它们(及其种别编码)预先安排在一张表格中(此表叫作保留字表)。当转换图识别出一个标识符时,就去查对这张表,确定它是否为一个关键字。再次,如果关键字、标识符和常数之间没有确定的运算符或界符

7、作间隔,则必须至少用一个空白符作间隔(此时,空白符不再是完全没有意义的了)。例如,一个条件语句应写为 IFi>0i=1;而绝对不要写成             IFi>0i=1;因为对于后者,我们的分析器将无条件地将IFI看成一个标识符。2.4详细设计状态转换图[2]34词法分析器的流程图[3]342.5测试数据与结果2.6心得体会设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是所用的思想是根据状态转移表实现对单词的识别。首先构造一个保留字表,然后,每输入一个字符就检测应该进入什么状态,并将该字符连接到d串后继续输入,如此循环,最后根据所在的

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

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

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