编译原理课程设计报告
课题名称: C-语言编译器设计(scanner和parser)
提交文档学生姓名:
提交文档学生学号:
同组 成 员 名 单: 无
指导 教 师 姓 名: 金军
指导教师评阅成绩:
指导教师评阅意见:
.
.
提交报告时间: 2011年 6 月 17 日
课程设计目标
设计C-Minus编译器分为scanner和parser两个部分。scanner主要作用是对目标代码进行扫描,列出关键字,变量等内容;parser主要对语法进行分析并生成语法树。
分析与设计
实现方法:代码用C语言编译而成。其中scanner为手工实现,主要采用switch-case结构实现状态转换;parser部分采用递归下降分析方法实现。
扫描器:C-的词法如下:
1、语言的关键字:if else 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关键字</