- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理实验一
一、实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。二、基本知识1、正则表达式2、正则表达式到有限自动机的转换3、有限自动机的确定化与最小化三、实验环境1、Windows操作系统2、C/C++/Java语言四、实验要求1、做好实验预习,掌握并熟悉本实验中所使用的编程、测试环境及相应的软件2、写出实验报告五、实验内容1、待分析的C语言子集的词法1) 关键字 main if else int return void while (都是小写)2) 专用符号 = + — * / = = = = != ; : ,{ } [ ] ( )3) 其他标记 STRING::= [^]* ID::=letter(letter|digit)* INT::=digit digit* letter::= a|…|z|A|…|Z digit::= 0|…|94)空格由空白、制表符和换行符组成 空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。2、部分单词符号对应的种别码单词符号种别码 单词符号种别码main1:17int2:=18reture320if421else5=22end623lettet(letter|digit)*10=24dight dight*11=25+13;26—14(27{15)28}16#03、词法分析程序的功能输入:所给文法的源程序字符串输出:二元组(syn, token或sum)构成的序列。其中syn 为单词种别码;token 为存放的单词自身字符串;sum为整型常量(作为常量的值)。实现时,可将单词的二元组用结构进行处理设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。4 程序源代码#include stdio.h#include string.hchar prog[80],token[8],ch;int syn,p,m,n,sum;char *rwtab[6]={main,int,return,if,else,end};void scaner();main(){p=0; printf(\n please input a string(end with #):/n); do{ scanf(%c,ch); prog[p++]=ch; } while(ch!=#); p=0; do{ scaner(); switch(syn) {case 11:printf(( %-10d%5d )\n,sum,syn); break; case -1:printf(you have input a wrong string\n); return 0 ; default: printf(( %-10s%5d )\n,token,syn); break; } }while(syn!=0); return 0; }//扫描查找函数 void scaner() { sum=0; for(m=0;m8;m++)token[m++]=NULL; ch=prog[p++]; m=0; while((ch== )||(ch==\n))ch=prog[p++]; if(((ch=z)(ch=a))||((ch=Z)(ch=A))) { while(((ch=z)(ch=a))||((ch=Z)(ch=A))||((ch=0)(ch=9))) {token[m++]=ch; ch=prog[p++]; } p--; syn=10; for(n=0;n6;n++) if(strcmp(token,rwtab[n])==0) { syn=n+1; break; } } else if((ch=0)(ch=9)) { while((ch=0)(ch=9)) { sum=sum*10+ch-0; ch=prog[p++]; } p--; syn=11; } else switch(ch) { case :token[m++]=ch; ch=prog[p++]; if(ch===) { syn=22; token[m++
您可能关注的文档
- 贝叶斯例子1.docx
- 贝叶斯信念网络.doc
- 贝叶斯信用评估模型.docx
- 贝叶斯网络参数的在线学习算法及应用.doc
- 背包问题九讲和源程序(答案).doc
- 被历史谈忘的民族英雄胡宗宪.doc
- 贲门失驰缓症诊治新进展.docx
- 苯溴马隆的药物经济学评价-.doc
- 鼻腔恶性黑色素瘤-a.doc
- 鼻饲病人的饮食护理.doc
- 中国国家标准 GB/T 12357.1-2024通信用多模光纤 第1部分:A1类多模光纤特性.pdf
- 中国国家标准 GB/T 18851.2-2024无损检测 渗透检测 第2部分:渗透材料的检验.pdf
- 《GB/T 18851.2-2024无损检测 渗透检测 第2部分:渗透材料的检验》.pdf
- GB/T 18851.2-2024无损检测 渗透检测 第2部分:渗透材料的检验.pdf
- GB/T 44927-2024知识管理体系 要求.pdf
- 中国国家标准 GB/T 44927-2024知识管理体系 要求.pdf
- 《GB/T 44927-2024知识管理体系 要求》.pdf
- GB/T 44937.4-2024集成电路 电磁发射测量 第4部分:传导发射测量1 Ω/150 Ω直接耦合法.pdf
- 《GB/T 44937.4-2024集成电路 电磁发射测量 第4部分:传导发射测量1 Ω/150 Ω直接耦合法》.pdf
- 中国国家标准 GB/T 44937.4-2024集成电路 电磁发射测量 第4部分:传导发射测量1 Ω/150 Ω直接耦合法.pdf
最近下载
- 2023年项目融资经理年终总结及年后展望.pptx VIP
- (完整word版)环评报告表资料清单--一般项目.doc
- 保安服务售后服务委托协议2024年.docx VIP
- 2023年投融资业务经理年终总结及下一年计划.pptx VIP
- 企业支付委托书.docx VIP
- 耀华XK3190-DS10技术说明书(1.00版).pdf
- 四方伟业数据治理软件V3.0.5操作手册.pdf
- T GDEIIA 56—2024 垂直起降低空航空器起降场基础设施配置技术要求.pdf VIP
- 老师教学课件-第二组 理念论、实在论与教育.pptx
- 2025湖北随州市公安局招聘警务辅助人员48名笔试模拟试题及答案解析.docx VIP
文档评论(0)