2011-09-12 4 views
4

에 대한 문법을 ​​찾기 :다음 언어에 대한 문법을 ​​찾아 다음 언어

  1. 는 * B |

  2. (A * B는 | B * A) *

나는 1에 대한 답이 있다고 생각 (S를 ->로 | B)하지만 두 번째에 꽤 혼란 스러워요. 어떤 도움이라도 대단히 감사하겠습니다.

+3

# 1에 대한 귀하의 '대답'은 a로 종료 할 수있는 방법이 없으므로 그 대답을 다시 작성하는 것이 좋습니다. – jbranchaud

답변

1

언어; (A * B는 | B * A)는 *

S -> SA | episilon 

A는 여기 나타내는 (A * B를을 | B * a)

A -> B 
A -> C 

B는 (a *의 b)

를 나타낸다
B -> [Insert rule here] 

C는 대표 (b * a)

C -> [Insert rule here] 
2

전체 표현식을 (a*b | b*a)*으로 간주하고 각 요소 (예 : a*b은 하나이고 b*a은 다른 것임)를 별도의 비 -terminal로 간주합니다.

힌트 :

S -> ε | ST 
T -> [rule for a*b] | [rule for b*a] 

T 브래킷 내부의 것입니다.

+1

+1 누군가에게 프로세스를 제공합니다. –