2014-05-10 4 views
0

왼쪽 재귀를 할 때 뭔가 궁금합니다.이 질문을했습니다. 그리고 재귀를 떠났을 때 나는 F를 모든 것에 추가했습니다. 우리는 항상 왼쪽에 대해 이렇게합니까 재귀 (나의 선생님은 그것을 잘 설명하지 않았다).왼쪽 재귀 과정 제거

1) 
S -> aSb | bSb | Sc | bc 

left recursion: 
S -> aSbF | bsbF | bcF 
F -> cF | ε 

Factorising: 

S -> aSbF | bX 
X -> aSbFbF | bXbF | cF 
F -> cF | ε 

답변

1

즉각적인 왼쪽 재귀가있을 때마다 그렇게 할 것입니다. 당신이 인 - 직접 재귀, 예를 들어이있는 경우 ..

이 해결하기 위해 긴 하나입니다 ..

이 작업을 수행하지 않을 유일한 다른 시간이 (어디 직접 자신을 호출)

A -> Ba
B -> dab | Cb
C -> cB | Ac

위의 예는 간접적 인 왼쪽 재귀의 예입니다. "C"라는 용어는 A.을 호출합니다.이 경우에는 A의 내용을 C로 옮겨야합니다.

C -> cB | Bac

이 예제를 완료하려면 더 많은 단계가 필요합니다.하지만 결국 C가 호출 할 즉각적인 왼쪽 재귀가 끝납니다.

희망이 도움이됩니다.

조쉬, 데일 및 알리 (컴퓨터 과학자 - MMU 대학교)