编译原理课程设计报告模板解析.doc

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课程设计报告模板解析

《编译原理课程设计》报告 MiniC编译器MFC实现 分组序号:5 设计地点:微机301、401 电子邮件:1260815873@ 指导教师:李村合 技术支持: CSDN下载: 百度文库下载: 2011 年 12 月 24 日 目录 1 前言 1 2 课程设计目的 2 3 课程设计内容 2 4 编译器特色 2 5 课程设计原理 2 6 系统需求分析 5 6.1 MiniC编译程序总体流程图 6 6.2 功能需求 7 6.3 主要用到的关键词: 9 6.4 汇编成可运行文件 9 6.5 MiniC语言的BNF文法 9 7 系统设计与实现 10 7.1 BY5编译程序主要模块功能 10 7.2 词法分析子程序 11 7.3 语法语义分析子程序 15 7.3.1 分程序处理过程 15 7.3.2 变量定义过程 16 7.3.3 语句处理过程 16 7.3.4 赋值语句的处理 18 7.3.5 read语句的处理 18 7.3.6 write语句的处理 19 7.3.7 call语句的处理 19 7.3.8 if语句的处理 20 7.3.9 while语句的处理 20 7.3.10 表达式、项、因子处理 21 7.3.11 逻辑表达式的处理 21 7.3.12 判断单词合法性与出错恢复过程分析: 23 8 系统测试与运行结果分析 24 8.1.1 测试程序: 24 8.1.2 测试结果 27 9 心得体会 29 前言大学计算机课程中比较难的一门课程,理论性相对较强,因而实践很重要,但多年以来国内并未有比较好的开源项目,不免心中可惜。作者参考陆晓春版的CMinus编译器,制作完成了BY5编译程序。这是本人的编译原理课程设计程序,现整理开源,以期抛砖引玉,帮助众多的编译器设计爱好者。2012年1月15日星期日 用MFC编写一个可视化MiniC编译器,要求界面美观,使用方便,能够实现自定义MiniC语言的编译。 ? 支持的语句及运算: 1) 数据类型:int,char ,void,float词法、语法、语义可以通过,汇编有问题 2) 语句:赋值(=),if, while,for,return,break,continue 3) 数学运算:+,-,*,/ 4) 关系运算:= =,,,=,=,!= 5) 逻辑运算:,||,! 6) 支持函数的定义、调用 7) 支持复合语句 8) 注释语句:C类型的 /* */ 和C++类型的// 9) 支持数组传值 编译器特色 1、IDE集成开发环境 2、关键字着色 3、全面的运算支持:+、-、*、/、逻辑运算 4、支持错误定位,错误位置高亮显示 5、优秀的面向对象设计,敏捷开发 6、数组传值,支持模块化设计 课程设计原理 MiniC语言可以看成C语言的子集,它的编译程序是一个编译执行系统。 MiniC的编译程序和目标程序的解释执行程序都是用C++语言书写的,因此MiniC语言可在配备C语言的任何机器上实现 。其编译过程采用一趟扫描方式,以语法分析程序为核心,词法分析和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序,而当语法分析正确需要生成相应的目标代码时,则调用代码生成程序。 用表格管理程序建立变量、常量和过程表示符的说明与引用之间的信息联系。 当源程序编译正确时,BY5编译程序自动调用解释执行程序,对目标代码进行解释执行,并按用户程序的要求输入数据和输出运行结果。 链接: 运行: 系统需求分析 MiniC语言编译过程采用一趟扫描方式,以语法分析程序为核心,词法分析程序和代码生成程序都作为一个独立的过程,当语法分析需要读单词时就调用词法分析程序,而当语法分析正确需生成相应的目标代码时,则调用代码生成程序.此外,用表格管理程序建立变量、常量和过程标识符的说明与引用之间的信息联系.用出错处理程序对词法和语法分析研究遇到的错误给出在源程序中出错的位置和错误性质.当源程序编译正确生成汇编代码时,利用汇编程序汇编、链接,并且运行。 MiniC编译程序总体流程图 功能需求 1、用C++语言实现了类C语言,称为扩展的MiniC语言,即MiniC语言的编译器。 2、文法是LL(1)文法,采用递归子程序法实现语法分析,并用C语言实现了词法分析器、语法分析器、代码生成器,能直接生成80x96运行的可执行文件。 3、在声明中实现了对静态常量、变量、数组和过程的声明支持;在赋值语句中实现了+=、++、-=、--、*=、/=、%=、:=(赋值);数学运算支持+、-、*、/(/除法编译可以通过,但汇编时会出现溢出错误!正在努力修正。 4、使用函数实现了对过程的调用。 5、使用{ }实现了复合语句。 6、使用read()来同时读

文档评论(0)

4477704 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档