编译原理第2讲.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1讲作业题;习题答案;编译各阶段的分组;编译程序与解释程序的根本区别在于是否生成目标代码。 一般来说,编译程序分为词法分析,语法分析,语义分析和中间代码生成,代码优化,目标代码生成5个阶段,同这5个阶段都要打交道的是符号管理表程序和错误处理器。 ;错误处理的主要任务是:把检测到的错误局部化,尽可能多地编译源程序代码,以便发现更多的错误,有可能的话进行适当的错误校正。 对下列错误信息,请指出可能是编译的哪个阶段报告的? Else没有匹配if(语法分析) 数组下标越界(语义分析) 使用的函数没有定义(语法分析) 在数中出现非数字字符(词法分析);高级语言书写的源程序只有被编译或者解释后才能执行。 语言处理程序分为编译程序、汇编程序和解释程序。;;第二讲 词法分析;一、词法分析程序(词法分析器)的功能;一、词法分析程序(词法分析器)的功能;概念1:单词(词素);概念1:单词(词素);概念1:单词(词素);概念1:单词(词素);概念1:单词(词素);请将以下C程序中的词素进行分类? float match0(char *s { if (!strncmp(s, 0.0, 3)) return 0; };解答;返回;概念2:词法单元(token字);词类编码原则:;词类编码原则:;例如:某种语言词类编码编码如下表;返回;词法单元属性值;if i>j then i=0 else j=1;以语句子a=b+c*d为例,假设按表中的单词编码,词法分析后的结果(即:生成并输出一个词法单元序列)为:;教材71页练习3.1.1;词法分析器的设计思路;词法分析器的设计思路;词法分析器的设计;字母表的概念;C语言的字母表:;C语言的字母表:;C语言的字母表:;C语言的字母表:;串是由字母表中的符号组成的任何有穷序列。 例如:00, 11, 10是字母表∑={0,1}上的串 练习一下: 请写出字母表∑={a,b,c}上的串 解答:有a,b,ab,ac,ba,ca,abb,acc,abc等等。 ;用|s|表示串s的长度,是指s中有多少个符号 例如:banana是长度为6的串,即|banana|=6 注意:允许出现空串,用ε(艾普西隆)表示 空串中不包含任何符号,长度为0 即|ε|=0;和串有关的术语;练一练;教材76页练习3.2.3;串的运算;语言的概念;语言的运算;语言的运算;语言的运算;语言的运算;语言的运算;例如:令L={A,B,……,Z,a,b,……,z} 令D={0,1,……,9} 说明L(L∪D) *所表示的语言特点 解答:所有以字母开头的,由字母和数字组成的串的集合,而且串的长度大于等于1

文档评论(0)

586334000 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档