170 likes | 420 Views
2.2 문맥-무관 문법. 문맥-무관 문법의 정의 문맥-무관 문법과 푸쉬다운 자동장치 참스키 정규형. 문맥-무관 문법의 정의. Context-free grammar 생성 규칙의 좌변 : 하나의 비단말 생성 규칙의 우변 : 제한 없음 정규 문법의 우변은 제한이 있다. 문맥-무관이란 단 하나의 비단말에 대해 문맥에 무관하게 적용. Context-sensitive grammar( 문맥-인식 문법) xNy xzy (a b, where a, b (N T) + , |a| |b|).
E N D
2.2 문맥-무관 문법 • 문맥-무관 문법의 정의 • 문맥-무관 문법과 푸쉬다운 자동장치 • 참스키 정규형
문맥-무관 문법의 정의 • Context-free grammar • 생성 규칙의 좌변 : 하나의 비단말 • 생성 규칙의 우변 : 제한 없음 • 정규 문법의 우변은 제한이 있다. • 문맥-무관이란 단 하나의 비단말에 대해 문맥에 무관하게 적용. • Context-sensitive grammar(문맥-인식 문법) • xNy xzy (a b, where a, b (N T)+, |a| |b|)
좌우선 유도(leftmost derivation) • 문맥-무관 문법은 유도를 통해 스트링들을 생성해 낸다. • 생성 규칙을 적용하는 순서 • zMNz zaMaNz (좌우선 유도) • zMNz zMbNbz (우우선 유도) • 좌우선이나 우우선이나 스트링 생성에는 無영향. • 그러면, 좌우선 유도에 의해 생성한다.
파스 트리(Parse tree) • 노드 : 문법의 단말 또는 비단말 • Root node : CFG의 시작 기호 • 단말 기호: 내부 노드가 될 수 없다. • 비단말 기호: 잎 노드가 될 수 없다. • 각 비단말 노드의 자식들 • CFG의 유도에서 그 비단말을 대치하는 기호들로 된 노드들 • 그림 2.6
문맥-무관 언어(context-free language) • 문맥-무관 문법에 의해 생성되는 언어 • 그림 2.7 S xSy S • 언어 {xnyn : n N}을 생성하는 문법 • 정규 문법에서는 생성할 수 없는 언어
다중 삽입 전이 • (p, a, s; q, xyz) • 다중 삽입 전이(multiple push transition) • (p, a, s; q1, z) • (q1, , ; q2, y) • (q2, , ; q, x) • 한 번의 전이에서 스택에 3개의 기호를 삽입 • 전이 수행 후, x가 꼭대기, 그 밑에 y, 그리고 z가 바닥 • 표기상의 편의이고, 성능이 추가되지 않음
문맥-무관 문법과푸쉬다운 자동 장치 • 증명 • 문맥-무관 문법에 의해 생성되는 언어들이 정확히 푸쉬다운 자동 장치에 의해 수락되는 언어들 • 임의의 문맥-무관 문법 G에 대해서 L(G) = L(M)인 푸쉬다운 자동장치 M이 존재 • 임의의 푸쉬다운 자동장치 M 에 대해서 L(M) = L(G)인 문맥-무관 문법 G가 존재
정리 2.2: L(G) = L(M)인 M • 임의의 문맥-무관 문법 G에 대해서, L(G) = L(M)인 푸쉬다운 자동장치 M이 존재 • Given G = (N, T, S, R), • makeM = (S, , , T, , F)
정리 2.3: L(M) = L(G)인 G • 임의의 푸쉬다운 자동장치 M 에 대해서, L(G) = L(M)인 문맥-무관 문법 G가 존재 • Given M = (S, , , T, , F) • makeG = (N, T, S, R),
참스키 정규형 • 언어 분류(2.2절까지) • 정규 언어(정규 문법에 의해 생성) • 문맥-무관 언어(문맥-무관 문법에 의해 생성) • 생성 규칙의 우변: 무관(free) • Chomsky normal form • By Noam Chomsky • http://web.mit.edu/linguistics/www/chomsky.home.html
참스키 정규형 • L : 공백 스트링을 포함하지 않는 문맥-무관 언어 • L= L(G)인 G의 생성 규칙 • 우변은 하나의 단말 또는 두 개의 비단말 • Chomsky normal form • 우변이 하나의 단말 또는 두 개의 비단말로 구성되는 생성 규칙을 가진 문법
L(문맥-무관 언어) • 를 포함하지 않는 어떤 문맥-무관 언어이든지, -규칙이 없는문맥-무관문법에 의해 생성할 수 있다. • -chain • 길이n인-chain(Nn: 근원, origin) • Nn Nn-1, Nn-1 Nn-2 , …, N0 • 길이0인-chain • N0
L에서 U • L(G)인 문맥-무관 문법 G • U0: 길이 0인 -chain의 근원인 비단말들 • U1: 길이 1인 -chain의 근원인 비단말들 • U = U0 U1 … Un • S U, where S is a start symbol in G • 공백 스트링으로 바꿔쓸 수 있는 G의 모든 비단말들 • -규칙이 없는문맥-무관문법을만듬
-규칙이 없는문맥-무관문법 • N w를 N w’로 바꾸어서 추가 • w: 단말들과 비단말들의 스트링 • w’ : w로부터 U에 포함된 비단말들을 하나 이상 제거하여 얻어지는 모든 조합의 비공백 스트링. • 그림 2.14와 그림 2.15 참조
정리 2.4 • 단계 0 • 공백 스트링( )을 포함하지 않는 생성 규칙들 • 단계 1 • G의 모든 단말 x를 비단말 X로 두고, X x인 생성 규칙을 도입 • 결과적으로, 우변은 하나의 단말 또는 비단말들의 스트링으로 구성
정리 2.4(계속) • 단계 2 • 우변이 3개 이상의 비단말들인 것 우변이 2개의 비단말로 된 규칙들을 생성 • 그러면, 우변은 하나의 단말 또는 2개의 비다말 혹은 하나의 비단말로 된 규칙들 • 단계 3 • 우변이 하나의 비단말인 생성 규칙 우변이 하나의 단말 또는 2개의 비단말
문맥-무관 언어 L • 문맥-무관 언어 L이 을 포함하지 않는 경우 • 정리 2.4과 부합하면 Chomsky normal form • 문맥-무관 언어 L이 을 포함하는 경우 • L –{}를 생성하는 참스키 정규형의 문맥-무관 문법 G • S' 와 S' x for S x in G