(1) {((a^2)(b^4)ab)^(3k) : k>=0}
(2) {a^(2n)b^(3n) : n >= 7}
(3) {a^(2n)b^(3n) : n <= 7}
1)이 하나 없음 단서. 2) 3와 달리, N에 제한이없는 원인이 contextFree을 생각) 우리가 finit의 자동화를 구축 할 수 없지만 우리는 문법 구축 할 수 있습니다 : 그것은
이것은 간단한 질문처럼 보입니다. 그러나 나는 이것에 대한 좋은 설명을 찾을 수 없습니다. 어떻게 [기가 사용될] (.. 일명 다른 문법을 참조 문법) 예를 들어, S => Eb
E => cA
별도의 문법을 중첩 문법을 처리하나요 : A => d
이 가능합니까? 그렇지 않다면 어떻게 대응할 것인가? 변수 선언과 같은 문법의 경우 기본 문법과 관련된
한다고 가정 I JS 코드의 다음 부분을 가지고 나는 그것이 AssignmentExpression로서 해석 할 수 있습니다 알고있는 것처럼 const v = 3;
: AssignmentExpression :
LeftHandSideExpression = AssignmentExpression
이제 Statement에서 어떻게 파생 될 수 있는지
주어진 언어 K = {e^h f^i | 2h> i> h} 문맥 자유 문법을 생성해야합니다. 내가 만든 몇 가지 제작 규칙은 다음과 같습니다. S -> eeTfff 및 T -> eTff | ε n = m + 1 인 경우에만 작동하지만 2h> i> h의 모든 조합에 대해 규칙을 생성하는 방법을 알지 못합니다.
문맥 자유 문법 제공 언어를 생성하는 H M = {a^m b^n | 2m> n> m}. ' 힌트 : m은 0 일 수 없습니다.이 경우 2m = m이기 때문입니다. m은 1 일 수 없습니다.이 경우 2> n> 1이기 때문에 자연스러운 숫자 은 존재하지 않습니다. 따라서 언어 M에서 가장 짧은 문자열은 aabb입니다. 긴 문자열의 경우,에 bs의 수 n과 as
이 문법은 내 중간 시험에했지만, 난 그것이 있다고 보여달라고 두 개의 서로 다른 파스 트리를 찾을 수 없습니다 나는 그것이 것을 볼하지 않은 경우 K -> QK | ε
Q -> Qa | aQb | ab
모호한 왼쪽 재귀 적으로 모호한 것은 아니지만 쓸 것인데, 감사합니다.
저는 Decison 프로그래밍 언어의 (부분적인) 문법을 구현하기 위해 bison (3.0.4)과 lexer를 사용하고 있습니다. 나는 수업 내에있는 것만 구현하고 있습니다. 내 작업은 간단합니다. 모든 생산 규칙 (문자열)을 트리에 저장 한 다음 인쇄하십시오. 예를 들어 , 당신은 class Foo { Foo(int arg1) { some2 a; } }하