Automata Theory 简明教程
Pushdown Automata Introduction
Basic Structure of PDA
下推自动机是一种以与我们为正规语法设计DFA类似的方式实现无上下文语法的途径。一个DFA可以记忆有限量的信息,而一个PDA可以记忆无限量的信息。
基本上,下推自动机为 −
"Finite state machine" + "a stack"
一个下推自动机有三个组件 −
-
an input tape,
-
a control unit, and
-
具有无限大小的栈。
栈头扫描栈的顶端符号。
栈执行两种操作 −
-
Push − 在顶部添加一个新的符号。
-
Pop − 读取并移除顶端符号。
一个PDA可以读取或不读取一个输入符号,但它必须在每个转换中读取栈的顶部。
PDA 可以形式化描述为一个 7 元组 (Q, ∑, S, δ, q0, I, F)
-
Q 是有限状态数
-
∑ is input alphabet
-
S is stack symbols
-
δ 是转换函数:Q × (∑ ∪ {ε}) × S × Q × S*
-
q0 是初始状态(q0 ∈ Q)
-
I 是初始栈顶符号(I ∈ S)
-
F 是接受状态的集合(F ∈ Q)
下图展示了一个 PDA 从一个状态 q1 到状态 q2 的转换,标记为 a,b → c
这意味着在状态 q1 ,如果我们遇到一个输入字符串 ‘a’ 且栈顶符号是 ‘b’ ,则我们弹出 ‘b’ ,入栈 ‘c’ 至栈顶,并移至状态 q2 。