슬라이드 제목 없음

Download Report

Transcript 슬라이드 제목 없음

2.2 문맥-무관 문법
1. 문맥-무관 문법의 정의
2. 문맥-무관 문법과 푸쉬다운 자동장치
3. 참스키 정규형
문맥-무관 문법의 정의
• 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),
– make M = (S, , , T, , F)
정리 2.3: L(M) = L(G)인 G
• 임의의 푸쉬다운 자동장치 M 에 대해서,
L(G) = L(M)인 문맥-무관 문법 G가 존재
– Given M = (S, , , T, , F)
– make G = (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  U 1  …  U n
– 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