74
Fernando Simeone A Hierarquia de Chomsky

Hierarquia de Chomsky

Embed Size (px)

Citation preview

Page 1: Hierarquia de Chomsky

Fernando Simeone

A Hierarquia de Chomsky

Page 2: Hierarquia de Chomsky

Sumário• Introdução

• Linguagens Regulares (3)

• Linguagens Livre de Contexto (2)

• Linguagens Recursivamente Enumeráveis (0)

• Linguagens Sensíveis ao Contexto (1)

• A Hierarquia de Chomsky

Page 3: Hierarquia de Chomsky

Introdução

Page 4: Hierarquia de Chomsky

Introdução

Page 5: Hierarquia de Chomsky

Introdução

• Linguagens

Page 6: Hierarquia de Chomsky

Introdução

• Linguagens

• Gramáticas

Page 7: Hierarquia de Chomsky

Introdução

• Linguagens

• Gramáticas

• Reconhecedores

Page 8: Hierarquia de Chomsky

Hierarquia de Chomsky

Linguagens Regulares (3)

Linguagens Livre de Contexto (2)

Linguagens Sensíveis ao Contexto (1)

Linguagens Recursivamente Enumeráveis (0)

Page 9: Hierarquia de Chomsky

Linguagens Regulares3

T I P O

Page 10: Hierarquia de Chomsky

Hierarquia de Chomsky

Linguagens Regulares (3)

Linguagens Livre de Contexto (2)

Linguagens Sensíveis ao Contexto (1)

Linguagens Recursivamente Enumeráveis (0)

Page 11: Hierarquia de Chomsky

Linguagens Regulares!

• Linguagens: Linguagens Regulares

• Gramáticas: Gramáticas Regulares

• Reconhecedores: Autômatos Finitos

Page 12: Hierarquia de Chomsky

!

L = { a(ba)* } aba, ababa, abababa

!

L = { (a + b)*(aa + bb) } aa, bb, aaa, abaa

Linguagens Regulares

Page 13: Hierarquia de Chomsky

G = (V, T, P, S) !

Regras de Produção:

A ⟶ wB A ⟶ Bw A ⟶ w A ⟶ λ Sendo que w ϵ T*, e A, B ϵ V.

Gramáticas Regulares

Page 14: Hierarquia de Chomsky

Gramáticas Regulares

Page 15: Hierarquia de Chomsky

Gramáticas Regulares L = { a(ba)* }

(aba, ababa, abababa)

Page 16: Hierarquia de Chomsky

Gramáticas Regulares

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

S ⟶ aA

A ⟶ baA | λ

L = { a(ba)* }(aba, ababa, abababa)

Page 17: Hierarquia de Chomsky

Gramáticas Regulares

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

S ⟶ aA

A ⟶ baA | λ

L = { a(ba)* }(aba, ababa, abababa)

L = { (a + b)*(aa + bb) }(aa, bb, aaa, abaa)

Page 18: Hierarquia de Chomsky

Gramáticas Regulares

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

S ⟶ aA

A ⟶ baA | λ

L = { a(ba)* }(aba, ababa, abababa)

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

S ⟶ Aaa | Abbe

A ⟶ Aa | Ab | λ

L = { (a + b)*(aa + bb) }(aa, bb, aaa, abaa)

Page 19: Hierarquia de Chomsky

Autômatos Finitos• L = a(ba)*

Page 20: Hierarquia de Chomsky

Autômatos Finitos• L = a(ba)*

S A qf

B

a λ

ab

Page 21: Hierarquia de Chomsky

Autômatos Finitos• L = a(ba)*

S A qf

B

a λ

ab

a b a b a

a b b a a

Exemplos:

Page 22: Hierarquia de Chomsky

Autômatos Finitos• L = a(ba)*

S A qf

B

a λ

ab

a b a b a ✓ Aceita

a b b a a

Exemplos:

Page 23: Hierarquia de Chomsky

x Não aceita

Autômatos Finitos• L = a(ba)*

S A qf

B

a λ

ab

a b a b a ✓ Aceita

a b b a a

Exemplos:

Page 24: Hierarquia de Chomsky

Linguagens Livres de Contexto2

T I P O

Page 25: Hierarquia de Chomsky

Hierarquia de Chomsky

Linguagens Regulares (3)

Linguagens Livre de Contexto (2)

Linguagens Sensíveis ao Contexto (1)

Linguagens Recursivamente Enumeráveis (0)

Page 26: Hierarquia de Chomsky

!

• Linguagens: Linguagens Livres de Contexto

• Gramáticas: Gramáticas Livres de Contexto

• Reconhecedores: Autômatos Com Pilha

Linguagens Livres de Contexto

Page 27: Hierarquia de Chomsky

Linguagens Livres de Contexto!

L = { anbn | n ≥ 0 } ab, aabb, aaabbb

!

L = Expressões aritméticas (+, *, [, ]) x + x, x + x * x, x * [x + x]

Page 28: Hierarquia de Chomsky

Gramáticas Livres de ContextoG = (V, T, P, S) !

Regras de Produção:

A ⟶ 𝛂

Sendo que 𝛂 ϵ (T ∪ V)*.

Page 29: Hierarquia de Chomsky

Gramáticas Livres de ContextoG = (V, T, P, S) !

Regras de Produção:

A ⟶ 𝛂

Sendo que 𝛂 ϵ (T ∪ V)*.

Exemplos:

A ⟶ aAb B ⟶ aaA

Page 30: Hierarquia de Chomsky

Gramáticas Livres de Contexto

Page 31: Hierarquia de Chomsky

Gramáticas Livres de Contexto

L = { anbn | n ≥ 0 } (ab, aabb, aaabbb)

Page 32: Hierarquia de Chomsky

Gramáticas Livres de Contexto

L = { anbn | n ≥ 0 } (ab, aabb, aaabbb)G = ({S}, {a, b}, P, S)

S ⟶ aSb

S ⟶ λ

Page 33: Hierarquia de Chomsky

Gramáticas Livres de Contexto

L = { anbn | n ≥ 0 } (ab, aabb, aaabbb)G = ({S}, {a, b}, P, S)

S ⟶ aSb

S ⟶ λ

L = Expressões aritméticas ( x + x, x + x * x, x * [x + x] )

Page 34: Hierarquia de Chomsky

Gramáticas Livres de Contexto

G = ({E}, {+, *, [, ], x}, P, E)

E ⟶ E + E | E * E | [E] | x

L = { anbn | n ≥ 0 } (ab, aabb, aaabbb)G = ({S}, {a, b}, P, S)

S ⟶ aSb

S ⟶ λ

L = Expressões aritméticas ( x + x, x + x * x, x * [x + x] )

Page 35: Hierarquia de Chomsky

Autômatos com Pilha• L = { anbn | n ≥ 0 }

Page 36: Hierarquia de Chomsky

Autômatos com Pilha• L = { anbn | n ≥ 0 }

S qf

B

(a, λ, B)

(b, B, λ)

(b, B, λ)

(λ, λ, λ) (λ, λ, λ)

Page 37: Hierarquia de Chomsky

Autômatos com Pilha• L = { anbn | n ≥ 0 }

a a b b

a b b a

Exemplos:

S qf

B

(a, λ, B)

(b, B, λ)

(b, B, λ)

(λ, λ, λ) (λ, λ, λ)

Page 38: Hierarquia de Chomsky

Autômatos com Pilha• L = { anbn | n ≥ 0 }

a a b b ✓ Aceita

a b b a

Exemplos:

S qf

B

(a, λ, B)

(b, B, λ)

(b, B, λ)

(λ, λ, λ) (λ, λ, λ)

Page 39: Hierarquia de Chomsky

Autômatos com Pilha• L = { anbn | n ≥ 0 }

x Não aceita

a a b b ✓ Aceita

a b b a

Exemplos:

S qf

B

(a, λ, B)

(b, B, λ)

(b, B, λ)

(λ, λ, λ) (λ, λ, λ)

Page 40: Hierarquia de Chomsky

Linguagens Recursivamente Enumeráveis0

T I P O

Page 41: Hierarquia de Chomsky

Linguagens Recursivamente Enumeráveis (0)

Hierarquia de Chomsky

Linguagens Sensíveis ao Contexto (1)

Linguagens Livre de Contexto (2)

Linguagens Regulares (3)

Page 42: Hierarquia de Chomsky

Linguagens Recursivamente Enumeráveis

!

• Linguagens: Ling. Recursivamente Enumeráveis

• Gramáticas: Gramáticas Irrestritas

• Reconhecedores: Máquinas de Turing

Page 43: Hierarquia de Chomsky

!

L = { anbncn | n ≥ 0 } abc, aaabbbccc, aabbcc

!

L = { u[u] | u ϵ {a, b}* } aa[aa], aab[aab], baba[baba]

Linguagens Recursivamente Enumeráveis

Page 44: Hierarquia de Chomsky

Gramáticas Irrestritas

Page 45: Hierarquia de Chomsky

Gramáticas IrrestritasG = (V, T, P, S) !

Regras de Produção:

u ⟶ w

Sendo que u ϵ (T ∪ V)+ e w ϵ (T ∪ V)*.

Page 46: Hierarquia de Chomsky

Gramáticas IrrestritasG = (V, T, P, S) !

Regras de Produção:

u ⟶ w

Sendo que u ϵ (T ∪ V)+ e w ϵ (T ∪ V)*.

Exemplos:

A ⟶ aAb B ⟶ λ bAc ⟶ aA

Page 47: Hierarquia de Chomsky

Gramáticas Irrestritas

Page 48: Hierarquia de Chomsky

Gramáticas Irrestritas

L = { anbncn | n ≥ 0 } (abc, aaabbbccc)

Page 49: Hierarquia de Chomsky

Gramáticas Irrestritas

L = { anbncn | n ≥ 0 } (abc, aaabbbccc)

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

S ⟶ aAbc | λ Cb ⟶ bC

A ⟶ aAbC | λ Cc ⟶ cc

Page 50: Hierarquia de Chomsky

Gramáticas Irrestritas

L = { u[u] | u ϵ {a, b}* } ( aa[aa], baba[baba] )

Page 51: Hierarquia de Chomsky

Gramáticas Irrestritas

• G = ({S, T, A, B}, {a, b [, ]}, P, S)

S ⟶ aT[a] | bT[b] Ba ⟶ aB

T[ ⟶ aT[A | bT[B | [ Bb ⟶ bB

Aa ⟶ aA A] ⟶ a]

Ab ⟶ bA B] ⟶ b]

L = { u[u] | u ϵ {a, b}* } ( aa[aa], baba[baba] )

Page 52: Hierarquia de Chomsky

Máquina de Turing• L ={ anbncn | n ≥ 0 }

Page 53: Hierarquia de Chomsky

Máquina de Turing• L ={ anbncn | n ≥ 0 }

qf

q0(B, B, ➞)

q1 q3 q4

q5

q2(a, X, ➞) (b, Y, ➞)

(a, a, ➞)(Y, Y, ➞)

(b, b, ➞)(Z, Z, ➞)

(c, Z,←)

(a, a, ←)(b, b, ←)(Y, Y, ←)(Z, Z, ←)

(X, X, ➞)

(Z, Z, ➞)(Y, Y, ➞)

(Y, Y, ➞)

(B, B, ➞)

(B, B, ➞)

B B B … B

Page 54: Hierarquia de Chomsky

Máquina de Turing• L ={ anbncn | n ≥ 0 } a a b b c c

a b b a c c

Exemplos:

qf

q0(B, B, ➞)

q1 q3 q4

q5

q2(a, X, ➞) (b, Y, ➞)

(a, a, ➞)(Y, Y, ➞)

(b, b, ➞)(Z, Z, ➞)

(c, Z,←)

(a, a, ←)(b, b, ←)(Y, Y, ←)(Z, Z, ←)

(X, X, ➞)

(Z, Z, ➞)(Y, Y, ➞)

(Y, Y, ➞)

(B, B, ➞)

(B, B, ➞)

B B B … B

Page 55: Hierarquia de Chomsky

Máquina de Turing• L ={ anbncn | n ≥ 0 } a a b b c c

a b b a c c

Exemplos:✓ Aceita

qf

q0(B, B, ➞)

q1 q3 q4

q5

q2(a, X, ➞) (b, Y, ➞)

(a, a, ➞)(Y, Y, ➞)

(b, b, ➞)(Z, Z, ➞)

(c, Z,←)

(a, a, ←)(b, b, ←)(Y, Y, ←)(Z, Z, ←)

(X, X, ➞)

(Z, Z, ➞)(Y, Y, ➞)

(Y, Y, ➞)

(B, B, ➞)

(B, B, ➞)

B B B … B

Page 56: Hierarquia de Chomsky

Máquina de Turing• L ={ anbncn | n ≥ 0 } a a b b c c

a b b a c c

Exemplos:

x Não aceita

✓ Aceita

qf

q0(B, B, ➞)

q1 q3 q4

q5

q2(a, X, ➞) (b, Y, ➞)

(a, a, ➞)(Y, Y, ➞)

(b, b, ➞)(Z, Z, ➞)

(c, Z,←)

(a, a, ←)(b, b, ←)(Y, Y, ←)(Z, Z, ←)

(X, X, ➞)

(Z, Z, ➞)(Y, Y, ➞)

(Y, Y, ➞)

(B, B, ➞)

(B, B, ➞)

B B B … B

Page 57: Hierarquia de Chomsky

Linguagens Sensíveis ao Contexto1

T I P O

Page 58: Hierarquia de Chomsky

Linguagens Recursivamente Enumeráveis (0)

Linguagens Sensíveis ao Contexto (1)

Hierarquia de Chomsky

Linguagens Livre de Contexto (2)

Linguagens Regulares (3)

Page 59: Hierarquia de Chomsky

Linguagens Sensíveis ao Contexto

!

• Linguagens: Linguagens Sensíveis ao Contexto

• Gramáticas: Gramáticas Sensíveis ao Contexto

• Reconhecedores: M. de Turing com fita limitada

Page 60: Hierarquia de Chomsky

!

L = { anbncn | n > 0 } abc, aaabbbccc, aabbcc

!

L = { ww | w ϵ {a, b}* } aa, aabb, abaaba

Linguagens Sensíveis ao Contexto

Page 61: Hierarquia de Chomsky

Gramáticas Sensíveis ao ContextoG = (V, T, P, S) !

Regras de Produção:

u ⟶ w

Sendo que u ϵ (T ∪ V)+ e w ϵ (T ∪ V)*, e |u| ≤ |w|.

Page 62: Hierarquia de Chomsky

Gramáticas Sensíveis ao ContextoG = (V, T, P, S) !

Regras de Produção:

u ⟶ w

Sendo que u ϵ (T ∪ V)+ e w ϵ (T ∪ V)*, e |u| ≤ |w|.Exemplos:

A ⟶ aAb

Cc ⟶ aAc

Aa ⟶ bB

B ⟶ λ

Page 63: Hierarquia de Chomsky

Gramáticas Sensíveis ao Contexto

Page 64: Hierarquia de Chomsky

Gramáticas Sensíveis ao Contexto

L = { anbncn | n > 0 } (abc, aabbcc, aaabbbccc)

Page 65: Hierarquia de Chomsky

Gramáticas Sensíveis ao Contexto

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

S ⟶ aAbc | abc

A ⟶ aAbC | λ

Cb ⟶ bC

Cc ⟶ cc

L = { anbncn | n > 0 } (abc, aabbcc, aaabbbccc)

Page 66: Hierarquia de Chomsky

A Hierarquia de Chomsky

Page 67: Hierarquia de Chomsky

Hierarquia de Chomsky

Linguagens Regulares (3)

Linguagens Livre de Contexto (2)

Linguagens Sensíveis ao Contexto (1)

Linguagens Recursivamente Enumeráveis (0)

Page 68: Hierarquia de Chomsky

Hierarquia de ChomskyLinguagem Gramática Reconhecedor

[0] Linguagens Recursivamente Enumeráveis Gramáticas Irrestritas Máquina de Turing

[1] Linguagens Sensíveis ao Contexto

Gramáticas Sensíveis ao Contexto

Máquina de Turing com Fita Limitada

[2] Linguagens Livres de Contexto

Gramáticas Livres de Contexto Autômato com Pilha

[3] Linguagens Regulares Gramáticas Regulares Autômato Finito

Page 69: Hierarquia de Chomsky

0

Hierarquia de ChomskyGramáticas

A ⟶ aAb#B ⟶ aaA

Cc ⟶ aAc#Aa ⟶ bB

aCc ⟶ aA

A ⟶ abB#A ⟶ Bab#A ⟶ λ

Page 70: Hierarquia de Chomsky

0

1

Hierarquia de ChomskyGramáticas

A ⟶ aAb#B ⟶ aaA

Cc ⟶ aAc#Aa ⟶ bB

aCc ⟶ aA

A ⟶ abB#A ⟶ Bab#A ⟶ λ

Page 71: Hierarquia de Chomsky

0

1

2

Hierarquia de ChomskyGramáticas

A ⟶ aAb#B ⟶ aaA

Cc ⟶ aAc#Aa ⟶ bB

aCc ⟶ aA

A ⟶ abB#A ⟶ Bab#A ⟶ λ

Page 72: Hierarquia de Chomsky

0

1

2

Hierarquia de ChomskyGramáticas

A ⟶ aAb#B ⟶ aaA

Cc ⟶ aAc#Aa ⟶ bB

aCc ⟶ aA

3A ⟶ abB#A ⟶ Bab#A ⟶ λ

Page 73: Hierarquia de Chomsky

Referências

• MENEZES, P. B. Linguagens formais e autômatos. 4 ed. Sagra-Dcluzzato, 1998.

• SUDKAMP, T. A. Languages and Machines: An Introduction to the Theory of Computer Science (3rd Edition). Boston, MA, USA: Addison-Wesley Longman Publishing Co., Inc., 2005. ISBN 0321322215.

Page 74: Hierarquia de Chomsky

Obrigado Dúvidas ??