C编译器词法分析与语法分析的实现课程设计.doc
文本预览下载声明
编译原理课程设计报告二号黑体,居中
二号黑体,居中
课题名称: C-编译器词法分析与语法分析的实现
小三号黑宋体
小三号黑宋体
提交文档学生姓名: 四号宋体
四号宋体
提交文档学生学号: 四号宋体
四号宋体
同组 成 员 名 单: 无 四号宋体
四号宋体
指导 教 师 姓 名: 四号宋体
四号宋体
指导教师评阅成绩: 四号宋体
四号宋体
指导教师评阅意见:
.
. 四号宋体
四号宋体
提交报告时间:2013年 6 月 5 日
TOC \o 1-3 \h \u HYPERLINK \l _Toc21471 编译原理课程设计报告 PAGEREF _Toc21471 1
HYPERLINK \l _Toc14015 1、课程设计目标 PAGEREF _Toc14015 3
HYPERLINK \l _Toc9302 2、分析与设计 PAGEREF _Toc9302 3
HYPERLINK \l _Toc159 2.1、说明所用的方法: PAGEREF _Toc159 3
HYPERLINK \l _Toc1417 2.2、系统总图: PAGEREF _Toc1417 3
HYPERLINK \l _Toc20133 2.2.1、scanner部分: PAGEREF _Toc20133 3
HYPERLINK \l _Toc15415 2.2.2、parse部分: PAGEREF _Toc15415 5
HYPERLINK \l _Toc26500 2.2.3、代码设计说明 PAGEREF _Toc26500 7
HYPERLINK \l _Toc23936 3、程序代码实现 PAGEREF _Toc23936 10
HYPERLINK \l _Toc22547 3.1、获取输入部分(在main.c中): PAGEREF _Toc22547 10
HYPERLINK \l _Toc17976 3.2、词法分析部分(在scan.c中): PAGEREF _Toc17976 10
HYPERLINK \l _Toc18398 3.3、语法分析部分(在parse.c中): PAGEREF _Toc18398 15
HYPERLINK \l _Toc28056 3.4、输出与结点的建立(在util.c中) PAGEREF _Toc28056 29
HYPERLINK \l _Toc3993 3.5、TokenType、treeNode与结点类型的声明(在globals.h中) PAGEREF _Toc3993 34
HYPERLINK \l _Toc30329 4、测试结果 PAGEREF _Toc30329 36
HYPERLINK \l _Toc2015 5、总结 PAGEREF _Toc2015 36
HYPERLINK \l _Toc15244 5.1、收获 PAGEREF _Toc15244 36
HYPERLINK \l _Toc31513 5.2、不足 PAGEREF _Toc31513 36
1、课程设计目标
本次实验,本C- 编译器主要设计并且实现了C- 编译器的词法分析功能与语法分析功能。
2、分析与设计
2.1、说明所用的方法:
各部分的实现方法(scanner:手工实现、Lex;parser:递归下降、LL(1)、LR(0)、SLR(1)、LR(1)、LALR(1)、Yacc),所用编程语言
实现内容
所用的实验方法
所用编程语言
scanner
手工实现
C语言
parse
递归下降
C语言
2.2、系统总图:
2.2.1、scanner部分:
、实验原理:
扫描程序的任务是从源代码中读取字符并形成由编译器的以后部分(通常是分析程序)处理的逻辑单元。由扫描程序生成的逻辑单元称作记号(token),将字符组合成记号与在一个英语句子中将字母将字母构成单词并确定单次的含义很相像。
在此程序中,我将记号分成了以下类型:
typedef enum {//按照书上附录B程序布局,放
显示全部