17
2.2 문문 - 문문 문문 1. 문문 - 문문 문문문 문문 2. 문문 - 문문 문문문 문문문문 문문문문 3. 문문문 문문문

2.2 문맥-무관 문법

  • Upload
    faith

  • View
    100

  • Download
    1

Embed Size (px)

DESCRIPTION

2.2 문맥-무관 문법. 문맥-무관 문법의 정의 문맥-무관 문법과 푸쉬다운 자동장치 참스키 정규형. 문맥-무관 문법의 정의. Context-free grammar 생성 규칙의 좌변 : 하나의 비단말 생성 규칙의 우변 : 제한 없음 정규 문법의 우변은 제한이 있다. 문맥-무관이란 단 하나의 비단말에 대해 문맥에 무관하게 적용. Context-sensitive grammar( 문맥-인식 문법) xNy  xzy (a  b, where a, b  (N  T) + , |a|  |b|). - PowerPoint PPT Presentation

Citation preview

Page 1: 2.2 문맥-무관 문법

2.2 문맥 - 무관 문법

1. 문맥 - 무관 문법의 정의2. 문맥 - 무관 문법과 푸쉬다운 자동장치3. 참스키 정규형

Page 2: 2.2 문맥-무관 문법

문맥 - 무관 문법의 정의

• Context-free grammar– 생성 규칙의 좌변 : 하나의 비단말– 생성 규칙의 우변 : 제한 없음

• 정규 문법의 우변은 제한이 있다 .

– 문맥 - 무관이란 단 하나의 비단말에 대해 문맥에 무관하게 적용 .

– Context-sensitive grammar( 문맥 - 인식 문법 )• xNy xzy (a b, where a, b (N T)+, |a| |b|)

Page 3: 2.2 문맥-무관 문법

좌우선 유도 (leftmost derivation)

• 문맥 - 무관 문법은 유도를 통해 스트링들을 생성해 낸다 .

• 생성 규칙을 적용하는 순서– zMNz zaMaNz ( 좌우선 유도 )– zMNz zMbNbz ( 우우선 유도 )– 좌우선이나 우우선이나 스트링 생성에는 無

영향 .• 그러면 , 좌우선 유도에 의해 생성한다 .

Page 4: 2.2 문맥-무관 문법

파스 트리 (Parse tree)

• 노드 : 문법의 단말 또는 비단말– Root node : CFG 의 시작 기호– 단말 기호 : 내부 노드가 될 수 없다 .– 비단말 기호 : 잎 노드가 될 수 없다 .

• 각 비단말 노드의 자식들– CFG 의 유도에서 그 비단말을 대치하는

기호들로 된 노드들• 그림 2.6

Page 5: 2.2 문맥-무관 문법

문맥 - 무관 언어(context-free language)

• 문맥 - 무관 문법에 의해 생성되는 언어• 그림 2.7

S xSy

S – 언어 {xnyn : n N} 을 생성하는 문법– 정규 문법에서는 생성할 수 없는 언어

Page 6: 2.2 문맥-무관 문법

다중 삽입 전이

• (p, a, s; q, xyz)– 다중 삽입 전이 (multiple push transition)

• (p, a, s; q1, z)• (q1, , ; q2, y)• (q2, , ; q, x)

– 한 번의 전이에서 스택에 3 개의 기호를 삽입– 전이 수행 후 , x 가 꼭대기 , 그 밑에 y,

그리고 z 가 바닥– 표기상의 편의이고 , 성능이 추가되지 않음

Page 7: 2.2 문맥-무관 문법

문맥 - 무관 문법과푸쉬다운 자동 장치

• 증명– 문맥 - 무관 문법에 의해 생성되는 언어들이

정확히 푸쉬다운 자동 장치에 의해 수락되는 언어들

– 임의의 문맥 - 무관 문법 G 에 대해서 L(G) = L(M) 인 푸쉬다운 자동장치 M 이 존재

– 임의의 푸쉬다운 자동장치 M 에 대해서 L(M) = L(G) 인 문맥 - 무관 문법 G 가 존재

Page 8: 2.2 문맥-무관 문법

정리 2.2: L(G) = L(M) 인 M

• 임의의 문맥 - 무관 문법 G 에 대해서 , L(G) = L(M) 인 푸쉬다운 자동장치 M 이 존재– Given G = (N, T, S, R), – make M = (S, , , T, , F)

Page 9: 2.2 문맥-무관 문법

정리 2.3: L(M) = L(G) 인 G

• 임의의 푸쉬다운 자동장치 M 에 대해서 , L(G) = L(M) 인 문맥 - 무관 문법 G 가 존재– Given M = (S, , , T, , F)

– make G = (N, T, S, R),

Page 10: 2.2 문맥-무관 문법

참스키 정규형

• 언어 분류 (2.2 절까지 )– 정규 언어 ( 정규 문법에 의해 생성 )– 문맥 - 무관 언어 ( 문맥 - 무관 문법에 의해

생성 )• 생성 규칙의 우변 : 무관 (free)

• Chomsky normal form– By Noam Chomsky

• http://web.mit.edu/linguistics/www/chomsky.home.html

Page 11: 2.2 문맥-무관 문법

참스키 정규형

• L : 공백 스트링을 포함하지 않는 문맥 -무관 언어

• L= L(G) 인 G 의 생성 규칙– 우변은 하나의 단말 또는 두 개의 비단말

• Chomsky normal form– 우변이 하나의 단말 또는 두 개의 비단말로

구성되는 생성 규칙을 가진 문법

Page 12: 2.2 문맥-무관 문법

L( 문맥 - 무관 언어 )

를 포함하지 않는 어떤 문맥 - 무관 언어이든지 , - 규칙이 없는 문맥 - 무관 문법에 의해 생성할 수 있다 .

-chain– 길이 n 인 -chain (Nn : 근원 , origin)

• Nn Nn-1, Nn-1 Nn-2 , …, N0

– 길이 0 인 -chain • N0

Page 13: 2.2 문맥-무관 문법

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 의 모든

비단말들- 규칙이 없는 문맥 - 무관 문법을 만듬

Page 14: 2.2 문맥-무관 문법

- 규칙이 없는 문맥 - 무관 문법

• N w 를 N w’ 로 바꾸어서 추가– w: 단말들과 비단말들의 스트링– w’ : w 로부터 U 에 포함된 비단말들을 하나

이상 제거하여 얻어지는 모든 조합의 비공백 스트링 .

• 그림 2.14 와 그림 2.15 참조

Page 15: 2.2 문맥-무관 문법

정리 2.4

• 단계 0– 공백 스트링 ( ) 을 포함하지 않는 생성

규칙들• 단계 1

– G 의 모든 단말 x 를 비단말 X 로 두고 , X x 인 생성 규칙을 도입

– 결과적으로 , 우변은 하나의 단말 또는 비단말들의 스트링으로 구성

Page 16: 2.2 문맥-무관 문법

정리 2.4( 계속 )

• 단계 2– 우변이 3 개 이상의 비단말들인 것

우변이 2 개의 비단말로 된 규칙들을 생성– 그러면 , 우변은 하나의 단말 또는 2 개의

비다말 혹은 하나의 비단말로 된 규칙들• 단계 3

– 우변이 하나의 비단말인 생성 규칙 우변이 하나의 단말 또는 2 개의 비단말

Page 17: 2.2 문맥-무관 문법

문맥 - 무관 언어 L

• 문맥 - 무관 언어 L 이 을 포함하지 않는 경우– 정리 2.4 과 부합하면 Chomsky normal form

• 문맥 - 무관 언어 L 이 을 포함하는 경우– L –{} 를 생성하는 참스키 정규형의 문맥 -

무관 문법 G– S' 와 S' x for S x in G