정규언어와 정규문법

33
정정정정정 정정정정

description

정규언어와 정규문법. 정규언어에 대한 정규표현. 일반전이 그래프 Generalized transition graph 간선의 라벨에 정규 표현을 부여하는 전이 그래프 라벨은 여러 정규표현들의 접합 a a, b -> a + b. Figure 3.8. a. c*. a + b. L(a* + a*(a + b)c*). Figure 3.9. e. d. c. qj. qi. q. b. a. ce*b. ae*d. ce*d. qj. qi. ae*b. - PowerPoint PPT Presentation

Transcript of 정규언어와 정규문법

Page 1: 정규언어와 정규문법

정규언어와 정규문법

Page 2: 정규언어와 정규문법

정규언어에 대한 정규표현

• 일반전이 그래프 Generalized transition graph

– 간선의 라벨에 정규 표현을 부여하는 전이 그래프

– 라벨은 여러 정규표현들의 접합 <= 그 자체도 정규 표현이 된다 .

– a -> a

– a, b -> a + b

Page 3: 정규언어와 정규문법

Figure 3.8

a + b

ac*

L(a* + a*(a + b)c*)

Page 4: 정규언어와 정규문법

Figure 3.9

qi q qj

d c

a b

e

qi qj

ae*d ce*b

ce*d

ae*b

Page 5: 정규언어와 정규문법

Figure 3.11

q0 q1 q2

a

a

b b

b

a,b

q0 q2

b+ab*a

ab*b

a + b

Page 6: 정규언어와 정규문법

Relation of RG, RE, Automata

Regular Expression

Finite Automata Regular Grammars

Page 7: 정규언어와 정규문법

Grammars(1/2)

• A boy runs– <sentence> -> <noun_phrase><predicate>– <noun_phrase> -> <article><noun>– <predicate> -> <verb>

• Pascal identifier– <id> -> <letter><rest>– <rest> -> <letter><rest> | <digit><rest> | – <letter> -> a|b|…| <digit> -> 0|1|…9

Page 8: 정규언어와 정규문법

Grammars(2/2)

• A grammar G is defined as a quadruple

G = (V, T, S, P)

– V is a finite set of objects called variables

– T is a finite set of objects called terminal symbols,

– S is a special symbol called the start variable

– P is a finite set of productions

Page 9: 정규언어와 정규문법

Example 1.10

• G = ( {S}, {a, b}, S, P)

• P : S -> aSb S -> • S => aSb => aaSbb => aabb

• L(G) = {anbn : n 0}

Page 10: 정규언어와 정규문법

Example 1.11

• L = {anbn+1 : n > 0}

• G = ({S, A}, {a, b}, S, P)

– S -> Ab,

– A -> aAb,

– A ->

Page 11: 정규언어와 정규문법

정규문법

Page 12: 정규언어와 정규문법

Definition 3.3

문법 G = (V, T, S, P) 에서 모든 생성규칙들이 다음의 형태를 갖는 경우 이를 우선형 right-linear문법이라 한다 .

A -> xB, A -> x, 여기서 A, B V 이고 x T* 이다 . 문법의 생성규칙들이 모두 다음의 형태를 갖는

경우 이 문법을 좌선형 left-linear 문법이라 한다 . A -> Bx, A -> x. 정규문법은 우선형 문법이거나 좌선형 문법이다 .

Page 13: 정규언어와 정규문법

Example 3.12

• 우선형 문법 Right-linear

문법 G1 = ({S}, {a,b}, S, P1) 에서 생성규칙 P1 이 다음과 같이 주어졌다면

S -> abS | a

r = (ab)*a

Page 14: 정규언어와 정규문법

Example 3.12

• 좌선형 문법 Left-linear

문법 G2 =({S, S1, S2}, {a,b}, S,P2) 에서 생성규칙 P2 가 다음과 같이 주어졌다면

S -> S1ab,

S1 -> S1ab | S2,

S2 -> a

r = (a(ab)*)

Page 15: 정규언어와 정규문법

Example 3.13

• 문법 G = ({S,A,B}, {a,b}, S, P) 가 다음과 같은 생성규칙들을 갖는 경우 이는 정규 문법이 아니다 .

S -> A, A -> aB|, B -> Ab• 선형문법 linear grammar 은 각 생성규칙의

우변에 하나 이하의 변수만 있을 수 있으며 , 이 변수의 위치에는 제한이 없는 문법을 말한다 .

• 정규문법 선형문법

Page 16: 정규언어와 정규문법

Theorem 3.3

• G = (V,T,S,P) 가 우선형 문법 right-linear grammar 이면 L(G) 는 정규 언어이다 .

• 증명 – V={V1,V2,…} – S=V0– 생성규칙 : V0->v1Vi, Vi->v2Vj,…

Page 17: 정규언어와 정규문법

Figure 3.15

Vi a2a1 . . . amVj

Represents Vi ->a1a2 … am Vj

Vi a2a1 . . . amVf

Represents Vi -> a1a2 … am

Page 18: 정규언어와 정규문법

Example 3.15

• 다음 문법에 의해 생성되는 언어를 인식하는 유한 오토마타를 구성해 보자 .

V0 -> aV1

V1 -> abV0| b

L((aab)*ab)

Page 19: 정규언어와 정규문법

Figure 3.16

V0 V1 Vfa b

ab

V1

L((aab)*ab)

Page 20: 정규언어와 정규문법

Example 1

• S -> aS | aA

• A -> bA| b

• L = {anbm | n, m 1}

Page 21: 정규언어와 정규문법

Theorem 3.4

• L 이 알파벳 에 대한 정규 언어일 때 , L = L(G) 를 만족하는 우선형 문법 G=(v, , S, P) 가 항상 존재한다 .

Page 22: 정규언어와 정규문법

Example 3.15Construct a right-linear grammar for L(aab*a).

(q0, a) = {q1} q0 -> aq1

(q1,a) = {q2} q1 -> aq2

(q2,b) = {q2} q2 -> bq2

(q2,a) = {qf} q2 -> aqf

qf F qf ->

q0 => aq1 => aaq2 => aabq2 => aabaqf => aaba

Page 23: 정규언어와 정규문법

Example 2-1

• G = (N, T, P, A)

P : A -> aA

A -> aB

B -> bB

A -> a

A -> b

B -> b

Page 24: 정규언어와 정규문법

Example 2-2

A Ba

ba,b

Qf

a b

Page 25: 정규언어와 정규문법

Example 3-1

A

B

1

0

1 0

C

1

1

1

Page 26: 정규언어와 정규문법

Example 3-2

N = {A, B, C}S = A

A -> AA -> C, CFB -> AB -> BB -> C, C FC -> C, C FC -> B

A -> 1AA -> 1, A -> 1CB -> 0AB -> 1BB -> 1. B -> 1CC -> 0, C -> 0CC -> 1B

M 의 전이 G 의 규칙11

011

01

Page 27: 정규언어와 정규문법

Example 4-1

p

q

r

0 0

0,11 1

Page 28: 정규언어와 정규문법

Example 4-2

• G = ({ p,q,r}, {0,1}, P, p)

P : p -> 0q

p -> 1p

q -> 0r

q -> 1p

r -> 0r

r -> 1r

r ->

Page 29: 정규언어와 정규문법

Theorem 3.5

• A language L is regular if and only if there exists a left-linear grammar G such that L = L(G).

Page 30: 정규언어와 정규문법

Theorem 3.6

• A language L is regular if and only if there exists a regular grammar G such that L = L(G).

Page 31: 정규언어와 정규문법

Theorem 3.1

• Let r be a regular expression. Then there exi

sts some nondeterministic finite accepter th

at accepts L(r)

• Consequently, L(r) is a regular language.

Page 32: 정규언어와 정규문법

Theorem 3.2

• Let L be a regular language. Then there exists a regular expression r such that L = L(r)

Page 33: 정규언어와 정규문법

Figure 3.15

Regular expressions

dfa or nfa

Regular grammars

Theorem 3.1 Theorem 3.2

Theorem 3.3 Theorem 3.4