网站大量收购独家精品文档,联系QQ:2885784924

第三章词法分析.ppt.ppt

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

第三章 词法分析 本章重点 单词的描述工具 什么是词法分析程序 实现词法分析(lexical analysis)的程序称为词法分析程序(或扫描器)。 词法分析是编译过程中的第一个阶段,在语法分析前进行 。也可以和语法分析结合在一起作为一遍,由语法分析程序调用词法分析程序来获得当前单词供语法分析使用。 词法分析工作从语法分析工作独立出来的原因: § 3.1 对于词法分析器的要求 3.1.1 词法分析器的功能和输出形式 3.2词法分析器的设计 某些跳格符、回车符和换行符等编辑性字符,在别处的任何出现都没有意义,预处理时可以将其剔掉。 二、 单词符号的识别:超前搜索 为什么要采用超前搜索 三、 状态转换图 2. 对任何a? ?,a是?上的一个正规式,它所表示的正规集为{a}; 注意: 其中“?”、 “? ”、 “?”均为正规式运算符: 例子 令?={a,b}, ?上的正规式和相应的正规集的例子有: 正规式 正规集 正规式 正规集 (a?b)? {? ,a,b,aa,ab ……所有由a 和b组成的串} 正规式的等价性 若两个正规式e1和e2所表示的正规集相同,则说e1和e2等价,写作e1=e2。 设U,V,W为正规式,正规式服从的代数规律有: 2 有限自动机 有限自动机(也称有穷自动机) 能准确地识别正规集,即识别正规文法所定义的语言和正规式所表示的集合,引入有穷自动机这个理论,正是为词法分析程序的自动构造寻找特殊的方法和工具。 有穷自动机分为两类:确定的有限自动机(Deterministic Finite Automata)和不确定的有限自动机(Nondeterministic Finite Automata) 。 关于有限自动机我们将讨论如下题目 确定的有穷自动机DFA 不确定的有穷自动机NFA NFA的确定化 DFA的最小化 一、DFA定义: 一个确定的有穷自动机(DFA)M是一个五元组: M=(S,Σ,δ,s0 ,F),其中: 三、DFA的确定性 3非确定的有穷自动机NFA 二、一个NFA 的例子: ∑*上的符号串t被NFA M接受也可以这样理解: 结论: 4.NFA与DFA的等价性: 从NFA的矩阵表示中,表项通常是一状态的集合,而在DFA的矩阵表示中,表项是一个状态,NFA到相应的DFA的构造的基本思路是: DFA的每一个状态对应NFA的一组状态。 一、NFA确定化算法(NFA→DFA的转换): 二、定义对状态集合I的几个有关运算: 状态集合I的有关运算的例子 三、构造NFA N的状态K的子集的算法: 例子 等价的DFA 5 确定有穷自动机的化简 一、最小状态DFA的含义: 例子 二、“分割法”(逐步分组试探法) 三、 DFA的最小化算法 6 正规式与有穷自动机的等价性 定理: 对于?上的NFA M,可以构造一个?上的正规式R,使得L(R)=L(M)。 对于?上的任一个正规式R ,可以构造一个?上的NFA M ,使得L(M)=L(R)。 把?上的NFA M转换为一个?上的正规式R 三、从?上的正规式R 构造一个?上的NFA M,使得L(M)=L(R) 7 正规文法与有穷自动机的等价性 定理: 对于给定的正规文法G[R],可以直接构造一个NFA M,使得L(M)=L(G)。 对于?上的任一个NFA M ,可以直接构造正规文法G[R] ,使得L( R )=L( M )。 把给定的正规文法G[R]转换为一个?上的NFA M构造规则: 把给定的?上的NFA M转换为一个正规文法G[R]的构造规则: 3.4 词法分析程序的自动构造 对于Σ*中的任何一个串t,若存在一条从某一初态结到某一终态结的道路,且这条道路上所有弧的标记字依序连接成的串(不理采那些标记为ε的弧)等于t,则称t可为NFA M所识别(读出或接受)。若M的某些结既是初态结又是终态结,或者存在一条从某个初态结到某个终态结的道路,其上所有弧的标记均为ε,那么空字可为M所接受。 NFA M所能接受的符号串的全体记为 L(M)。 ?上一个符号串集V???是正规的,当且仅当存在一个?上的不确定的有穷自动机M,使得V=L(M)。 显然, DFA是NFA的特例。 对于每个NFA M,存在一个DFA M’ ,使得L( M ) =L( M’ )。对每个NFA M存在着与之等价的DFA M’。 即:对于任何两个有穷自动机M和M’,如果L( M )=L( M’ ),则称M与M’是等价的。 有一种算法,将NFA转换成接受同样语言的DFA

文档评论(0)

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

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

1亿VIP精品文档

相关文档