입력 문자열이 지정된 언어 사양에 맞는지 확인하는 함수를 작성해야합니다. 나는 이것이 표준 CFG -> Chomsky Normal Form, CYK 파싱이라고 생각했지만 언어의 규칙들 중 하나는 이런 일이 일어나지 못하도록 막고있다. 우리는 터미널 {a,b,c,d,e,f,P,Q,R,S}
를 정의하는 경우 언어 사양을 프로덕션 규칙으로 변환 (CFG인지 CSG인지 확실하지 않음)
규칙의 일부
후 유효한 문자열은, 간단1) 분리의 소문자 단말기의 모든
2) 'x'를 다음 유효한 문자열 인 경우 그래서 내지 Sx
이다하지만 X와 Y가 유효한 입력 문자열 인 경우 제 규칙은 그렇게이다)
3 PXY, QXY, RXY
여기서 대문자 {P,Q,R}
나머지 단자 X와 Y는 비끝있다이다.
이 모양의 제작 규칙은 어떻게됩니까?
XY -> PXY (and QXY, RXY)
과 같은 것으로 생각했지만 두 가지 문제가 있습니다. 첫 번째는 이것이 CFG 규칙이 아니라는 것입니다 -이 언어가 CSG를 대신 정의한다는 의미입니까?
그리고 두 번째
이 작동하지 않는다는 것입니다 때문에XY -> PXY - 모든 경우에> PPXY
되지 않을 것 유효한 메시지.
[CSTheory] (http://cstheory.stackexchange.com/)에서 이러한 질문을 시작하십시오. –