PL/오토마타, 컴파일러

[Automata] Pushdown Automata

SweetDev 2021. 12. 17. 16:23

Chapter 7의 내용이다!

 

일단 Pushdown Automata와 그 전의 automata와 가장 크게 다른 점은

pushdown automata는 스택을 사용할 수 있다는 것이다!

 

Nondeterministic Pushdown Automata

Pushdown Automata의 정의

 

M = (Q, Σ, Γ, 𝛿, q_0, z, F)

* Γ 은 감마라고 부른다. 

 

잘 보면 기존에 배웠던 finite automata에서 2가지의 원소가 추가되었다. 

바로 Γ 와 z이다.

 

Q: control unit의 initernal state의 유한 집합Σ: input alphabet

 

Γ: 유한한 개수의 집합인 stack alphabet

𝛿: Q X ( Σ sum {ƛ}) X Γ : transifion function이 Q X Γ* 의 유한 집합이다. 

q_0: Q에 속하는, control unit의 initial state

z: Γ 에 속하는, 스택의 start symbolll

F: Q의 부분집합인, final state의 집합

 

예시로 알아보자!

Q = {q_0, q_1, q_2, q_3}

Σ = {a, b}

Γ  = {0, 1}

z = 0

F = {q_3}

이고 initial state가 q_0이라고 해 보자.

 

𝛿(q_0, a, 0) = {(q_1, 10), (q_3, ƛ)}

...

 

 

Pushdown Automata와 CFG

 

Deterministic Pushdown Automata와 Deterministic CFG