- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
 - 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
 - 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
 
                        查看更多
                        
                    
                * 2、表驱动的词法分析程序 表驱动的词法分析程序的模型如图3.32所示。它由输入字符序列、分析表和控制程序组成。分析表就是DFA的状态转换矩阵,如图3.33。控制程序有两个参数,一个参数接受扫描的字符a,另一个参数为DFA的状态i。 输入字符序列  分析表  控制程序  图3.32表驱动的词法分析程序的模型            Σ  状态   0  1     S* B A    A C S    B S C    C A B 图3.33分析表  * 输入字符序列  分析表  控制程序  图3.32表驱动的词法分析程序的模型            Σ  状态   0  1     S* B A    A C S    B S C    C A B 图3.33分析表  ?其控制程序的算法是:  1)在输入字符序列后面加一个字符‘#’,叫结束符。将扫描指针设在输入序列的最左端,状态参数i设为开始状态。 2)?扫描下一字符a,如果是结束符‘#’,则停止;否则,根据状态参数I和输入的字符a查分析表,将状态参数i设为查分析表(i,a)后得到的状态。 3)?如果i是终态,则表示识别出一个单词转到4;否则,转到2。 4)处理识别出的单词,输出单词符号。状态参数i设为开始状态,转到2。  * 3.7 词法分析程序的自动生成器LEX  构造词法分析器的一般步骤: 1)?用正则表达式对程序设计语言单词组成进行描述。 2)为每一个正则表达式构造一个不确定的有穷自动机,用来识别正则表达式描述的语言。 3)将构造的不确定的有穷自动机转换成等价的确定的有穷自动机。 4)简化确定的有穷自动机,是其状态数最少。 5)从优化后的确定的有穷自动机构造词法分析程序。   其中的每一步在前面都有详细的介绍,可以借助成熟的算法实现,这样我们就可以将这些算法组合起来形成词法分析程序生成器。生成器的输入是描述程序设计语言单词符号的正则表达式,输出就是能够识别单词符号的词法分析程序。  * 3.7 词法分析程序的自动生成器LEX     LEX(lexical Ananlyzer Generator)是一个词法分析程序的自动生成器。LEX 是1972年贝尔实验室首先在UNIX上实现的。FLEX(Fast lexical Ananlyzer Generator)是对LEX的扩充,它可在MS-DOS下运行。本书中实际使用的是FLEX,但我们仍称呼LEX。LEX能根据给定的正则表达式自动生成相应的词法分析程序。LEX的输入是用LEX语言写的源程序,生成一个用C语言描述的词法分析器,所以LEX本身就相当于LEX语言的编译程序。LEX生成的目标程序包含一个状态转换矩阵和一个控制执行程序。  * 3.7 词法分析程序的自动生成器LEX 使用LEX的流程如图3.34所示。  LEX源程序  LEX  YYLEX.C  YYLEX.C C编译器   YYLEX.EXE  字符串源程序  YYLEX.EXE 符号串源程序 图3.34 LEX使用流程  LEX源程序是使用LEX语言编写的词法规则说明,经过LEX编译后形成目标文件YYLEX.C,再用C编译器对YYLEX.C进行编译,生成目标程序YYLEX.EXE,它就是词法分析程序。用YYLEX.EXE就可以将字符串源程序转换成符号串源程序。  * 本章重要知识点 状态转换图 闭包 正规式 确定的有限自动机(DFA) 不确定的有限自动机(NFA) * 作业 第3章 习题1~5 编写一个词法分析器程序   要求:语法规则自定,可参考c语言语法         提交实验报告一份 * 附:考研例题 (清华) 1、字母表{a,b}上的正规式R=(ba|a)*,构造R的相应DFA。 2、将上题的DFA最小化。 3、给出与上题正规式定义同样正规集的正规文法。 4、将下面的NFA确定化(图略)。 (北航) 1、将下列非确定有穷自动机NFA转换为确定有穷自动机DFA,并构造一个正则文法,使得它的句子正是该自动机接受的字符串。 2、设已知文法G=({W,A},{a,b},P,W),其中P={W?Wb,W?Ab,W?b,A?Aa,A?a},试解答以下问题:1)构造接受该文法所产生语言L(G)的DFA;2)写出L(G)(用集合表示)。 * 为正规式(a|b)*a(a|b)构造一个确定的有限自动机(中国科学院计算技术研究所) 写出下列DFA所识别的正规式。(南开) 写出正规式(a|b)*(aa|bb)(a|b)*的DFA(南开) 请写出在∑={a,b}上,不是a开头的,以aa结尾字符串集合的正规表达式,并构造与之等价状态最少的DFA。(上海交大) 给出下图所示的自动机描述的语言(图略)。 (中国科学院软件研究所) 把如图所示的不确定有限自动机化为确定的有限自动机(
                您可能关注的文档
最近下载
- 2023年资料员资格考试题库答案下载.docx
 - 人教版小学语文四年级上册第二单元试卷及答案.pdf VIP
 - 安全与急救(四川警察学院)超星尔雅学习通网课章节测试答案.doc VIP
 - 铁总工电〔2018〕125号普速铁路桥隧建筑物修理规则.docx VIP
 - 煤岩复合体能量传递特性与动力灾害关联性.docx VIP
 - 高血压的危害及有效的降压方法.pptx VIP
 - 生涯发展报告.pdf VIP
 - 数学活动 月历中的奥秘及和为定值的两数积的规律 2025-2026学年人教版数学八年级上册.docx
 - 2026教育部教育技术与资源发展中心(中央电化教育馆)招聘3人(非事业编)笔试备考试题及答案解析.docx VIP
 - 弱电施工方案.doc VIP
 
原创力文档
                        

文档评论(0)