저는 이것이 일반적인 질문이 아니라는 것을 알고 있습니다. 그러나 나는 이미 약간의 작업을하고있는 예제를 가지고 그것을 어떻게 수행하는지 알고 싶습니다. 그것 ... 한 번이 말했다 :람다 프로덕션의 단순화, 단항 규칙 및 문법의 유용하지 않은 기호
나는 다음과 같은 문법을 가지고있다. 나는 그것을 단순화하려고 노력했지만 그 정확성을 확신 할 수 없다. 누군가 올바른지 아닌지를 확인해 줄 수 있을까? 나는 비 유용 상징을 제거 할 필요가 마침내
S -> BC | B | C
A -> aA | a
B -> bB
C -> c
그리고 : 나는 같은 것을 가지고 어디 처음 람다 검진을 적용 문법 단순화해야하는 경우
S -> BC | lambda
A -> aA | lambda
B -> bB
C -> c
을 첫째로 나는 사람을 제거 불필요한이기 때문에
S -> BC | bB | C
A -> aA | a
B -> bB ---> non-productive
C -> c
S -> C | b | C
A -> aA | a --> unreacheable
C -> c
마지막으로 나는 이런 식으로 뭔가를 내가 C 제거 있습니다 .. unreacheable있는 것들 그럼 생산적이고되지 않습니다 d 나는 또한 제거 되었기 때문에 BC를 제거합니다. 그래서 다음과 같아야합니다 : S -> b | C
그러나 내가 정직하면 내가 무슨 짓을했는지는 정확하다고 생각하지 않습니다하지만 난 몰라 정확히
비 터미널이 비생산적인 경우 해당 비 터미널을 나타내는 생산도 마찬가지입니다. 빈 문자열을 파생 한 척 할 수는 없습니다. – rici