编译原理复习三

306 阅读2分钟

这是我参与更文挑战的第22天,活动详情查看: 更文挑战

第三章:词法分析

3.1、词法分析程序输出的单词符号的表示

(单词种别,单词自身的值)

3.2、正规式、正规集、服从的代数规律

正规式.jpg

3.3、正规式转正规文法

正规式转正规文法.jpg

3.4、正规文法转正规式

正规文法转正规式.jpg

3.5、有穷自动机定义(考名词解释)

能准确识别正规集,即:识别正规文法所定义的语言和正规式所表示的集合

3.6、确定的有穷自动机(定义考名词解释)

M=(K,,f,S,Z)M=(K,\sum,f,S,Z)

K:有穷集(它的每个元素称为一个状态)

\sum有穷字母表(输入符号表)

f:转换函数

S:SKS\in K,是唯一的初态(用=>)表示

Z:终态集(用双圈表示)

表示:状态图、矩阵

3.7、不确定的有穷自动机(定义考名词解释)

M=(K,,f,S,ZK,\sum,f,S,Z

K:有穷集

\sum有穷字母表

f:从K\sum^ *到K的全体子集的影像*,即:K>2kK*\sum^ *->2^k,其中2k2^k表示K的幂集

S:非空状态集(注意:不确定初始状态可能有多个)

Z:终态集

区别

  • f:确定的有穷自动机表示是转换函数;不确定的有穷自动机表示的是:从K\sum^ *到K的全体子集的影像*
  • S:确定的有穷自动机只有一个初态;不确定的有穷自动机可能有多个初态

3.8、***NFA 转DFA

  • 算法:子集法

  • 步骤

    1. 首先找出初态,初态通过n条ϵ\epsilon可以到达的状态集合,标记为T1

    2. 然后对T1分别通过终结符集合中的终结符,可以到达的若干集合进行标记,如果之前出现过则无需标记;如果没有出现过则标记为新的集合T2,T3...

    3. 不断进行步骤2,直到所有的状态都被标记

    具体看例题

NFA.jpg

DFA.jpg

解题步骤yyds

DFA确定化.jpg

3.9、有穷自动机的化简

目的

  • 消除多余状态
  • 合并等价状态

状态等价的条件:

  • 一致性原则:状态s和t必须同时为可接受状态或不可接受状态
  • 蔓延性原则:对于所有输入符号,状态s和状态t必须转换到等价的状态里

方法:分割法

DFA最小化.jpg

3.10、正规式与有穷自动机的转换

正规式与有穷自动机.jpg

3.11、正规文法与有穷自动机

正规文法与有穷自动机.jpg

**正规式转最小化DFA解题步骤

  1. 转NFA
  2. 确定化
  3. 最小化

正规式转DFA解题1.png 正规式转DFA解题2.png