编译原理实验报告

上传人:鲁** 文档编号:514053030 上传时间:2023-11-05 格式:DOC 页数:15 大小:249.50KB
返回 下载 相关 举报
编译原理实验报告_第1页
第1页 / 共15页
编译原理实验报告_第2页
第2页 / 共15页
编译原理实验报告_第3页
第3页 / 共15页
编译原理实验报告_第4页
第4页 / 共15页
编译原理实验报告_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《编译原理实验报告》由会员分享,可在线阅读,更多相关《编译原理实验报告(15页珍藏版)》请在金锄头文库上搜索。

1、编译方法实验报告实验1:扫描器的设计一、 实验目的熟悉并实现一个扫描器(词法分析程序)。二、 实验要求(1) 设计扫描器的有限自动机(识别器);(2) 设计翻译、生成Token的算法(翻译器);(3) 编写代码并上机调试运行通过。输入源程序文件或源程序字符串;输出相应的Token序列;关键字表和界符表;符号表和常数表;三、 实验步骤流程:初始化;打开用户源程序文件; while (文件未结束) 读入一行到wi,i=0;do /处理一行,每次处理一个单词 滤空格,直到第一个非空的wi;i-;s=1; /处理一个单词开始while (s!=0) /拼单词并生成相应Token act(s); /执行

2、qs if (s=11 & s Then = Else = ”, ”=”, ”=”, “”, “=a & wi=0 & wi=11 & s=14) /*判断是否是终止状态 *是终止状态,则形成一个tokenbreak;i+; /getchar() *读取下一个字符 s=find(s,wi); /状态转换if (s=0)strTOKENi_str=0;printf(词法错误:%sn,strTOKEN);while (wi!=10); printf(关键字表:); /输出结果for (i=0;i30;i+)printf(%s ,keywordsi);printf(n); printf(Token序

3、列:);for (i=0;inum_token;i+)printf(%d,%d),toki.code,toki.value);printf(n);printf(符号表:);for (i=0;inum_ID;i+)printf(%s ,IDi);printf(n);printf(常数表:);for (i=0;inum_C;i+)printf(%d ,Ci);printf(n);fclose(fp);printf(Hello World!n);return 0;/*状态转换后,达到新的状态之后,记录的变化void act(int s)int code;switch (s)case 1:n=0;m=0;p=0;t=0;e=1;num=0;i_str=0; strTOKENi_str=0; /其它变量初始化 break; case 2:n=10*n+wi-48; break; case 3:t=1; break; case 4:n=10*n+wi-48; m+; break; case 5:t=1; break; case 6:if (wi=-) e=-1

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号