Σ = {0,1}을 통해 다음 언어를 생성하는 컨텍스트없는 문법을 제공하십시오. {w = 0 * 1 * : | w | 0 | | 1 개 A-> 0A |^ B-> (1B) |^ 그러나 사용이 문법 S-> AB : 홀수} 내 솔루션입니다 우리는 짝수 개의 문자열을 생성 할 수 있습니다. 난 L을 생성 할 문법 0100011100101100000111110000
문맥없는 문법의 "첫 번째 집합"을 찾으려고했습니다. 나는 2 개의 답을 찾았지만 그것이 맞는지 확실하지 않다. 누군가이 문법의 첫 번째 세트를 생성하는 방법을 설명 할 수 있다면 고마워 할 것입니다. 두 가지 대답은 내가 읽은 소스에서 다른 구문으로 설명했기 때문에 다른 방식으로 작성되었습니다. 문제 문법 : E1 -> E2+E1|E2
E2 -> num
왜 우리가 Chomsky 표준 형식으로 문법을 변환하고 싶을 때 새로운 시작 상태 S0 -> S를 추가합니까? 우리가 그렇게하지 않으면 어떻게 될까요? 처음에는 그것이 엡실론 규칙 때문이라고 생각했습니다. 그러나 우리는 시작 변수에서 엡실론 규칙을 제거하지 않습니다. 그렇다면 S0 -> S를 추가하면 어떤 이점이 있습니까? 감사합니다.
아래의 기능과 동일한 CFG를 만들려고합니다. 나는 B가 루프 카운터이므로 스택에 푸시 된 일련의 요소 일 수 있으므로 루프가 완료 될 때마다 B의 요소가 팝되고 B가 엡실론을 종료합니다. while 루프의 상단 부분에서 어떻게 추가를 처리합니까? PROCEDURE multiply a, b;
VAR a, b, z;
BEGIN
z := 0;
W
"(" ")"및 ";" 는 어떻게 다음 기준을 충족 S 표현식에 대한 컨텍스트 무료 문법의 생성 규칙을 만들 수 있습니다 은 전체 표현은 "("그와 시작을 의미하고 끝나는 괄호 안에 중첩 된 ")". 식을 왼쪽에서 오른쪽으로 읽는 경우 식 끝의 모든 대괄호 (대괄호 제외)의 양은 닫는 대괄호보다 큽니다. 표현의 끝에서 열린 대괄호의 양은 닫힌 대괄호와 같아
내 교수님은 주어진 언어가 문맥이 없지만 규칙적이 아니거나 컨텍스트 프리가 아닌지 빨리 알기를 기대합니다 (즉, PDA를 그리지 않고 문맥없는 문법을 작성하고 펌핑 보조 정리를 사용하지 않고) 문맥 자유로운 언어를 위해). 일반 언어가 처음에는 무엇인지 신속하게 알 수있는 도움말을 알고 있지만 언어에 문맥이 없는지 여부는 알지 못합니다. 감사합니다.