- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
正规式和自动机的等价性可使它们之间进行转换,正规文法和有穷自动机也可从正规文法G直接构造一个有穷自动机NFA M,使得 L(M)=L(G): ①字母表与G的终极符集相同; ②为G中的每个非终极符生成M的一个状态,G的开始符号S的开始状态S; ③增加一个新状态Z,做为NFA的终态; ④对G中的形如A → t B其中t为终极符或ε,A和B为非终极符的产生式,构造M的一个转换函数f(A,t)= B; ⑤对G中形如A → t的产生式,构造M的一个转换函数f(A,t)= Z。 4.5 正规文法和有穷自动机的转换 A aB B bA B aS B bA B ? 转换函数f(A,t)=B 可写产生式A tB 对可接受状态Z, 增加一产生式: Z ? 例4.13 给出下图NFA M等价的正规文法: A- aB A- bD B- bC C- aA C- bD C- ? D- aB D- bD D- ? 转换函数f(A,t)=B 可写产生式A tB 对可接受状态Z, 增加一产生式: Z ? 根据: LEX是由美国Bell实验室的M.Lesk和Schmidt于1975年用C语言研制的一个词法分析程序的自动生成工具。对任何高级程序语言,用户必须用正规表达式描述该语言的各个词法类(这一描述称为LEX的源程序),LEX就可以自动生成该语言的词法分析程序。 4.6 词法分析器的自动生成系统 4.6 词法分析器的自动生成系统 lex是一个词法分析器(扫描器)的自动产生系统。它是基于UNIX系统的. Lex编译程序把Lex源程序转换成一个C语言的可运行程序,这个程序放在Lex.yy.c文件中(是个C程序)再经由C编译生成目标文件a.out(词法分析程序)可将输入字符流变成单词流. lex是用一种面向问题的语言写成的。这个语言的核心是正规表达式,用它描述输入串的词法结构。Lex不是一个完整的语言是某种高级语言的扩充。 LEX源程序 词法分析器 L 输入串 单词符号串 Lex读入词法分析器的规格说明,根据此说明生成一个用C语言描述的词法分析器.把描述词法分析器规格说明的语言称为词法分析器设计语言或Lex语言.用Lex语言书写的词法分析器规格说明称为Lex源程序.实用程序Lex把Lex源程序翻译成C语言描述的目标程序,所以通常也称为Lex编译器. LEX及其编译系统的作用如下: 词法分析程序 L LEX编译系统 {辅助定义部分} %% {识别规划部分} %% {用户子程序部分} Lex源程序的格式: Lex的实现: 化简 正规式 → NFA → DFA → DFA → 词法分析程序 1.将每条规则变成一个NFA; 2. Pi { action }:0 Mi Pi 3. 将NFA化为DFA 4.将DFA根据控制规则转化成程序 见例 Xi Pi Xi Xi Pi Pi Mi Mi ε ε ε …… LEX可以用两种方式来使用:一种是将LEX作为一个单独的工具,用以生成所需的识别程序;另一种是将LEX和语法分析器自动生成工具(如YACC)结合起来使用,以生成一个编译程序的扫描器和语法分析器。 小 结 词法分析程序的功能是输入源程序,输出单词符号。 词法分析程序将依据语言词法规则,分析由字符组成的源程序,把它识别为一个个具有独立意义的最小语法单位,即“单词”,并识别出与其相关的属性(如该单词是标识符,是界限符,还是数等等),再转换成长度上统一的标准形式——属性字,最终将字符串形式的源程序改造成为单词符号(属性字)串形式的中间程序,以供其他部分使用。 词法分析程序的输出形式是一个二元式(单词种别,单词符号的属性值)。 单词种别—般可分为5种:保留字、标识符、常数、运算符和界限符。单词符号的属性值是反应单词符号特征或特性的值,如标识符的符号表指针,常数的常数表指针等。 * 基本知识点:词法分析程序的功能,状态转换图,有穷自动机、正规文法、正规表达式的相互转换,词法分析程序的设计方法。 重点:由正规表达式构造确定化的有穷自动机,确定有穷自动机的最小化,词法分析程序的设计方法。 难点:由正规表达式构造确定化的有穷自动机。 第4章 词法分析 第4章 词法分析
文档评论(0)