문맥이없는 문법에 규칙 집합을 정의하는 2 개의 배열이 있습니다. 어레이 (1)를 왼쪽, 예를 들어 규칙 및 배열이 규칙의 우측되는 사이드하게하여이 가입일 A = B | C would translate to array1[0] = A, array2[0] = B C
, I는 몇 단계를 정의 정수 주어진 모든 가능한 유도를 구성 할 발생할 수 있습니다. 예를
R: S ---> aSb
S ---> SS
S ---> ε
이 표현식에 대한 문법은 어떻게 작성해야합니까? 이렇게 쓰는 것은 사실입니까? G = ({S}, {a, b}, {S ---> aSb, S ---> SS, S ---> ε}, {S})
하거나 (단말기에 추가 엡실론) 등 : 올바른이다 G = ({S}, {a, b, ε}, {S
나는 다음과 같은 언어에 대한 문맥 자유 문법을 설계 할 에 대한 문법 : L = {전자 w {()} * | w는 나는 다음과 같은 문법 제안} 균형 : S는 -> (S) S를 | E 강의에서 제안 된 솔루션입니다 반면 : S -> (S) | SS | E 내 솔루션에 어떤 문제가 있는지 알 수 없습니다.이 (()가()),()가()()을 (를) (())()
시작 변수 S가있는 다음 문맥 자유 문법에 의해 정의 된 언어가 {0,1}이면 정규 언어입니까? S → TS, S → 1T, S → 1S T → TT, T → 0T1, T → 1T0 T → ε 이 언어는 정규입니까? 이 언어는 기본적으로 터미널과 변수의 조합이므로 정규 언어 일 수 없습니다. 정규 언어는 오른쪽 또는 왼쪽 선형이어야합니다. 내가 맞습니까,
문맥없는 문법의 "첫 번째 집합"을 찾으려고했습니다. 나는 2 개의 답을 찾았지만 그것이 맞는지 확실하지 않다. 누군가이 문법의 첫 번째 세트를 생성하는 방법을 설명 할 수 있다면 고마워 할 것입니다. 두 가지 대답은 내가 읽은 소스에서 다른 구문으로 설명했기 때문에 다른 방식으로 작성되었습니다. 문제 문법 : E1 -> E2+E1|E2
E2 -> num
거기에 너무 많은 정보가 있지만 이건 정말 내게 멍청한 놈을 도움이되지 않습니다. 문맥없는 언어와 푸시 다운 자동화에 관한 많은 기사를 읽었습니다. 이제 특정 사물이 코드에서 어떻게 보일지 이해하려고합니다. 우리에게 다음과 같은 생성 규칙을주기 L = {am bn | m >= n}
: S -> B |^
B -> aBb | A
A -> aA | a
프로그래밍 언어 클래스에서 나는 연산자 우선 순위와 연관성을 배웠다. 언더 위의 상황에 자유 문법을 사용하여 문맥 자유 문법 <expr> -> <expr> + <term> | <term>
<term> -> <term> * <fact> | <fact>
<fact> -> (<expr>) | a
간단하다, 우리가 a+a+(a+a)
내가 생각하는 문장을
발생하는 것은 이러한 추천했습니다 : 문제는 그러나 일부 words at the start ONE|ANOTHER wordAtTheEnd ---------^-------- ----^----- --^-- A: alphas B: choice C: alphas 입니다은 포함 할 수 있습니다 B의 키워드 "ONE"또는 "ANOTHER"이므로 마지막 선택 키워드가 발