第三章词法分析器.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第三章词法分析器.ppt

第三章 词法分析及其自动构造 词法分析程序的设计原则,单词的描述技术,识别机制及词法分析程序的自动构造原理。 单词的描述工具 单词的识别系统 设计词法分析程序,实现词法分析程序的自动构造 回顾 什麽是词法分析程序 实现词法分析(lexical analysis)的程序 逐个读入源程序字符并按照构词规则切分成一系列单词。 单词是语言中具有独立意义的最小单位,包括保留字、标识符、运算符、标点符号和常量等。 词法分析是编译过程中的一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。 词法分析程序和语法分析程序的关系 词法分析工作从语法分析工作独立出来的原因: 简化设计 改进编译效率 增加编译系统的可移植性 单词的描述工具-正规表达式 单词的识别系统-有穷自动机 设计词法分析程序,实现词法分析程序的自动构造 令?={a,b}, ?上的正规式和相应的正规集的例子 a a?b ab (a?b)(a?b) a ? (a?b)? (a?b)?(aa?bb)(a?b)? 正规式 正规式也称正则表达式,是定义正规集的数学工具。正规表达式(regular expression)是说明单词的模式(pattern)的一种重要的表示法(记号),我们用以描述单词符号。 令?={a,b}, ?上的正规式和相应的正规集的例子 a a?b ab (a?b)(a?b) a ? (a?b)? (a?b)?(aa?bb)(a?b)? 讨论两个例子 例3.1 令?={l,d},则?上的正规式 r=l(l ?d) ?定义的正规集为: {l,ll,ld,ldd,……},其中l代表字母,d代表数字,正规式 即是 字母(字母|数字) ? ,它表示的正规集中的每个元素的模式是“字母打头的字母数字串”,就是Pascal和 多数程序设计语言允许的的标识符的词法规则. 例3.2 ?={d,?,e,+,-}, 则?上的正规式 d?(?dd ?? ? )(e(+?- ??)dd? ??)表示的是无符号数的集合。其中d为0~9的数字。 程序设计语言的单词都能用正规式 来定义. 有穷自动机 有穷自动机(也称有限自动机)作为一种识别装置,它能准确地识别正规集,即识别正规式所表示的集合.应用有穷自动机这个理论,为词法分析程序的自动构造寻找有效的方法和工具。 有穷自动机分为两类:确定的有穷自动机(Deterministic Finite Automata)和不确定的有 穷自动机(Nondeterministic Finite Automata) 。 关于有穷自动机我们将讨论如下题目 确定的有穷自动机DFA 不确定的有穷自动机NFA NFA的确定化 DFA的最小化 确定的有穷自动机DFA DFA定义: 一个确定的有穷自动机(DFA)M是一个五元组:M=(K,Σ,f,S,Z)其中 1.K是一个有穷集,它的每个元素称为一个状态; 2.Σ是一个有穷字母表,它的每个元素称为一个输入符号,所以也称Σ为输入符号表; DFA定义 3.f是转换函数,是在K×Σ→K上的映射,即,如 f(ki,a)=kj,(ki∈K,kj∈K)就意味着,当前状态为ki,输入符为a时,将转换为下一个状态kj,我们把kj称作ki的一个后继状态; 4.S∈K是唯一的一个初态; 5.Z? K是一个终态集,终态也称可接受状态或结束状态。 一个DFA 的例子: DFA M=({S,U,V,Q},{a,b},f,S,{Q})其中f定义为: f(S,a)=U f(V,a)=U f(S,b)=V f(V,b)=Q f(U,a)=Q f(Q,a)=Q f(U,b)=V f(Q,b)=Q DFA 的状态图表示 DFA 的矩阵表示 ∑*上的符号串t被DFA M接受 例:证明t=baab被下图的DFA所接受。 f(S,baab)=f(f(S,b),aab) = f(V,aab)= f(f(V,a),ab) =f(U,ab)=f(f(U,a),b) =f(Q,b)=Q Q属于终态。 得证。 DFA M所能接受的符号串的全体记为L(M). 结论: ?上一个符号串集V???是正规的,当且仅当存在一个?上的确定有穷自动机M,使得

文档评论(0)

docinpfd + 关注
实名认证
内容提供者

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

版权声明书
用户编号:5212202040000002

1亿VIP精品文档

相关文档