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

第4章 词法分析幻灯片.ppt

  1. 1、本文档共68页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 4.6 词法分析程序的自动构造 词法分析总控程序见图4.15。 界限符 运算符 字母 数字 结束符“#” 开始 到输入流中读下一字符?Char Char是什么? 初始化 标识符和关键字 词法分析子程序 无符号数 词法分析子程序 运算符 词法分析子程序 界限符 词法分析子程序 结束 图4.15 词法分析总控程序 若对自动机的每一个状态赋予一定的功能,并把其边上的符号视为转移条件,那么自动机就成为一个程序了。以无符号数为例:给定语法图4.16,构造自动机见图4.17。 d . d e + - d 图4.16 无符号数的语法图 图4.17 无符号数的自动机 1 2 3 4 5 6 0 ? d d + ε - . e d . other other d d other e d 7 e 开始 0?N,P,j; 1?e 数字?d; N*10+d?N 是数字? Y 读字符?char N Y N 整型量 标记?C1 是’-’吗? 读字符?char 是’e’吗? 是’-’吗? -1?e 读字符?char Y N Y N 读字符?char 是数字? Y 数字?d;N*10+d?N; j+1?j 是数字? Y 读字符?char ERROR N N 实型量 标记?C1 是数字? Y 数字?d; P*10+d?P Y 读字符?char ERROR N N 实型量标记?C1 N*10e*P-j? t 结束 Y N 整数部分 小数部分 是’.’吗? 是数字? 指数部分 N 图4.18 无符号数词法分析流程图 最后可得到无符号数分析算法流图见图4.18。 实验题目: 单词的词法分析程序设计 作业 72页练习:2题,4题 * * * * * * * * * * * * * * * * * * * * * * * * * * * 如果一个DFA M的输入字母表为Σ,则我们也称M是Σ的一个DFA。 换言之: 若t∈Σ* ,f (S,t) =P,其中S为DFA M的初态,P∈Z,Z为终态集。则称t 可为DFA M所接受(识别)。 结论:Σ上的一个字集V?Σ*是正规的,当且仅当存在Σ上的DFA M,使得V=L( M)。 ∑*上的符号串t 在DFA M上运行: 一个输入符号串t,(将它表示成T t1的形式,其中T∈∑, t1 ∈ ∑*)在DFA M=(K,Σ,f,S,Z)上运行的定义为: f(Q, Tt1)=f(f(Q,T),t1),其中Q∈K; 扩充转换函数f 为 K×Σ*→K上的映射,且: f(ki, ? )= ki 例:证明t=baab被下图的DFA所接受。 b S U V Q a b b b,a a a ? 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的确定性表现两个方面: 1. 映射f:K?Σ→K是一个单值函数。也就是说,对任何状态s∈K和输入符号a∈Σ,f(s,a)唯一地确定了下一状态。从转换图的角度来看,假定字母表Σ含有n个输入字符,那么,任何一个状态结最多只有n条弧射出,而且每条弧以一个不同的输入字符标记。 2. DFA有且仅有唯一的一个初态s0∈K 。 §4.3.2 非确定的有穷自动机NFA 1. K是一个有穷集,它的每个元素称为一个状态; 2. Σ是一个有穷字母表,它的每个元素称为一个输入符 号,所以也称Σ为输入符号表; 3. f 是状态转换函数,是在K×Σ*→K的子集的映射,即,f: K×Σ*→2K ;表明在某状态下对于某输入符号可能有多个后继状态; 5. Z ? K是一个终态集(可空)。 4. S ? K是一个非空初态集; 一、NFA定义: 一个非确定的有穷自动机(NFA)M是一个五元组: M=(K,Σ,f,S ,Z),其中: 二、一个NFA 的例子: NFA M=({S,P,Z},{0,1},f,{S,P},{Z}) 其中 : f(S,0)={P} f(Z,0)={P} f(P,1)={Z} f(Z,1)={P} f(S,1)={S,Z} S P Z 0 0,1 1 1 1 状态图表示 ? ? 矩阵表示 简化为 0 1 S P S,Z 0 P Z 0 Z P P 1 ? + ?

文档评论(0)

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

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

1亿VIP精品文档

相关文档