编译原理课程设计报告书_第1页
编译原理课程设计报告书_第2页
编译原理课程设计报告书_第3页
全文预览已结束

下载本文档

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

文档简介

1、编译原理课程设计报告书 目 录 一 、 设计题目 . - 1 - 二 、 运行环境 . - 1 - 三 、 算法设计的思想 . - 1 - 四 、 算法的流程图 . - 3 - 五 、 算法设计分析 . - 6 - 六 、 源代码 . - 11 - 七 、 运行结果分析 . - 28 - 八 、 收获及体会 . - 32 - 一 、设计题目 简易c语言编译器 二 、运行环境 ? 硬件环境:奔腾处理器,主频2.0ghz;内存512m;硬盘80g以 上;1024768显示分辨率 ? 软件环境:windows xp2;visual c+6.0 三 、算法设计的思想 编译程序的工作过程一般可以分为五个

2、阶段:词法分析、语法分析、语义分析与中间代码产生、优化、目标代码生成。每一个阶段在功能上是相对独立的,它一方面从上一个阶段获取分析的结果来进行分析,另一方面由将结果传递给下一个阶段。由编译程序的五个阶段就对应了编译系统的结构。 其中词法分析器利用超前搜索、状态转换等方法,将源程序转化成为一个一个的单词符号二元式。一般程序语言的单词符号包括关键字、运算符、常数、标识符和界符。语法分析器将这些单词符号作为输入,对它进行语法分析。语法分析分为两种方法:自上而下分析法和自下而上分析法。针对不同程序语言的语法规则可以采取不同的分析方法,当然两种方法也可以同时使用。语法分析器把语法单元作为输入供语义分析器

3、使用。一般的语义分析器主要采用的是语法制导方法,即在语法分 - 1 - 析的同时进行语法分析,并产生一定的语义动作,来生成中间代码。上面三个过程可以与硬件无关,而接下来的优化器和目标代码生成器是针对某一种处理器而言的。代码优化是将语义分析生成的中间代码进行优化,产生执行效率更高的代码。目标代码生成器最终生成可以在某种机器上运行的机器语言或者汇编语言。在整个编译过程中还包括对表格的操作和对错误的处理,这些也都是非常重要的环节。 下图给出了编译系统的结构框图: 源程序 表 格 管 理 优化器 中间代码 目标代码生成器 目标代码 语法单元 语义分析与中间代码生成器 中间代码 语法分析器 词法分析器

4、单词符号 出 错 处 理 - 2 - 四 、算法的流程图 1、词法分析: printf(overn);fclose(fp);getch();bufferchar!=#out() bufferchar=alpha(bufferchar); rollback();bufferchar=digitbufferchar=other(bufferchar);rollback();(bufferchar); rollback(); bufferchar!=#isalpha(bufferchar)isdigit(bufferchar)note();main()initial_buffer() init()结束- 3 - 2、语法分析: 结束 出栈,产生式逆序 栈顶不为#” 初始化堆栈,并将 #和s放入堆栈 从词法输出中读入token序列,放入input 开始 是 栈顶为终结符 是 栈顶=

温馨提示

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

评论

0/150

提交评论