ImageVerifierCode 换一换
格式:DOCX , 页数:33 ,大小:173.76KB ,
资源ID:18281409      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/18281409.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(编译原理词法分析和语法分析报告+代码C语言版Word文档下载推荐.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

编译原理词法分析和语法分析报告+代码C语言版Word文档下载推荐.docx

1、lettet(letter|digit)*1024dight dight*1125+13;2614(27*15)28/16#2.3 词法分析程序的功能:输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。例如:对源程序begin x:=9: if x9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:(1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)三、词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中识别

2、出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。3.1 主程序示意图:主程序示意图如图3-1所示。其中初始包括以下两个方面: 关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char *rwtab6 = “begin”, “if”, “then”, “while”, “do”, “end”,; 否 是图3-1(2)程序中需要用到的主要变量为syn,token和sum3.2 扫描子

3、程序的算法思想:首先设置3个变量:token用来存放构成单词符号的字符串;sum用来整型单词;syn用来存放单词符号的种别码。扫描子程序主要部分流程如图3-2所示。 是 是否 字母 数字 其他 运算符、 符号 界符等符号 是图 3-2四、词法分析程序的C语言程序源代码:#include #includeconio.hstring.hchar prog80,token8,ch;int syn,p,m,n,sum;char *rwtab6=begin,ifthenwhiledoend; scaner();main()p=0; printf(n please input a string(end w

4、ith #):n); do scanf(%c,&ch); progp+=ch; while(ch!= p=0; switch(syn) case 11:printf( %-10d%5d )n,sum,syn); break; case -1:you have input a wrong stringn getch(); exit(0); default:( %-10s%5d )n,token,syn); while(syn!=0); scaner() sum=0; for(m=0;m8;m+)tokenm+=NULL; ch=progp+; m=0; while(ch= )|(ch=n)ch=

5、progp+; if(cha)|(chZA) while(ch0(ch9 tokenm+=ch; p-; syn=10; for(n=0;n) while(ch sum=sum*10+ch-; syn=11; else switch(ch) case :tokenm+=ch; if(ch= syn=22; tokenm+=ch; else syn=20; case syn=24; syn=23;+ syn=17; syn=13;- syn=29; syn=14;!ch=progp+; syn=21; syn=31; syn=25; syn=18;* syn=15;/ syn=16;( syn=

6、27;) syn=28; syn=5; syn=6; syn=26; syn=30; syn=0;syn=17; syn=-1; tokenm+=0五、结果分析:输入begin x: end # 后经词法分析输出如下序列:(begin 1)(x 10)(:17)(= 18)(9 11)(;26)(if 2) 如图5-1所示: 图5-1六、总结:词法分析的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。通过本试验的完成,更加加深了对词法分析原理的理解。 语法分析编制一个递归下降分析程序,实现对词法分析程序所提供的

7、单词序列的语法检查和结构分析。利用C语言编制递归下降分析程序,并对简单语言进行语法分析。2.1 待分析的简单语言的语法用扩充的BNF表示如下:=begin=;+ | -* | /=ID | NUM | (19)printf( to long sentense!else for (j=0;jq;j+)printf( %s = %s %s %s nn,quadj.result1,quadj.ag11,quadj.op1,quadj.ag21);int lrparser() int schain=0; kk=0; if (syn=1)schain=yucu();if(syn=6) if(syn=0)&(kk=0)Success!else if(kk!=1)printf(short of ! return (schain);int yucu() int schain=0; schain=statement();int statement() char tt8,eplace8; in

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1