首页 > 知识点
       词法分析
知识路径:  > 计算机系统基础知识  > 计算机软件知识  > 程序设计语言和语言处理程序知识  > 汇编、编译、解释系统的基础知识和基本工作原理  > 编译程序的基本原理
被考次数:28次     被考频率:高频率     总体答错率:33%     知识难度系数:     
考试要求:掌握      相关知识点:6个      


>>  更多  本知识点历年真题      
        1)正规表达式和正规集
        对于字母表∑,其上的正规表达式(也称正则表达式,简称正规式)及其表示的正规集可以递归定义如下。
        (1)ε是一个正规式,它表示集合L(ε)={ε}。
        (2)若a是∑上的字符,则a是一个正规式,它所表示的正规集为{a}。
        (3)若正规式rs分别表示正规集L(r)和L(s),则
        ①r|s是正规式,表示集合L(r)∪L(s)。
        ②r.s是正规式,表示集合L(r)L(s)。
        ③r*是正规式,表示集合(L(r))*
        ④(r)是正规式,表示集合L(r)。
        仅由有限次地使用上述3个步骤定义的表达式才是∑上的正规式,其中运算符"|"".""*"分别称为"或""连接"和"闭包"。若两个正规式表示的正规集相同,则认为两者等价。
        2)有限自动机
        有限自动机是一种识别装置的抽象概念,它能够正确地识别正规集。
        (1)确定的有限自动机。
        一个确定的有限自动机(DFA)是个五元组:(S,∑,fs0Z),其中:
        ①S是一个有限集,其每个元素称为一个状态。
        ②∑是一个有限字母表,其每个元素称为一个输入字符。
        ③f是从S×∑→S上的单值部分映像。
        ④s0S是唯一的一个开始状态。
        ⑤Z是非空的终止状态集合。
        一个DFA可以用两种直观的方式表示,即状态转换图和状态转换矩阵。状态转换图简称为转换图,它是一个有向图。DFA中的每个状态对应转换图中的一个节点,DFA中的每个转换函数对应图中的一条有向弧,若转换函数为f(A,a)=Q,则该有向弧从节点A出发,进入节点Q,字符a是弧上的标记。状态转换矩阵可以用一个二维数组M表示,矩阵元素的行下标表示状态,列下标表示输入字符,M[A,a]的值是当前状态为A、输入为a时应转换到的下一状态。在转换矩阵中,一般以第一行的行下标所对应的状态作为初态,而终态则需要特别指出。
        (2)不确定的有限自动机。
        一个不确定的有限自动机(NFA)也是一个五元组,它与确定的有限自动机的区别如下。
        ①f是从S×∑→2S上的映像。对于S中的一个给定状态及输入符号,返回一个状态的集合。
        ②有向弧上的标记可以是ε。
        显然,DFA是NFA的特例。
        实际上,对于每个NFAM,都存在一个DFAN,且L(M)=L(N)。
        对于任何两个有限自动机M1M2,如果L(M1)=L(M2),则称M1M2是等价的。
        3)NFA到DFA的转换
        设NFAN=(S,∑,f,s0Z),与之等价的DFAM=(S',∑,f',q0,Z'),用子集法将非确定的有限自动机确定化的算法步骤如下。
        (1)求出DFAM的初态q0,此时S'仅含初态q0,并且没有标记。
        (2)对于S'中尚未标记的状态qi={si1,si2,…,sim}和sij∈(j=1,2,…,m)进行下述处理。
        ①标记qi
        ②对于每个a∈∑,令T=f(si1,si2,…,sim,a),qj=ε_CLOSURE(T)。
        ③若qi尚不在S'中,则将qj作为一个未加标记的新状态添加到S',并把状态转换函数f'(qi,a)=qj添加到DFAM
        (3)重复步骤(2),直到S'中不再有未标记的状态时为止。
        (4)令Z'={q|qS'且qZ≠?}。
        注:I是NFAN的状态集合的一个子集,其中ε_CLOSURE(I)的定义如下。
        ①状态集I的ε_CLOSURE(I)是一个状态集。
        ②状态集I的所有状态属于ε_CLOSURE(I)。
        ③若sI中,那么从s出发经过任意条ε弧到达的状态s'都属于ε_CLOSURE(I)。
        从NFA转换得到的DFA不一定是最简化的,可以通过等价变换将DFA进行最小化处理。
        4)正规式与有限自动机之间的转换
        (1)对于∑上的NFAM,可以构造一个∑上的正规式R,使得L(R)=L(M)。
        构造过程分以下两步进行。
        ①在M的状态转换图中加两个节点xy
        ②按下图所示的方法逐步消去M中的除xy的所有节点。
        
        状态转换图(消去中间节点)
        (2)对于∑上的每一个正规式R,可以构造一个∑上的NFAM,使得L(M)=L(R)。
        (3)构造过程分两步进行。
        ①对于正规式R,可用如下图所示的拓广状态图表示。
        
        拓广状态图
        ②通过对正规式R进行分裂并加入新的节点,逐步把图转变成每条弧上的标记是∑上的一个字符或ε,转换规则如下图所示。
        
        状态转换图(加入新节点)
        5)词法分析器的构造
        词法分析器的构造过程如下。
        (1)用正规式描述语言中的单词构成规则。
        (2)为每个正规式构造一个NFA,用于识别正规式所表示的正规集。
        (3)将构造出的NFA转换成等价的DFA。
        (4)对DFA进行最小化处理,使其最简。
        (5)根据DFA构造词法分析器。
 
   本知识点历年真题:
隶属试卷 题号/题型 题干 难度系数/错误率
   2024年下半年
   软件设计师
   上午试卷 综合知识
第31题
选择题
下图所示的有限自动机中,0是初始状态,3是终止状态,该自动机可以识别(22)。
   2024年上半年
   软件设计师
   上午试卷 综合知识
第10题
选择题
正规集(ab|c)(1|2|3),可以识别的字符种类有(  )个,下列(  )可被匹配

26%
>>  更多  本知识点历年真题
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

QQ 486577830

点击这里给我发消息

商务合作

QQ 486577830

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2026 All Rights Reserved 软考在线版权所有