编译原理 lab1 词法分析下载

weixin_39822095 2019-09-19 12:00:24
编译原理 实验一 词法分析 分析词法
#include<iostream.h>
main()
{
int i;
cin>>i;
if (i>3) cout<<"ok";
}@
相关下载链接://download.csdn.net/download/qq_30161063/9338301?utm_source=bbsseo
...全文
24 回复 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
Lab1-Lab4分别完成了词法分析,语法分析;语义分析;中间代码生成和目标代码生成. Lab1实验报告 词法分析: 能够查出C--源代码中词法未定义的字符以及任何不符合词法单元定义的字符; 识别合法的八进制,如035、072; 识别合法的十六进制数,如0x23、0X4a; 识别合法的指数形式的浮点数,如1.2、.2、1.2e+4; 语法分析: 能够查出C--源代码中的语法错误; 没有词法和语错误的情况,则打印语法树 Lab2实验报告 语义分析: 可对输入的*.cmm文件进行语义分析,并检查如下类型的错误: 错误类型1:变量在使用时未定义。 错误类型2:函数在调用时未经定义。 错误类型3:变量出现重复定义,或变量与前面定义过的结构体名字重复。 错误类型4:函数出现重复定义。 错误类型5:赋值号两边的表达式类型不匹配。 错误类型6:赋值号左边出现一个只有右值的表达式。 错误类型7:操作数类型不匹配或操作数类型与操作符不匹配。 错误类型8:return语句的返回类型与函数定义的返回类型不匹配。 错误类型9:函数调用时实参与形参的数目或类型不匹配。 错误类型10:对非数组型变量使用“[…]”(数组访问)操作符。 错误类型11:对普通变量使用“(…)”或“()”(函数调用)操作符。 错误类型12:数组访问操作符“[…]”中出现非整数。 错误类型13:对非结构体型变量使用“.”操作符。 错误类型14:访问结构体中未定义过的域。 错误类型15:结构体中域名重复定义(同一结构体中),或在定义时对域进行初始化。 错误类型16:结构体的名字与前面定义过的结构体或变量的名字重复。 错误类型17:直接使用未定义过的结构体来定义变量。 Lab3实验报告 中间代码生成: 在词法分析、语法分析和语义分析的基础上,可对输入的*.cmm文件进行中间代码生成。但不支持结构体类型的变量,不支持高维数组的变量以及不支持一维数组作为函数参数出现。 Lab4实验报告 目标代码生成: 在词法分析、语法分析、语义分析和中间代码生成程序的基础上,将C--源代码翻译为MIPS32指令序列(可以包含伪指令),并在SPIM Simulator上运行。

13,656

社区成员

发帖
与我相关
我的任务
社区描述
CSDN 下载资源悬赏专区
其他 技术论坛(原bbs)
社区管理员
  • 下载资源悬赏专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧