编译原理(第二版)第4章词法分析.pptxVIP

  1. 1、本文档共59页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章 词法分析;4.1 词法分析程序的设计;单词符号;二、输出表示:(单词种别,单词自身的值) A:=B+2 (id,指向A的符号表的入口指针) (id,指向B的符号表的入口指针) (num, 2) 三、词法分析工作独立的原因: 1、简化设计 2、改进编译效率 3、增加编译系统的可移植性 ;4.2 单词的描述工具;几类单词的描述;二、正规式(regular expression);正规式中的符号说明: “?”读为“或”(也有使用“+”代替 “?” 的) “? ”读为“连接”; “?”读为“闭包”(即,任意有限次的自重复连接)。 在不致混淆时,括号可省去,但规定算符的优先顺序为:“?”、“? ”、“?” 。 连接符“? ”一般可省略不写。 “?”、“? ”和“?” 都是左结合的。 正规集是正规语言的另一种表示。 如:字母(数字|字母)? 表示标识符。;;例 ?={l,d},r=l(l?d)?定义的正规集: {l,ll,ld,ldd,……}(标识符) 其中:l代表字母,d代表数字,正规式即是 字母(字母|数字)? 它表示的正规集是“字母打头的字母数字串”。 例4.3 ?={d,.,e,+,-},则?上的正规式 : d?(.dd??? )(e(+?-??)dd???) 表示的是无符号数的集合。其中:d为0-9的数字。;(二)两个正规式等价;(三)正规式的运算律;三、正规文法到正规式 ;例 r = a(a?d)? VT={a,d} S?a(a?d)? S?aA A?(a?d)? A?(a?d)B A?? B?(a?d)B B?? ;2. 将正规文法转换成正规式 使用如下规则,最后只剩下一个开始符号定义的产生式,并且右部不含非终结符。 规则1 :A-xB,B-y = A=xy 规则2: A-xA|y = A=x*y 规则3: A-x, A-y = A=x|y ;例如:文法G[S]为: S-aA, S-a, A-aA, A-dA, A-a, A-d;4.3 有穷自动机;一、确定的有穷自动机(DFA) 1、定义: 一个确定的有穷自动机(DFA)M是一个五元组:M=(K,Σ,f,S,Z)其中 1.K是一个有穷集,它的每个元素称为一个状态; 2.Σ是一个有穷字母表,它的每个元素称为一个输入符号,所以也称Σ为输入符号字母表; 3.f是转换函数,是在K×Σ→K上的映射,即如f(ki,a)=kj,(ki∈K,kj∈K)就意味着,当前状???为ki,输入符为a时,将转换为下一个状态kj,我们把kj称作ki的一个后继状态; 4.S∈K是唯一的一个初态; 5.Z?K是一个终态集,终态也称可接受状态或结束状态。;例:;(1)DFA 的状态图表示;(2)DFA 的矩阵表示;2、∑*上的符号串t在M上运行 一个输入符号串t,(我们将它表示成Tt1的形, 其中T∈∑,t1∈∑*)在DFA M上运行的定义为: f(Q,Tt1)=f(f(Q,T),t1) 其中Q∈K。 扩充转换函数f,是K×Σ*→K上的映射,且: f(Q,?)=Q;例:证明t=baab被如下的DFA所接受。;DFA M所能接受的符号串的全体记为L(M) ;DFA M=(K,Σ,f,S,Z)的算法: K:=S; c:=getchar; while ceof do {K:=f(K,c); c:=getchar; }; if K is in Z then return (‘yes’) else return (‘no’);二、不确定的有穷自动机NFA;例;表格表示;∑*上的符号串t在NFA N上运行 一个输入符号串t,(我们将它表示成Tt1的形式,其中T∈∑,t1∈∑*)在NFA M上运行的定义为:f(Q, Tt1)=f(f(Q,T),t1),其中Q∈K. ∑*上的符号串t被NFA N接受(读出、识别) 若t?∑*,f(S0,t)=P,其中S0∈S,P?Z,则称t为NFA M所接受(识别); 具有?转移的不确定的有穷自动机NFA f为 K×(∑∪{?})到K的子集的映射. 对任何一个具有?转移的不确定的有穷自动机NFA N,一定存在一个不具有?转移的不确定的有穷自动机NFA M,使得L(M)=L(N)。 ;状态集合I的有关运算:;例 I={1}, ?-closure(I)={1,2}; I={5}, ?-closure(I)={5,6,2};

文档评论(0)

SYWL2019 + 关注
官方认证
文档贡献者

权威、专业、丰富

认证主体四川尚阅网络信息科技有限公司
IP属地上海
统一社会信用代码/组织机构代码
91510100MA6716HC2Y

1亿VIP精品文档

相关文档