开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第18天,点击查看活动详情
确定有限自动机(DFA)
一个确定有限自动机(DFA)M是一个五元式M=(S,Σ,∂,s0,F)
S是一个有限集,它的每个元素称为一个状态,
Σ是一个有穷字母表,它的每个元素称为一个输入字符,
∂是一个从SxΣ至S的单值部分映射。∂(s,a)=s',意味着:当现行状态为s、输入字符为a时,将转换到下一个状态s'。我们称s'为s的一个后继状态,
s0∈S,是唯一的初态,
F⊆S,是一个终态集(可空),
显然,一个 DFA可用-一个矩阵表示,该矩阵的行表示状态,列表示输入字符,矩阵元素表示∂(s,a)的值。这个矩阵称为状态转换矩阵。
非确定有限自动机(NFA)
一个非确定有限自动机(NFA)是一个五元式M=(S,Σ,∂,S0,F)
S、Σ同上,
∂是一个从SxΣ到S的子集的映照,即∂:SxΣ→2^S,
S0⊆S,是一个非空初态集,
F⊆S,是一个终态集(可空)。
正规式与有限自动机的等价性:
(1)对任何FA M,都存在一个正规式r,使得L(r)=L(M)。
(2)对任何正规式r,都存在一个FA M,使得L(M)= L(r)。
确定有限自动机的化简:寻找一个状态数比M少的DFA M',使得L(M)=L(M')。
语法分析器的功能:语法分析是编译过程的核心部分。它的任务是在词法分析识别出单词符号串的基础上,分析并判定程序的语法结构是否符合语法规则。
自上而下分析面临的问题
顾名思义,自上而下就是从文法的开始符号出发,向下推导,推出句子。
自上而下分析的主旨是,对任何输入串,试图用一切可能的办法,从文法开始符号(根结)出发,自上而下地为输入串建立一棵语法树。或者说,为输入串寻找一个最左推导。这种分析过程本质上是一种试探过程,是反复使用不同产生式谋求匹配输入串的过程。