| 设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计 | |||||
|
|||||
|
|||||
|
|||||
目录
目录
1. 概述
2. 系统描述
2.1. 自定义语言概述
2.2. 单词文法与语言文法
2.3. 符号表结构定义
2.4. 错误类型码定义
2.5. 中间代码结构定义
2.6. 目标代码指令集选择
3. 系统设计与实现
3.1. 词法分析器
3.2. 语法分析器
3.3. 符号表管理
3.4. 语义检查
3.5. 报错功能
3.6. 中间代码生成
3.7. 代码优化
3.8. 汇编代码生成
4. 系统测试与评价
4.1. 测试用例
4.2. 正确性测试
4.3. 报错功能测试
4.4. 系统的优点
4.5. 系统的缺点
5. 实验小结或体会
6. 参考文献
附件:源代码
本次实验是构造一个高级语言的子集的编译器,目标代码是汇编语言。按照任务书,实现的方案可以有很多种选择。
可以根据自己对编程语言的喜好选择实现。建议大家选用decaf语言或C语言的简单集合SC语言。
实验的任务主要是通过对简单编译器的完整实现,加深课程中关键算法的理解,提高学生系统软件研发技术。
自定义语言是基于C语言的简化语言,具有C语言中最为基础的内容,包括基本的运算操作、if-else、for、while循环语句,自定义函数和变量等。
Mini-C的文法如下:
G[program]:
program → ExtDefList
ExtDefList → ExtDef ExtDefList | ε
ExtDef → Specifier ExtDecList ;| SpecifierFunDecCompSt
Specifier → int | float | char | StructSpecifier
ExtDecList → VarDec | VarDec , ExtDecList
VarDec → ID | VarDec ( Exp )
FucDec → ID ( VarList ) | ID ()
VarList → ParamDec ,VarList | ParamDec
ParamDec → Specifier VarDec
CompSt → { DefList StmList }
StmList → Stmt StmList | ε
Stmt → Exp ; | CompSt | returnExp ; | FOR ( Exp ; Exp ; Exp ) Stmt | if ( Exp )Stmt | if( Exp ) Stmt else Stmt| while ( Exp ) Stmt
DefList → Def DefList | ε
Def →Specifier DecList ;
DecList → Dec | Dec ,DecList
Dec → VarDec | VarDec =Exp
Exp → Exp=Exp | Exp && Exp | Exp | |Exp | Exp < Exp| Exp <= Exp | Exp == Exp | Exp != Exp | Exp > Exp | Exp >= Exp | Exp +Exp| Exp -Exp | Exp *Exp | Exp /Exp | INT | FLOAT | CHAR | VarDec | Exp ++ | Exp -- | ++ Exp | --Exp | VarDec += Exp | VarDec -= Exp | VarDec *= Exp | VarDec /= Exp | BREAK | CONTINUE | Exp . ID | ( Exp ) | -Exp | ! Exp | ID ( Args ) | ID ()
Args → Exp , Args | Exp
StructSpecifier → STRUCT StructName { ExtDefList } | STRUCT ID
StructName → ID | ε












毕业66资料站 biye66.com ©2015-2026 版权所有 | 微信:15573586651 QQ:3903700237
本站毕业设计和毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!