O documento descreve a hierarquia de Chomsky, que classifica as linguagens formais em quatro tipos principais com base na potência expressiva de suas gramáticas geradoras e reconhecedores associados. O documento explica cada tipo de linguagem formal na hierarquia, começando pelas linguagens regulares no nível 3 e terminando com as linguagens recursivamente enumeráveis no nível 0.
16. Gramáticas Regulares
G = ({S, A}, {a, b}, P, S)
S ⟶ aA
A ⟶ baA | λ
L = { a(ba)* }
(aba, ababa, abababa)
17. 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)
18. 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)
32. Gramáticas Livres de Contexto
L = { anbn | n ≥ 0 }
(ab, aabb, aaabbb)
G = ({S}, {a, b}, P, S)
S ⟶ aSb
S ⟶ λ
33. 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] )
34. 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] )
36. Autômatos com Pilha
• L = { anbn | n ≥ 0 }
S qf
B
(a, λ, B)
(b, B, λ)
(b, B, λ)
(λ, λ, λ) (λ, λ, λ)
37. 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, λ)
(λ, λ, λ) (λ, λ, λ)
38. 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, λ)
(λ, λ, λ) (λ, λ, λ)
39. 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, λ)
(λ, λ, λ) (λ, λ, λ)
51. 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] )
53. 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
54. 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
55. 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
56. 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
58. Linguagens Recursivamente Enumeráveis (0)
Linguagens Sensíveis ao Contexto (1)
Hierarquia de Chomsky
Linguagens Livre de Contexto (2)
Linguagens Regulares (3)
59. 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
60. !
L = { anbncn | n > 0 }
abc, aaabbbccc, aabbcc
!
L = { ww | w ϵ {a, b}* }
aa, aabb, abaaba
Linguagens Sensíveis
ao Contexto
61. Gramáticas Sensíveis ao Contexto
G = (V, T, P, S)
!
Regras de Produção:
u ⟶ w
Sendo que u ϵ (T ∪ V)+ e w ϵ (T ∪ V)*, e |u| ≤ |w|.
62. Gramáticas Sensíveis ao Contexto
G = (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 ⟶ λ
65. 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)
73. 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.