5.26 S -> (S)S | ε
(1) top-down 방법 :
P=({q}, { (,) }, { S,(,) }, δ, q, S, Φ)이다.
그리고 δ 함수는 다음과 같이 정의된다.
δ(q, ε, S) = {(q, (S)S), (q,ε)}
δ(q, x, x) = {(q,ε)}, 여기서 x∈{ (,) }.
(2) 스트링 ()(()())의 인식 과정.
(q, ()(()()), S) ⊢ (q, ()(()()), (S)S)
⊢ (q, )(()()), S)S)
⊢ (q, )(()()), )S)
⊢ (q, (()()), S)
⊢ (q, (()()), (S)S)
⊢ (q, ()()), S)S)
⊢ (q, ()()), (S)S)S)
⊢ (q, )()), S)S)S)
⊢ (q, )()), )S)S)
⊢ (q, ()), S)S)
⊢ (q, ()), (S)S))
⊢ (q, )), S)S))
⊢ (q, )), )S))
⊢ (q, ), S))
⊢ (q, ), ))
⊢ (q, ε, ε)
(3) bottom-up 방법 :
R=({q, r}, { (,) }, { S,(,),$ }, δ, q, $, {r})이다.
그리고 δ 함수는 다음과 같이 정의된다.
δ(q, x, ε) = {(q, x)}, 여기서 x∈{ (,) }. // shift
δ(q, ε, (S)S) = {(q, S)} // reduce
δ(q, ε, ε) = {(q, S)} // reduce
δ(q, ε, $S) = {(r, ε)} // accept