[컴파일러] 문맥자유문법(CFG)에서 좌측유도와 우측유도

2022. 9. 24. 16:12·컴파일러

좌측유도와 우측유도

문맥자유문법에 대한 유도에서 nonterminal을 어느 순서로 대체해나갈 것인가에 따라 "좌측유도"와 "우측유도"가 있다.

좌측으로 유도하든지 우측으로 유도하든지 적용된 생성규칙은 동일하다.

다만 생성규칙들이 적용된 순서가 다를 뿐이다.

 

 

예시

아래 예제를 통해 좌측유도, 우측유도를 구해보고,

적용된 생성규칙을 살펴보자.

 

:: 문제 :: 

문자열  a + a * a  에 대해

아래와 같은 생성규칙들이 있다.

1. E -> E + T
2. E -> T
3. T -> T * F
4. T -> F
5. F -> ( E )
6. F -> a
좌측유도와 우측유도를 구하시오

 

:: 풀이 ::
- 좌측유도

E => E + T  (규칙1)

  => T + T  (규칙2)

  => F + T  (규칙4)

  => a + T  (규칙6)

  => a + T * F  (규칙3)

  => a + F * F  (규칙4)

  => a + a * F  (규칙6)

  => a + a * a  (규칙6)

 

- 우측유도

E => E + T  (규칙1)

  => E + T * F  (규칙3)

  => E + T * a  (규칙6)

  => E + F * a  (규칙4)

  => E + a * a  (규칙6)

  => T + a * a  (규칙2)

  => F + a * a  (규칙4)

  => a + a * a  (규칙6)

 

 

이때 '적용된 생성규칙 종류와 수'를 관찰해보자.

좌측유도일 경우 : 12463466

우측유도일 경우 : 13646246

 

규칙1 : 1

규칙2 : 1

규칙3 : 1

규칙4 : 2

규칙6 : 3

 

결론 : 좌측유도와 우측유도에서 적용된 생성규칙은 동일하다. 순서만 다르다. 

 

 

 

 


공부배경 : 

컴파일러개론 구문분석을 위한 "유도"를 공부중이다.

 

 

참고 : 

http://www.aistudy.co.kr/linguistics/free_linz.htm

반응형

'컴파일러' 카테고리의 다른 글

[컴파일러] LL파싱과 Follow set  (1) 2022.09.26
[컴파일러] LL파싱과 First set  (1) 2022.09.24
[컴파일러] 구문분석, Top down과 Bottom up  (1) 2022.09.24
[컴파일러] 구문을 나타내는 방법, Context Free Grammar (CFG, 문맥자유문법)  (2) 2022.09.15
[컴파일러] FSM(유한상태기계, 유한상태오토마타(FSA)) | 정규표현식 인식 방법  (2) 2022.09.07
'컴파일러' 카테고리의 다른 글
  • [컴파일러] LL파싱과 First set
  • [컴파일러] 구문분석, Top down과 Bottom up
  • [컴파일러] 구문을 나타내는 방법, Context Free Grammar (CFG, 문맥자유문법)
  • [컴파일러] FSM(유한상태기계, 유한상태오토마타(FSA)) | 정규표현식 인식 방법
히어로맛쿠키
히어로맛쿠키
  • 히어로맛쿠키
    yeny_lab
    히어로맛쿠키
  • 전체
    오늘
    어제
    • 분류 전체보기 (389)
      • 미분류글 (32)
        • ㅇ (2)
      • JAVA (84)
        • Effective Java (1)
        • Application (21)
      • 컴퓨터구조 & OS (28)
      • 자료구조 + 알고리즘 (43)
      • Database (12)
      • 컴파일러 (10)
      • 수학 (33)
        • 미분방정식 (12)
      • 데이터분석과 머신러닝 (38)
      • 기타 (59)
      • yyeeennyy (25)
  • 공지사항

    • ^o^/♡
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
히어로맛쿠키
[컴파일러] 문맥자유문법(CFG)에서 좌측유도와 우측유도
상단으로

티스토리툴바