编译原理课程设计报告(一个完整的编译器).docx

编译原理课程设计报告(一个完整的编译器).docx

  1. 1、本文档共116页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
1 / 66 编译原理课程设计报告(一个完整的编译器) 编译原理程序设计报告 一个简单文法的编译器的设计与实现 专业班级 : 计算机班 组长姓名 : 宋世波 组长学号 : 指导教师 : 肖 桐 年月 2 / 66 编译原理课程设计报告(一个完整的编译器) 设计分工 组长学号及姓名:宋世波 分工:文法及数据结构设计 词法分析 语法分析() 基于的中间代码优化 部分目标代码生成 组员学号及姓名:黄润华 分工:中间代码生成() 部分目标代码生成 组员学号及姓名:孙何奇 分工:符号表组织 部分目标代码生成 3 / 66 编译原理课程设计报告(一个完整的编译器) 摘要 编译器是将便于人编写, 阅读,维护的高级计算机语言翻译为计算机 能解读、运行的低阶机器语言的程序。编译是从源代码(通常为高阶语言) 到能直接被计算机或虚拟机执行的目标代码(通常为低阶语言或机器语 言)的翻译过程。 一.编译器的概述 .编译器的概念 编译器是将便于人编写,阅读,维护的高级计算机语言翻译为计算 机能解读、运行的低阶机器语言的程序。编译器将原始程序作为输入, 翻译产生使用目标语言的等价程序。源代码一般为高阶语言如、、 等,而目标语言则是汇编语言或目标机器的目标代码,有时也称作机器 代码。 .编译器的种类 编译器可以生成用来在与编译器本身所在的计算机和操作系统(平 台)相同的环境下运行的目标代码, 这种编译器又叫做“本地”编译器。 另外,编译器也可以生成用来在其它平台上运行的目标代码, 这种编译器 又叫做交叉编译器。 交叉编译器在生成新的硬件平台时非常有用。 “源码 到源码编译器”是指用一种高阶语言作为输入,输出也是高阶语言的编 译器。例如: 自动并行化编译器经常采用一种高阶语言作为输入,转换 其中的代码, 并用并行代码注释对它进行注释 (如) 或者用语言构造进行 4 / 66 编译原理课程设计报告(一个完整的编译器) 注释(如的指令)。 .本编译器概述 编译程序的工作过程一般可以分为五个阶段: 词法分析、 语法分析、 语义分析与中间代码产生、 优化、 目标代码生成。 每一个阶段在功能上是 相对独立的, 它一方面从上一个阶段获取分析的结果来进行分析, 另一方 面由将结果传递给下一个阶段。由编译程序的五个阶段就对应了编译系 统的结构,这五个对应阶段分为编译器的前段,中间代码以及后端。 其中词法分析器利用超前搜索、状态转换等方法, 将源程序转化成为 一个一个的单词符号二元式。 一般程序语言的单词符号包括关键字、 运算 符、常数、 标识符和界符。 语法分析器将这些单词符号作为输入, 对它进 行语法分析。语法分析采用分析法, 语法分析器把语法单元作为输入供语 义分析器使用。在语法分析的同时进行语法分析,并产生一定的语义动 作,来生成中间代码。优化和目标代码生成是针对某一种处理器而言的。 代码优化是将语义分析生成的中间代码进行优化,产生执行效率更高的 代码。目标代码生成最终生成可以在某种机器上运行的机器语言或者汇 编语言。还要有符号表可供查询。在整个编译过程中还包括对表格的操作 和对错误的处理,这些也都是非常重要的环节。 环境: 编译器整体全部使用 编写 目标代码在指令集机器上运行 关键词:编译原理,前端,中间代码生成,后端, 5 / 66 编译原理课程设计报告(一个完整的编译器) 目录 . 概 述 本程序实现的数据类型有整型 ()、浮点型 ()、(字符型)、字符串型 (),同时在最后的目标代码生成部分允许出现布尔()类型,实现的操 作有, 以及循环, 和输入输出语句, 能做到直接生成目标代码并运行。 做 到了类型检查和重定义的判断,同时也有优化部分。 词法分析部分构建得到的词法序列为二元式, 二元式由两部分组成, 其种别码和类型组成, 其中关键字和界符记录其数字, 用到时只需查其对 应的关键字表和界符表即可, 而字符类型、 字符串类型、 数字类型、 以及 标识符类型的值一律用字符串存储,其中数字类型存储时对其使用和函 数进行数字转字符串即可,要使用到其数字时只需要将对其使用字符串 转数字函数再获得即可。 语法分析部分采用的是分析方法, 这是一种自上而下的语法分析法, 又称为预测分析法, 语法分析器部分实现了自动求集合和集合, 采用的是 递归程序获得集合, 在实现对产生式完全扫描以后, 便可以获得一张完整 的分析表, 表中标注了是否为预测以及对应的产生式序列, 而后进行语法 分析, 通过于获得的分析表进行比对, 进行入栈出栈, 匹配到相同的则认 为匹配成果, 当文法匹配成功, 同时单词也匹配成功的时候, 认为语法分 6 / 66 编译原理课程设计报告(一个完整的编译器) 析完

文档评论(0)

188****7880 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档