반응형
FIRST(a)
G : context-free 문법
FIRST(α) = {x ∈VT | α-(*)->xβ, β∈V*}
의미: 문자열 α로부터 유도되어 첫 번째로 나타날 수 있는 터미널 기호들의 집합
계산방법
(1) {X} ∈VT , {X} ∈ FIRST(X)
(2) X ∈VN, X → aβ , {a} ∈ FIRST(X)
X → ε , {ε} ∈ FIRST(X)
(3) X → Y1Y2 … Yk
FIRST(X)=FIRST(X)∪FIRST(Y1Y2… Yk)
FIRST(α) = {x ∈VT | α-(*)->xβ, β∈V*}
의미: 문자열 α로부터 유도되어 첫 번째로 나타날 수 있는 터미널 기호들의 집합
계산방법
(1) {X} ∈VT , {X} ∈ FIRST(X)
(2) X ∈VN, X → aβ , {a} ∈ FIRST(X)
X → ε , {ε} ∈ FIRST(X)
(3) X → Y1Y2 … Yk
FIRST(X)=FIRST(X)∪FIRST(Y1Y2… Yk)
Nullable
A -> ε이면 A는 nullable 하다.
ring sum Å
e Î A이면 AÅB는 A이고,
e Ï A이면 AÅB는 ( A - {e} ) È B이다.
FIRST(ABC) = FIRST(A) Å FIRST(B) Å FIRST(C)
e Ï A이면 AÅB는 ( A - {e} ) È B이다.
FIRST(ABC) = FIRST(A) Å FIRST(B) Å FIRST(C)
FOLLOW(A)
G : context-free 문법
Non-terminal A의 FOLLOW(A)의 정의
FOLLOW(A) = {a ∈ VT ∪ {$}| S-(*)->αAaβ, α,β∈V*}
의미: Non-terminal다음에 나타나는 터미널 기호들의 집합. $는 입력문자열의 끝을 나타냄
계산방법
(1) if A = 출발기호, $ ∈ FOLLOW(A)
(2) if B → αAβ, β≠ε,
FOLLOW(A) ⊃ FIRST(β) (ε 제외)
(3) if B → αAβ & β -(*)→ ε,
FOLLOW(A) ⊃ FOLLOW(B)
Non-terminal A의 FOLLOW(A)의 정의
FOLLOW(A) = {a ∈ VT ∪ {$}| S-(*)->αAaβ, α,β∈V*}
의미: Non-terminal다음에 나타나는 터미널 기호들의 집합. $는 입력문자열의 끝을 나타냄
계산방법
(1) if A = 출발기호, $ ∈ FOLLOW(A)
(2) if B → αAβ, β≠ε,
FOLLOW(A) ⊃ FIRST(β) (ε 제외)
(3) if B → αAβ & β -(*)→ ε,
FOLLOW(A) ⊃ FOLLOW(B)
반응형
'B1:기초 Basement' 카테고리의 다른 글
구글로 파일 찾기 (0) | 2006.12.15 |
---|---|
U.K. considers wiki to ease patent bottleneck (0) | 2006.12.15 |
객체지향과 객체기반 (0) | 2006.12.10 |
불필요한 생성규칙 ( useless production ) (0) | 2006.12.10 |
유도 트리 (derivation tree) (0) | 2006.12.10 |