2022年需求说明北航本科编译原理大作业 .pdf
《2022年需求说明北航本科编译原理大作业 .pdf》由会员分享,可在线阅读,更多相关《2022年需求说明北航本科编译原理大作业 .pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C0扩充文法编译器需求说明学号: _37230118_ 姓名: _罗杨_ 2010 年1 月16 日名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 7 页 - - - - - - - - - 1 概述本编译器通过识别符合扩充C0 文法标准的输入,生成的32 位 X86 汇编代码,经过MASM编译和连接后可以在Windows 操作系统下直接运行。其中中间代码采用四元式的形式,并实现了局部公共子表达式删除,全局寄存器分配和数据流分析等基本优化。且本编译器具有UI 界面,可以显
2、示错误信息,包含了MASM模块及其相关头文件和库。是一个简单而易用的扩充 C0 文法编译器。2 文法2.1 原始文法加法运算符:= 乘法运算符:= 关系运算符:= =!= = 字母:= a z A Z 数字:= 非零数字非零数字:= 字符:= 加法运算符乘法运算符字母数字字符串:= /字符串中可以出现所有合法的可打印字符集中的字符程序:= 常量说明部分 变量说明部分 有返回值函数定义部分|无返回值函数定义部分主函数常量说明部分:= const常量定义; 常量定义 ; 常量定义:= int标识符整数, 标识符整数| float标识符实数,标识符实数| char标识符字符,标识符字符 整数:= 非
3、零数字数字实数:= . 标识符:= 字母字母数字声明头部:= int 标识符|float 标识符 |char标识符变量说明部分:= ; 变量定义:= 类型标识符标识符,标识符 类型标识符:= int | float | char 有返回值函数定义部分:= 声明头部( 参数) 复合语句 无返回值函数定义部分:= void( ) 复合语句:= 常量说明部分 变量说明部分语句列参数:= 参数表参数表:= 类型标识符标识符 ,类型标识符标识符| 主函数:= void main ( ) 复合语句 表达式:= 项加法运算符项 项:= 因子 乘法运算符因子 因子:= 标识符(表达式)整数有返回值函数调用语句
4、 |字符语句:= 条件语句循环语句 有返回值函数调名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 7 页 - - - - - - - - - 用语句 ; |无返回值函数调用语句;赋值语句;读语句;写语句;空返回语句;赋值语句:= 标识符表达式条件语句:= if (条件 )语句 else语句条件:= 表达式关系运算符表达式表达式/表达式为0 条件为假,否则为真循环语句:= while (条件)语句 | for( 标识符表达式; ;标识符标识符(+|-) 步长:= 非零数字数
5、字有返回值函数调用语句:= 标识符 (值参数表)无返回值函数调用语句:= 标识符 (值参数表)值参数表:= 表达式 ,表达式 空语句列:= 语句语句读语句:= scanf (标识符 ,标识符 )写语句:= printf ( , )|printf ( )|printf ()返回语句:= return(表达式) 2.2 文法变更根据编译器的实现过程、易用性、 兼容性、正确性等客观情况,对原始文法进行了一些修改。文字说明:(1)增加了注释的定义:包括多行注释/* */ 和单行注释 /。(2)根据杨海燕老师的说明,对的小数部分进行修改,使之可以产生全部合理小数。(3)根据杨海燕老师的说明,将可以推出
6、改为 可以推出;。(4)可以在函数或过程中多个位置设置Return 语句。2.3 实现文法加法运算符:= 乘法运算符:= 关系运算符:= =!= 字母:= a zA Z 数字:= 非零数字非零数字:= 字符:= 加法运算符乘法运算符字母数字字符串:= /字符串中可以出现所有合法的可打印字符集中的字符:= /* */:= / 程序:= 常量说明部分 变量说明部分 有返回值函数定义部分名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 7 页 - - - - - - - - -
7、|无返回值函数定义部分主函数常量说明部分:= const常量定义; 常量定义 ; 常量定义:= int标识符整数, 标识符整数| float标识符实数,标识符实数| char标识符字符,标识符字符 整数:= 非零数字数字实数:= . := 数字标识符:= 字母字母数字声明头部:= int 标识符|float 标识符 |char标识符变量说明部分:= ; 变量定义:= 类型标识符标识符,标识符 类型标识符:= int | float | char 有返回值函数定义部分:= 声明头部( 参数) 复合语句 无返回值函数定义部分:= void( ) 复合语句:= 常量说明部分 变量说明部分语句列参数:
8、= 参数表参数表:= 类型标识符标识符 ,类型标识符标识符| 主函数:= void main ( ) 复合语句 表达式:= 项加法运算符项 项:= 因子 乘法运算符因子 因子:= 标识符(表达式)整数有返回值函数调用语句 |字符语句:= 条件语句循环语句 有返回值函数调用语句; |无返回值函数调用语句;赋值语句;读语句;写语句;;返回语句;赋值语句:= 标识符表达式条件语句:= if (条件 )语句 else语句条件:= 表达式关系运算符表达式表达式/表达式为0 条件为假,否则为真循环语句:= while (条件)语句 | for( 标识符表达式; ;标识符标识符(+|-) 步长:= 非零数字
9、数字有返回值函数调用语句:= 标识符(值参数表)无返回值函数调用语句:= 标识符(值参数表)值参数表:= 表达式 ,表达式 空语句列:= 语句语句读语句:= scanf (标识符 ,标识符 )写语句:= printf ( , )|printf ( )|printf ()返回语句:= return (表达式) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 7 页 - - - - - - - - - 2.3 属性翻译文法加法运算符AddOpr n := 乘法运算符MulOp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年需求说明北航本科编译原理大作业 2022 需求 说明 北航 本科 编译 原理 作业
限制150内