컴파일러 오세훈(저) 연습문제 7장 대학교재솔루션 솔루션

컴파일러 오세훈(저) 연습문제 7장 대학교재솔루션 솔루션




컴파일러 오세훈(저) 연습문제 7장 대학교재솔루션

컴파일러 오세훈(저) 연습문제 7장 솔루션


# 7장 연습문제 #

7.4 다음과 같이 문법이 주어졌을 때, 각 nonterminal에 대한 FIRST와 FOLLOW를 구하시오.
(1) S → aRTb | bRR
R → cRd |
T → RS | TaT
FIRST(S) = {a,b}
FIRST(R) = {c,}
FIRST(T) =
FIRST(T) = FIRST(T) ∪(FIRST(RS)∪FIRST(TaT))
= FIRST(T) ∪(FIRST(R) FIRST(S))∪
(FIRST(T) FIRST(a) FIRST(T))
= ∪ ({c,} {a,b}) ∪ ({ {a} )
= ∪ {a,b,c} ∪
= {a,b,c}
∴ FIRST(S) = {a,b}
FIRST(R) = {c,}
FIRST(T) = {a,b,c}
S → aRTb | bRR (알고리즘 방법 1 적용)
FOLLOW(S) = {$}
S → aRTb (알고리즘 방법 2 적용)
FOLLOW(R) = FOLLOW(R) ∪ (FIRST(Tb) - {})
= FOLLOW(R) ∪ ((FIRST(T) FIRST(b)) - {})
= ∪ {a,b,c}
= {a,b,c}
S → aRTb (알고리즘 방법 2 적용)
FOLLOW(T) = FOLLOW(T) ∪ (FIRST(b) - {})
= ∪ {b}
= {b}
S → bRR (알고리즘 방법 2 적용)
FOLLOW(R) = FOLLOW(R) ∪ (FIRST(R) - {})
= {a,b,c} ∪ {c}
= {a,b,c}
R → cRd (알고리즘 방법 2 적용)
FOLLOW(R) = FOLLOW(R) ∪ (FIRST(d) - {})
= {a,b,c} ∪ {d}
= {a,b,c,d}
T → RS (알고리즘 방법 2 적용)
FOLLOW(R) = FOLLOW(R) ∪ (FIRST(S



자료출처 : http://www.ALLReport.co.kr/search/Detail.asp?pk=17038911&sid=knp868group1&key=

댓글

이 블로그의 인기 게시물