下载此文档

编译原理课程设计C语言编译器.doc


文档分类:IT计算机 | 页数:约51页 举报非法文档有奖
1/51
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/51 下载此文档
文档列表 文档介绍
编译原理课程设计C-语言编译器
2

———————————————————————————————— 作者:
———————————————————————————————— 日期:

个人收集 仅供参考学习 勿做商业用途
编译原理课程设计报告
课题名称: C-语言编译器设计

提交文档学生姓名: 李杰
提交文档学生学号: 0743041240
同组 成 员 名 单: 无
指导 教 师 姓 名: 金军
指导教师评阅成绩:
指导教师评阅意见:
.
.
提交报告时间: 2021年 6 月 10日
3

个人收集 仅供参考学习 勿做商业用途
课程设计目标
实验建立C-编译器。只含有scanner和parser局部。
分析与设计
〔1〕实现方法:
编程语言为C语言。
编程方法:scanner局部根据DFA图用switch-case构造实现状态转换;parser局部用递归下降分析方法实现。
〔2〕扫描器:
C-惯用的词法
1、语言的关键字:else if int return void while
2、专用符号:+ - * / < <= > >= == != = ; , ( ) [ ] { } /* */
3、其他标记是ID和NUM,通过以下正那么表达式定义:
ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9
4、空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字。
5. 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套
各单词的状态转换图〔DFA图如下〕词法构造见文件""中。
〔3〕分析器:分析树构造见文件""中。
C-的BNF语法如下:
4

个人收集 仅供参考学习 勿做商业用途
5

个人收集 仅供参考学习 勿做商业用途
〔4〕代码设计说明:
程序构造:语法分析函数parse通过调用词法分析函数getToken实现语法分析。
文件和函数的设计说明:printToken和printTree,以及分析树节点初始化相关的函数newStmtNode,newExpNode(Expkind)和copyString; ,主要函数为getToken; ,函数为与文法规那么对应的函数。
关键数据构造
程序代码实现

//实验

编译原理课程设计C语言编译器 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数51
  • 收藏数0 收藏
  • 顶次数0
  • 上传人taotao0d
  • 文件大小307 KB
  • 时间2021-08-28