컴파일 원리 (3) 직접 좌귀속과 간접 좌귀속의 해소

1426 단어 컴파일링 원리
  • 문법 분석을 할 때 위에서 아래로 분석하는 방법(시작부호부터 추문)을 사용하면 문법이 왼쪽으로 돌아가는 것이 아니라 왼쪽으로 돌아가는 것이 아니라면 왼쪽으로 돌아가는 것을 제거해야 한다. 따라서 왼쪽으로 돌아가는 것은 위에서 아래로 가는 문법에 있을 뿐이다.다음은 왼쪽으로 돌아가는 두 가지 해소 방법을 설명하면 없어진다.
  •  
  • 좌귀속의 분류
  • 직접 좌회전: P→Pa 여기는 당연히 뒤에 하나|b가 있는
  • 소개 좌회전: P→Aa, A→...→Pb
  •  
  • 직접 좌귀속의 해소


  • 이 공식은 한사코 기억하는 것인데 어떻게 기억합니까?기억을 이해하다.먼저 이 형식을 쓴 다음에 b가 틀림없이 시작할 것이다. 바로 이렇다.
    P->Pa|b는 원래 왼쪽 귀속식이다. 틀림없이 b가 있을 것이다. 그렇지 않으면 영원히 귀속될 것이다
  • P  →  bP';
    P'  →  aP' | ε;
    
  • 더 일반화된 형태는 P→PX|Y(그 중에서 X와 Y는 하나의 전체로 간주한다. 예를 들어 P→Pabc|ab|b, X는 abc, Y는 ab|b)이고 다음과 같은 형식으로 요약할 수 있다.
  • P  →  YP';         :P  →  abP' | b P'
    P'  →  XP' | ε;    : P'  →  abcP' | ε

    간접 좌귀속의 해소

  • P→Aa | x1, A→...→ Pb | x2의 경우
  • 무슨 뜻이냐면 왼쪽으로 돌아가는 부분이 있고 모든 규정이 한 식으로 되어 있다. 이렇게 하면 직접 돌아가는 것이 되고 하면 된다. 물론 먼저 무용 기호를 삭제한다.아래에서 위로 제거하여 마지막에 알파벳 하나만 남기고 완성했다
  • 다음과 같은 문법이 존재하고 왼쪽 귀속 1을 제거한다) S→Qc | c 2) Q→Rb | b 3) R→Sa | a
  • S  →  Sabc |abc | bc | c
    ∴  X = abc,Y = abc | bc | c
    ∴  :
    S  →  abcS' | bcS' | cS'
    S'  → abcS' | ε
    

    5) 이 중 도달할 수 없는 비종결자를 삭제한다. 여기가 바로 Q, R이다.
    ∴ 최종적으로 좌귀환을 제거한 결과는
     
    S  →  abcS' | bcS' | cS'
    S'  → abcS' | ε

    이것은 위에서 아래로의 LL 문법에 나타난 문제다.어렵지 않아요.

    좋은 웹페이지 즐겨찾기