Vous êtes sur la page 1sur 1593

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Linguagens Formais e Autômatos
Autômatos
finitos

Linguagens e
gramáticas
Humberto Longo
regulares

Linguagens Instituto de Informática


livres de
contexto Universidade Federal de Goiás

Autômatos
com pilha e
GLC’s
Bacharelado em Ciência da Computação, 2018/2
Máquinas de
Turing

(1 – 1 de 1593)
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos Introdução
Alfabetos e
linguagens

Autômatos
finitos Linguagens formais
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(2 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2
J.D.Ullman, J.E.Hopcroft, R. Motwani - Introdução à Teoria de Autômatos, Linguagens e Computação
H. Longo
“A Teoria dos Autômatos é o estudo dos dispositivos de computação abstratos, ou ‘máquinas’. Antes de existirem
Introdução os computadores, na década de 1930, Alan Turing estudou uma máquina abstrata que tinha todas as
Linguagens formais
características dos computadores atuais, pelo menos no que se refere ao quanto eles poderiam calcular. O
Reconhecedores e
gramáticas objetivo de Turing era descrever com exatidão o limite entre o que uma máquina de computação podia fazer e
Hierarquia de
Chomsky
aquilo que ela não podia fazer.
Fundamentos Nas décadas de 1940 e 1950, tipos de máquinas mais simples, que hoje chamamos ‘autômatos finitos’, foram
matemáticos estudados por diversos pesquisadores. Esses autômatos, propostos originalmente para modelar a função do
Alfabetos e cérebro (através de modelos conhecidos como ‘Redes Neuronais’), se mostraram extremamente úteis para uma
linguagens grande variedade de outros propósitos.
Autômatos Também no final dos anos 50, o linguista Noam Chomsky iniciou o estudo de ‘gramáticas’ formais. Embora não
finitos
sejam estritamente máquinas, essas gramáticas têm relacionamentos estreitos com os autômatos abstratos e
Linguagens e hoje servem como a base de alguns importantes componentes de software, incluindo algumas partes dos
gramáticas
regulares
compiladores.

Linguagens Todos estes desenvolvimentos teóricos têm relação direta com aquilo que os cientistas da computação fazem
livres de hoje. Alguns conceitos, como autômatos finitos e certos tipos de gramáticas formais, são usados no projeto e na
contexto construção de componentes de software. Outros conceitos, como a máquina de Turing, ajudam a entender o que
Autômatos podemos esperar de nosso software. Em especial, a teoria de problemas intratáveis nos permite deduzir se
com pilha e temos a chance de, ao nos depararmos com um problema, sermos capazes de escrever um programa para
GLC’s
resolvê-lo (porque ele não pertence à classe intratável), ou se teremos de descobrir algum modo de contornar o
Máquinas de problema intratável: encontrar uma aproximação, usar uma heurística ou empregar algum outro método para
Turing
limitar o período de tempo que o programa despendera para resolver o problema”.
(3 – 16 de 1593)
Linguagem
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de Definição?
Chomsky

Fundamentos Uma forma de comunicação.


matemáticos

Alfabetos e Um conjunto de elementos (símbolos) e um conjunto de métodos (regras)


linguagens
para combinar estes elementos, usado e entendido por uma determinada
Autômatos
finitos
comunidade:
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(4 – 16 de 1593)
Linguagem
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de Definição?
Chomsky

Fundamentos Uma forma de comunicação.


matemáticos

Alfabetos e Um conjunto de elementos (símbolos) e um conjunto de métodos (regras)


linguagens
para combinar estes elementos, usado e entendido por uma determinada
Autômatos
finitos
comunidade:
Linguagens e Linguagens naturais (ou idiomas).
gramáticas
regulares
Linguagens de programação.
Linguagens
Protocolos de comunicação.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(5 – 16 de 1593)
Linguagem
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Uma linguagem é um meio de comunicação, utilizado por elementos de uma
Fundamentos
determinada comunidade, formado por:
matemáticos Conjunto de palavras.
Alfabetos e Conjunto de regras gramaticais.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(6 – 16 de 1593)
Linguagem
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Uma linguagem é um meio de comunicação, utilizado por elementos de uma
Fundamentos
determinada comunidade, formado por:
matemáticos Conjunto de palavras.
Alfabetos e Conjunto de regras gramaticais.
linguagens

Autômatos
finitos
Uma linguagem é formal quando pode ser representada através de um
Linguagens e
sistema, com sustentação matemática, formado por:
gramáticas
regulares
Sintaxe (estrutura) – foco da disciplina.
Linguagens
Semântica (significado) – não interessa para nós.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(7 – 16 de 1593)
Linguagens Formais
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Mecanismos formais para representação/especificação de linguagens,
Hierarquia de
Chomsky baseados na chamada “Teoria da Computação”.
Fundamentos
matemáticos Reconhecedores: dispositivos formais que servem para verificar se uma
Alfabetos e
linguagens
palavra pertence ou não à determinada linguagem (autômatos finitos,
Autômatos
autômatos de pilha e máquina de Turing).
finitos

Linguagens e
Geradores: dispositivos formais que permitem a geração sistemática de
gramáticas
regulares
todas as palavras de uma linguagem. Os principais sistemas geradores
Linguagens disponíveis são as gramáticas, onde se destacam as gramáticas de
livres de
contexto
Chomsky.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(8 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Objetivo
Reconhecedores e
gramáticas Estudo de modelos matemáticos que possibilitam a especificação e o
Hierarquia de
Chomsky
reconhecimento de linguagens (no sentido formal do termo), suas
Fundamentos
matemáticos classificações, estruturas, propriedades, características e
Alfabetos e inter-relacionamentos.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(9 – 16 de 1593)
Linguagens Formais e Autômatos
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Objetivo
Reconhecedores e
gramáticas Estudo de modelos matemáticos que possibilitam a especificação e o
Hierarquia de
Chomsky
reconhecimento de linguagens (no sentido formal do termo), suas
Fundamentos
matemáticos classificações, estruturas, propriedades, características e
Alfabetos e inter-relacionamentos.
linguagens

Autômatos
finitos Importância na Ciência da Computação
Linguagens e
gramáticas
Apoio a outros aspectos teóricos da Ciência da Computação (decidibilidade,
regulares computabilidade, complexidade computacional, . . . ).
Linguagens
livres de
contexto Fundamenta diversas aplicações computacionais (processamento de
Autômatos linguagens, reconhecimento de padrões, modelagem de sistemas, . . . ).
com pilha e
GLC’s

Máquinas de
Turing

(10 – 16 de 1593)
Definições
LFA 2018/2

H. Longo Alfabeto: conjunto finito de símbolos ou caracteres.


Introdução Ex: {0, 1}, {a, b}, {a, b, c, . . . , z}.
Linguagens formais
Reconhecedores e
gramáticas
Cadeia de símbolos: sequência de zero ou mais símbolos (de um alfabeto)
Hierarquia de
Chomsky justapostos.
Fundamentos
matemáticos
Ex: 01100110, abababab . . . , abc . . . z.
Alfabetos e Palavra: cadeia finita de símbolos.
linguagens

Autômatos
Exemplos: 01, a, b, abc.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(11 – 16 de 1593)
Definições
LFA 2018/2

H. Longo Alfabeto: conjunto finito de símbolos ou caracteres.


Introdução Ex: {0, 1}, {a, b}, {a, b, c, . . . , z}.
Linguagens formais
Reconhecedores e
gramáticas
Cadeia de símbolos: sequência de zero ou mais símbolos (de um alfabeto)
Hierarquia de
Chomsky justapostos.
Fundamentos
matemáticos
Ex: 01100110, abababab . . . , abc . . . z.
Alfabetos e Palavra: cadeia finita de símbolos.
linguagens

Autômatos
Exemplos: 01, a, b, abc.
finitos

Linguagens e
gramáticas
Notação
Σ : conjunto de símbolos (um alfabeto).
regulares

Linguagens
livres de
contexto
ε : cadeia ou palavra vazia.
Autômatos Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
com pilha e
GLC’s
Σ+ = Σ∗ − {ε}.
Máquinas de
Turing

(12 – 16 de 1593)
Definições
LFA 2018/2

H. Longo Alfabeto: conjunto finito de símbolos ou caracteres.


Introdução Ex: {0, 1}, {a, b}, {a, b, c, . . . , z}.
Linguagens formais
Reconhecedores e
gramáticas
Cadeia de símbolos: sequência de zero ou mais símbolos (de um alfabeto)
Hierarquia de
Chomsky justapostos.
Fundamentos
matemáticos
Ex: 01100110, abababab . . . , abc . . . z.
Alfabetos e Palavra: cadeia finita de símbolos.
linguagens

Autômatos
Exemplos: 01, a, b, abc.
finitos

Linguagens e
gramáticas
Notação
Σ : conjunto de símbolos (um alfabeto).
regulares

Linguagens
livres de
contexto
ε : cadeia ou palavra vazia.
Autômatos Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
com pilha e
GLC’s
Σ+ = Σ∗ − {ε}.
Máquinas de
Turing |w| : comprimento ou tamanho da palavra w (número de símbolos em w).
(13 – 16 de 1593)
Linguagem Formal
LFA 2018/2

H. Longo

Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(14 – 16 de 1593)
Linguagem Formal
LFA 2018/2

H. Longo

Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky

Fundamentos Se Σ = {a, b}, então são linguagens sobre Σ:


matemáticos
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
(Atenção: { } , {ε} , ε).
Alfabetos e
linguagens

Autômatos Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e
gramáticas
sobre Σ.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(15 – 16 de 1593)
Linguagem Formal
LFA 2018/2

H. Longo

Introdução
Linguagens formais Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
Reconhecedores e
gramáticas
Hierarquia de
símbolos (palavras) do alfabeto.
Chomsky

Fundamentos Se Σ = {a, b}, então são linguagens sobre Σ:


matemáticos
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
(Atenção: { } , {ε} , ε).
Alfabetos e
linguagens

Autômatos Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e
gramáticas
sobre Σ.
regulares

Linguagens Linguagem Σ∗ : conjunto de todas as sequências de símbolos do alfabeto Σ.


livres de
contexto ε ∈ Σ∗ .
Autômatos L ⊆ Σ∗ , se L é uma linguagem em Σ.
com pilha e
GLC’s

Máquinas de
Turing

(16 – 16 de 1593)
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos Introdução
Alfabetos e
linguagens

Autômatos
finitos Reconhecedores e gramáticas
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(17 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(18 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(19 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(20 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos 3 não para!
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(21 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Um reconhecedor de L ⊆ Σ∗ é a representação de um procedimento que,
Linguagens formais quando apresentado a uma cadeia w ∈ Σ∗ :
Reconhecedores e
gramáticas 1 se w ∈ L, para e responde sim, após um número finito de passos; ou
Hierarquia de
Chomsky 2 se w < L, para e responde não, após um número finito de passos; ou
Fundamentos 3 não para!
matemáticos

Alfabetos e
linguagens
Cadeia w = w1 w2 · · · wn ∈ Σ∗
Autômatos
finitos Fita de entrada
Linguagens e ... w1 w2 ... wn−1 wn ...
gramáticas
regulares

Linguagens
Cabeça de leitura/escrita
(movimento bidirecional)
livres de
contexto
Controle
Autômatos
com pilha e finito de Memória
GLC’s estados
Máquinas de
Turing

(22 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(23 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens Um reconhecedor aceita (ou reconhece) uma cadeia w se:
Autômatos
finitos
1 parte de uma configuração inicial;
2 a cabeça de leitura/escrita faz uma sequência finita de movimentos; e
Linguagens e
gramáticas 3 termina em uma configuração final.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(24 – 35 de 1593)
Reconhecedor
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas Uma configuração do reconhecedor é uma descrição:
Hierarquia de
Chomsky 1 do estado do controle finito,
Fundamentos 2 do conteúdo da fita de entrada e da posição da cabeça de leitura/escrita, e
matemáticos
3 do conteúdo da memória.
Alfabetos e
linguagens Um reconhecedor aceita (ou reconhece) uma cadeia w se:
Autômatos
finitos
1 parte de uma configuração inicial;
2 a cabeça de leitura/escrita faz uma sequência finita de movimentos; e
Linguagens e
gramáticas 3 termina em uma configuração final.
regulares

Linguagens
A linguagem aceita por um reconhecedor R é:
livres de
contexto
L(R) = {w ∈ Σ∗ | R aceita w}.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(25 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.1
Chomsky

Fundamentos
Uma gramática é uma 4-upla G = (V, Σ, P, S ) onde:
matemáticos
V é um conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ é um conjunto finito não vazio de símbolos, chamados de terminais, tal que
Autômatos
Σ ∩ V = ∅;
finitos S é o símbolo (não terminal) inicial (S ∈ V ); e
Linguagens e P é um conjunto de regras de derivação (ou de produção) da forma α → β, onde:
gramáticas
regulares α ∈ (V ∪ Σ)∗ V(V ∪ Σ)∗ ,
Linguagens
β ∈ (V ∪ Σ)∗ .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(26 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo
Exemplo 1.2
Introdução G = (V, Σ, P, S ) onde:
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky V = {S , N p , V p , Vi , Vt , V s , C, P f }
Fundamentos
matemáticos Σ = {João, Maria, sorri, ama, pensa, que}
 
Alfabetos e
linguagens


 S → Np VpP f 



 

Autômatos



 V p → V i | Vt N p | V s C S 



finitos 
 

N → João | Maria

 

Linguagens e


 p 


gramáticas

 

 Vi → sorri

 

regulares
P=
 


Linguagens
livres de



 Vt → ama 



contexto

 

V → pensa

 


 s 

Autômatos 

 


com pilha e
GLC’s




 C → que 





P → .
 


Máquinas de f
Turing

(27 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos

Alfabetos e P = {S → ab, S → aAS b, S → bS b, AS → bS b, A → ε, aAS Ab → aa}.


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(28 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos

Alfabetos e P = {S → ab, S → aAS b, S → bS b, AS → bS b, A → ε, aAS Ab → aa}.


linguagens

Autômatos
finitos Exemplo 1.4
Linguagens e
gramáticas
L = {0n 1n | n ≥ 1} = {01, 0011, 000111, . . . }.
regulares
Gramática que gera L:
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(29 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Exemplo 1.3
Introdução
Linguagens formais
Reconhecedores e
G = (V, Σ, P, S ), onde:
V = {A, S },
gramáticas
Hierarquia de
Chomsky
S : símbolo (não-terminal) inicial,
Σ = {a, b},
Fundamentos
matemáticos

Alfabetos e P = {S → ab, S → aAS b, S → bS b, AS → bS b, A → ε, aAS Ab → aa}.


linguagens

Autômatos
finitos Exemplo 1.4
Linguagens e
gramáticas
L = {0n 1n | n ≥ 1} = {01, 0011, 000111, . . . }.
regulares
Gramática que gera L:
Linguagens
livres de Σ = {0, 1},
contexto
Símbolo inicial: S ,
Autômatos
com pilha e
V = {S },
GLC’s P = {S → 0S 1, S → 01}.
Máquinas de
Turing

(30 – 35 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
No contexto usual de linguagens de programação:
Fundamentos
matemáticos Σ (símbolos) ≡ palavras reservadas, variáveis definidas, símbolos
Alfabetos e
linguagens
numéricos, operadores, delimitadores . . .
Autômatos w (cadeia) ≡ programa sintaticamente correto,
finitos
L (linguagem) ≡ conjunto de programas sintaticamente corretos,
Linguagens e
gramáticas G (gramática) ≡ estrutura sintática dos programas.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(31 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Outro modo de se representar algumas gramáticas (GLC).
Fundamentos Símbolo → é substituído por ::=.
matemáticos

Alfabetos e Símbolos não terminais são ladeados por hi.


linguagens

Autômatos
As várias regras de derivação de um mesmo símbolo não terminal A são
finitos escritas como: hAi ::= β1 | β2 | . . . | βn .
Linguagens e
gramáticas Os símbolos h, i, ::= e | formam a metalinguagem, ou seja, são símbolos que
regulares
não fazem parte da linguagem mas ajudam a descrevê-la!
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(32 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2

H. Longo
Exemplo 1.5
Introdução
Linguagens formais G = (V, Σ, P, S ) onde:
Reconhecedores e
gramáticas
Hierarquia de

V = {hsentençai, hsni, hsvi, hartigoi, hsubstantivoi, hverboi};


Chomsky

Fundamentos
matemáticos
Σ = {o, a, peixe, comeu, isca};
Alfabetos e
linguagens S = hsentençai e
Autômatos
hsentençai ::= hsnihsvi
 
finitos 
 


 

Linguagens e
hsn i ::= hartigo ihsubstantivo i


 


gramáticas 

 


regulares  
h sv i ::= hverbo ih sn i

 

P= .

 

Linguagens

livres de
contexto



 h artigo i ::= o | a 




 

hverbo i ::= mordeu
 
Autômatos


 


com pilha e


 


GLC’s hsubstantivoi ::= peixe | isca 
Máquinas de
Turing

(33 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2

H. Longo
Exemplo 1.6 (Subconjunto da gramática da linguagem Pascal)
Introdução
Linguagens formais
Regras léxicas:
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
hdigiti ::= 0 | 1 | . . . | 9
Fundamentos
matemáticos hnumberi ::= hdigiti | hdigitihnumberi | −hnumberi
Alfabetos e
linguagens hidentifieri ::= hletteri | hidentifierihletteri | hidentifierihdigiti
Autômatos
finitos
hletteri ::= a | b | c | . . . | z
Linguagens e hoperatori ::= + | − | ∗ | /
gramáticas
regulares hrelationi ::= <= | >= | == | > | < |!=
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(34 – 35 de 1593)
BNF – Forma Normal de Backus
LFA 2018/2

H. Longo
Exemplo 1.6 (Subconjunto da gramática da linguagem Pascal)
Introdução
Linguagens formais
Regras sintáticas:
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
hprogrami ::= program hidentifieri; hblocki
Fundamentos
matemáticos
hblocki ::= hdeclaration seqi begin hcommand seqi end.
Alfabetos e hdeclaration seqi ::= ε | hdeclarationihdeclaration seqi
linguagens

Autômatos
hdeclarationi ::= var hvariable listi : htypei;
finitos
htypei ::= boolean | integer | real | string
Linguagens e
gramáticas
regulares
hcommand seqi ::= hcommandi | hcommandihcommand seqi
Linguagens hcommmandi ::= hvariablei = hexpressioni |
livres de
contexto if hboolean expri then hcommand seqi end |
Autômatos
com pilha e while hboolean expri do hcommand seqi end |
GLC’s

Máquinas de
...
Turing

(35 – 35 de 1593)
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos Introdução
Alfabetos e
linguagens

Autômatos
finitos Hierarquia de Chomsky
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(36 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.7 (Gramática Irrestrita ou Tipo-0)
G = (V, Σ, P, S ), onde:
Chomsky

Fundamentos
matemáticos V= conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ= conjunto finito não vazio de símbolos, chamados de terminais, tal que Σ ∩ V = ∅;
S = símbolo (não terminal) inicial (S ∈ V ); e
Autômatos
finitos P= conjunto de regras (de produção) da forma α → β, onde:
Linguagens e α ∈ (V ∪ Σ)+ ,
gramáticas
regulares
β ∈ (V ∪ Σ)∗ .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(37 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Definição 1.7 (Gramática Irrestrita ou Tipo-0)
G = (V, Σ, P, S ), onde:
Chomsky

Fundamentos
matemáticos V= conjunto finito não vazio de símbolos, chamados de não-terminais;
Alfabetos e
linguagens
Σ= conjunto finito não vazio de símbolos, chamados de terminais, tal que Σ ∩ V = ∅;
S = símbolo (não terminal) inicial (S ∈ V ); e
Autômatos
finitos P= conjunto de regras (de produção) da forma α → β, onde:
Linguagens e α ∈ (V ∪ Σ)+ ,
gramáticas
regulares
β ∈ (V ∪ Σ)∗ .
Linguagens Gramática Semi-Thue ou Gramática de Estrutura de Frase.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(38 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Definição 1.8 (Gramática Sensível ao Contexto ou Tipo-1)
Fundamentos
matemáticos G = (V, Σ, P, S ), com toda produção α → β de P da forma:
Alfabetos e α ∈ (V ∪ Σ)∗ (V ∪ Σ)(V ∪ Σ)∗ ,
β ∈ (V ∪ Σ)∗ (V ∪ Σ)+ (V ∪ Σ)∗ ,
linguagens

Autômatos
finitos S → ε.
Linguagens e Se esta regra de produção ocorrer, S não pode aparecer no lado direito de
gramáticas qualquer outra produção.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(39 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos
Definição 1.9 (Gramática Livre de Contexto ou Tipo-2)
Alfabetos e G = (V, Σ, P, S ), com toda produção α → β de P da forma:
linguagens

Autômatos
α ∈ V,
finitos β ∈ (V ∪ Σ)∗ .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(40 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
gramáticas
Hierarquia de
Chomsky

Fundamentos
matemáticos
Definição 1.10 (Gramática Regular ou Tipo-3)
Alfabetos e G = (V, Σ, P, S ), com toda produção α → β de P da forma:
linguagens

Autômatos
α ∈ V,
finitos β ∈ ΣV ∪ VΣ ∪ Σ ∪ ε.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(41 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
Observações
gramáticas
Hierarquia de
Chomsky
Tipos 2 e 3: só existe 1 não-terminal no lado esquerdo das produções.
Fundamentos Tipo-1: pode haver mais de 1 não-terminal no lado esquerdo, mas só 1 é
matemáticos
transformado em cada regra de produção.
Alfabetos e
linguagens
Tipo-0: qualquer quantidade de não-terminais no lado esquerdo das
Autômatos
finitos produções.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(42 – 48 de 1593)
Tipos de Gramáticas
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Reconhecedores e
Observações
gramáticas
Hierarquia de
Chomsky
Tipos 2 e 3: só existe 1 não-terminal no lado esquerdo das produções.
Fundamentos Tipo-1: pode haver mais de 1 não-terminal no lado esquerdo, mas só 1 é
matemáticos
transformado em cada regra de produção.
Alfabetos e
linguagens
Tipo-0: qualquer quantidade de não-terminais no lado esquerdo das
Autômatos
finitos produções.
Linguagens e
gramáticas
regulares Definição 1.11
Linguagens
livres de
Uma linguagem L é do Tipo- x, se existe uma gramática G do Tipo- x, L = L(G)
contexto
(isto é, a linguagem L é gerada pela gramática G).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(43 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2

H. Longo

Introdução
Linguagens formais
Tipos de linguagens e reconhecedores
Reconhecedores e
gramáticas
Hierarquia de
Chomsky
Irrestrita ≡ Tipo 0
Fundamentos Recursivamente Enumerável
matemáticos (Máquina de Turing – MT)
Alfabetos e
linguagens
Sensível ao Contexto ≡ Tipo 1
Autômatos
finitos
(Autômato Limitado Linearmente – LBA)
Linguagens e
gramáticas Livre de Contexto ≡ Tipo 2
regulares
(Autômato com Pilha – PDA)
Linguagens
livres de
contexto
Regular ≡ Tipo 3
(Autômato Finito – DFA)
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(44 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2

H. Longo

Tipos de linguagens e reconhecedores


Introdução
Linguagens formais
Reconhecedores e
Tipo-0 Produções arbitrárias.
gramáticas
Hierarquia de
Chomsky
M.T. Memória arbitrariamente grande.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(45 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2

H. Longo

Tipos de linguagens e reconhecedores


Introdução
Linguagens formais
Reconhecedores e
Tipo-0 Produções arbitrárias.
gramáticas
Hierarquia de
Chomsky
M.T. Memória arbitrariamente grande.

Tipo-1 Produções da forma α → β tal que |α| ≤ |β|, α, β ∈ (V ∪ Σ)∗ .


Fundamentos
matemáticos

Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(46 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2

H. Longo

Tipos de linguagens e reconhecedores


Introdução
Linguagens formais
Reconhecedores e
Tipo-0 Produções arbitrárias.
gramáticas
Hierarquia de
Chomsky
M.T. Memória arbitrariamente grande.

Tipo-1 Produções da forma α → β tal que |α| ≤ |β|, α, β ∈ (V ∪ Σ)∗ .


Fundamentos
matemáticos

Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.

Tipo-2 Produções da forma A → α tal que A ∈ V, α ∈ (V ∪ Σ)∗ e |α| finito.


Autômatos
finitos

Linguagens e
gramáticas
P.D.A Memória em pilha, com uma quantidade fixa de posições disponíveis
regulares
em um dado tempo.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(47 – 48 de 1593)
Hierarquia de Chomsky
LFA 2018/2

H. Longo

Tipos de linguagens e reconhecedores


Introdução
Linguagens formais
Reconhecedores e
Tipo-0 Produções arbitrárias.
gramáticas
Hierarquia de
Chomsky
M.T. Memória arbitrariamente grande.

Tipo-1 Produções da forma α → β tal que |α| ≤ |β|, α, β ∈ (V ∪ Σ)∗ .


Fundamentos
matemáticos

Alfabetos e
linguagens
L.B.A. Memória proporcional ao comprimento da cadeia de entrada.

Tipo-2 Produções da forma A → α tal que A ∈ V, α ∈ (V ∪ Σ)∗ e |α| finito.


Autômatos
finitos

Linguagens e
gramáticas
P.D.A Memória em pilha, com uma quantidade fixa de posições disponíveis
regulares
em um dado tempo.
Linguagens
livres de
contexto Tipo-3 Produções da forma (unitária) A → wB ou A → w tal que
Autômatos A, B ∈ V, w ∈ (Σ ∪ {ε}).
com pilha e
GLC’s D.F.A. Sem memória.
Máquinas de
Turing

(48 – 48 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Conjuntos
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (49 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos Conjunto: coleção não ordenada de elementos.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (50 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos Conjunto: coleção não ordenada de elementos.


matemáticos
Conjuntos S = {x | P(x)} (P é um predicado unário).
Relações e funções
Conjuntos infinitos
Lógica
S = {x | P(x)} ≡ (∀ x)[(x ∈ S ⇒ P(x)) ∧ (P(x) ⇒ x ∈ S )].
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (51 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos Conjunto: coleção não ordenada de elementos.


matemáticos
Conjuntos S = {x | P(x)} (P é um predicado unário).
Relações e funções
Conjuntos infinitos
Lógica
S = {x | P(x)} ≡ (∀ x)[(x ∈ S ⇒ P(x)) ∧ (P(x) ⇒ x ∈ S )].
Definições, teoremas
e provas
Indução Conjuntos padrões:
Alfabetos e N : inteiros não negativos (0 ∈ N).
Z
linguagens
: inteiros.
Q
Autômatos
finitos
: racionais.
Linguagens e
R : reais.
C
gramáticas
regulares
: complexos.
Linguagens
livres de ∅ : conjunto vazio.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (52 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (53 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (54 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos P(S ) : conjunto das partes de S .
Linguagens e conjunto potência de S .
gramáticas
regulares todos os subconjuntos de S .
Linguagens |P(S )| = 2|S | .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (55 – 76 de 1593)
Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ( B ≡ A ⊂ B ≡ A ⊆ B e A , B : subconjunto próprio.
Conjuntos
Relações e funções
A = B ⇒ A ⊆ B e B ⊆ A.
Conjuntos infinitos
Lógica
Definições, teoremas Para qualquer conjunto S , ∅:
e provas
Indução
S ⊆ S : subconjunto impróprio.
Alfabetos e
linguagens
∅ ⊂ S : ∅ é subconjunto próprio de qualquer conjunto S .
Autômatos
finitos P(S ) : conjunto das partes de S .
Linguagens e conjunto potência de S .
gramáticas
regulares todos os subconjuntos de S .
Linguagens |P(S )| = 2|S | . (Exercício: Provar esta igualdade.)
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (56 – 76 de 1593)
Operações em conjuntos
LFA 2018/2

H. Longo

Introdução
U : conjunto universo.
A − B = {x ∈ U | x ∈ A e x < B}.
Fundamentos
matemáticos
Conjuntos

A ∩ B = {x ∈ U | x ∈ A e x ∈ B}.
Relações e funções
Conjuntos infinitos

A ∪ B = {x ∈ U | x ∈ A ou x ∈ B}.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (57 – 76 de 1593)
Operações em conjuntos
LFA 2018/2

H. Longo

Introdução
U : conjunto universo.
A − B = {x ∈ U | x ∈ A e x < B}.
Fundamentos
matemáticos
Conjuntos

A ∩ B = {x ∈ U | x ∈ A e x ∈ B}.
Relações e funções
Conjuntos infinitos

A ∪ B = {x ∈ U | x ∈ A ou x ∈ B}.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e A : complemento do conjunto A.


linguagens

Autômatos
U
A = {x | x ∈ e x < A}.
finitos A = A0 = Ac = {U
A
.
Linguagens e
gramáticas
A∩A=∅e A∪A= . U
A
regulares
{B quando A ⊆ B.
Linguagens B
livres de {A quando B ⊆ A.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (58 – 76 de 1593)
Produto cartesiano
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (59 – 76 de 1593)
Produto cartesiano
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas n
e provas
Indução
Ai = A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai }
i=1
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (60 – 76 de 1593)
Produto cartesiano
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

A × B = {(a, b) | a ∈ A e b ∈ B}
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas n
e provas
Indução
Ai = A1 × A2 × . . . × An = {(a1 , a2 , . . . , an ) | ai ∈ Ai }
i=1
Alfabetos e
linguagens 
n
Autômatos
Ai = A, i = 1, . . . , n ⇒ Ai = An
finitos i=1
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (61 – 76 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (62 – 76 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
A ⊆ D e B ⊆ D ⇒ (A ∪ B) ⊆ D.
e provas
Indução D ⊆ A e D ⊆ B ⇒ D ⊆ (A ∩ B).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (63 – 76 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A ⊆ (A ∪ B) e B ⊆ (A ∪ B).
Conjuntos
Relações e funções
(A ∩ B) ⊆ A e (A ∩ B) ⊆ B.
Conjuntos infinitos
Lógica
Definições, teoremas
A ⊆ D e B ⊆ D ⇒ (A ∪ B) ⊆ D.
e provas
Indução D ⊆ A e D ⊆ B ⇒ D ⊆ (A ∩ B).
Alfabetos e
linguagens
|A ∪ B| ≤ |A| + |B|.
Autômatos
finitos |A ∩ B| ≤ min{|A|, |B|}.
Linguagens e
gramáticas |A − B| ≤ |A|.
regulares

Linguagens
|A × B| ≤ |A|.|B|.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (64 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2

H. Longo

Introdução

Fundamentos |A ∪ B| = |A| + |B| − |A ∩ B|.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (65 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2

H. Longo

Introdução

Fundamentos |A ∪ B| = |A| + |B| − |A ∩ B|.


matemáticos

|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|.


Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (66 – 76 de 1593)
Princípio da Inclusão e Exclusão
LFA 2018/2

H. Longo

Introdução

Fundamentos |A ∪ B| = |A| + |B| − |A ∩ B|.


matemáticos

|A ∪ B ∪ C| = |A| + |B| + |C| − |A ∩ B| − |A ∩ C| − |B ∩ C| + |A ∩ B ∩ C|.


Conjuntos
Relações e funções
Conjuntos infinitos  P n
Lógica
Definições, teoremas



 |Ai | −
e provas 
 i=1P
+
Indução

|Ai ∩ A j |



Alfabetos e


linguagens


 1≤i< j≤n

|A1 ∪ · · · ∪ An | = 
 P
|Ai ∩ A j ∩ Ak | −

Autômatos
finitos


 1≤i< j<k≤n

..


Linguagens e 
. +


gramáticas 

regulares



Linguagens
 (−1)n+1 |A1 ∩ · · · ∩ An |.


livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (67 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (68 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (69 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens Distributivas:
Autômatos (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C).
finitos
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (70 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Comutativas:
Introdução A ∪ B = B ∪ A.
Fundamentos A ∩ B = B ∩ A.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Associativas:
Lógica
Definições, teoremas
(A ∪ B) ∪ C = A ∪ (B ∪ C).
e provas
Indução
(A ∩ B) ∩ C = A ∪ (B ∩ C).
Alfabetos e
linguagens Distributivas:
Autômatos (A ∪ B) ∩ C = (A ∩ C) ∪ (B ∩ C).
finitos
(A ∩ B) ∪ C = (A ∪ C) ∩ (B ∪ C).
Linguagens e
gramáticas
regulares Identidades:
Linguagens
(A ∪ ∅) = A.
U U
livres de
contexto (A ∪ ) = .
Autômatos (A ∩ ∅) = ∅.
com pilha e
GLC’s U
(A ∩ ) = A.
Máquinas de
Turing (71 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (72 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos Complementação:
Lógica
Definições, teoremas
e provas
U
(A ∪ Ac ) = .
(A ∩ Ac ) = ∅.
U
Indução

Alfabetos e
c
= ∅.
linguagens
∅ = .
c
U
Autômatos
finitos (Ac )c = A.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (73 – 76 de 1593)
Leis da álgebra de conjuntos
LFA 2018/2

H. Longo
Idempotentes:
Introdução
(A ∪ A) = A.
Fundamentos
matemáticos (A ∩ A) = A.
Conjuntos
Relações e funções
Conjuntos infinitos Complementação:
Lógica
Definições, teoremas
e provas
U
(A ∪ Ac ) = .
(A ∩ Ac ) = ∅.
U
Indução

Alfabetos e
c
= ∅.
linguagens
∅ = .
c
U
Autômatos
finitos (Ac )c = A.
Linguagens e
gramáticas DeMorgan:
regulares

Linguagens
(A ∪ B)c = Ac ∩ Bc .
livres de (A ∩ B)c = Ac ∪ Bc .
contexto
A − (B ∪ C) = (A − B) ∩ (A − C).
A − (B ∩ C) = (A − B) ∪ (A − C).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (74 – 76 de 1593)
Partição de um conjunto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções Π = {Ai ⊂ A | i ∈ I}.
Conjuntos infinitos
Lógica I : conjunto de índices (não necessariamente finito).
Definições, teoremas
e provas A : conjunto qualquer.
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (75 – 76 de 1593)
Partição de um conjunto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções Π = {Ai ⊂ A | i ∈ I}.
Conjuntos infinitos
Lógica I : conjunto de índices (não necessariamente finito).
Definições, teoremas
e provas A : conjunto qualquer.
Indução

Alfabetos e Π é uma partição de A se:


linguagens
A ∩ A j = ∅, ∀ i , j, i, j ∈ I .
Autômatos Si
finitos Ai = A.
i∈I
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (76 – 76 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Relações e funções
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (77 – 119 de 1593)
Relação binária
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R ⊆ A × A:
Lógica
Definições, teoremas
a R b ⇔ (a, b) ∈ R.
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (78 – 119 de 1593)
Relação binária
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R ⊆ A × A:
Lógica
Definições, teoremas
a R b ⇔ (a, b) ∈ R.

N × N.
e provas

R1 = {(x, y) | x = y + 1} ⊆
Indução

R2 = {(x, y) | x + y é impar} ⊆ N × N.
Alfabetos e
linguagens

R3 = {(x, y) | x · y é par} ⊆ N × N.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (79 – 119 de 1593)
Tipos de relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (80 – 119 de 1593)
Tipos de relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
um-para-um (injetiva, biunívoca);
e provas
Indução
um-para-vários;
Alfabetos e vários-para-um (unívoca); e
linguagens vários-para-vários.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (81 – 119 de 1593)
Tipos de relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos A, B : conjuntos finitos.
Conjuntos
Relações e funções
Conjuntos infinitos
R = {(a, b) | a ∈ A e b ∈ B}:
Lógica
Definições, teoremas
um-para-um (injetiva, biunívoca);
e provas
Indução
um-para-vários;
Alfabetos e vários-para-um (unívoca); e
linguagens vários-para-vários.
Autômatos
finitos
Relação inversa:
Linguagens e
gramáticas R = {(a, b) | a ∈ A e b ∈ B}.
regulares R−1 = {(b, a) ∈ B × A | (a, b) ∈ R}.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (82 – 119 de 1593)
Operações com relações
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos R1 , R2 : relações definidas no conjunto finito S , ∅.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (83 – 119 de 1593)
Operações com relações
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos R1 , R2 : relações definidas no conjunto finito S , ∅.
Lógica
Definições, teoremas
e provas x(R1 ∪ R2 )y ⇔ xR1 y ou x R2 y.
Indução

Alfabetos e
linguagens
x(R1 ∩ R2 )y ⇔ xR1 y e x R2 y.
Autômatos
finitos
x(Rc1 )y ⇔ x R
6 1 y ((x, y) < R1 ).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (84 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (85 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (86 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (87 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução

Alfabetos e Simétrica : xRy ⇒ yRx, ∀ x, y ∈ S .


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (88 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução

Alfabetos e Simétrica : xRy ⇒ yRx, ∀ x, y ∈ S .


linguagens

Autômatos
Antissimétrica : xRy e yRx ⇒ x = y, ∀ x, y ∈ S .
finitos
Antissimétrica : x , y ⇒ x R
6 y ou y R
6 x.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (89 – 119 de 1593)
Propriedades
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos R : relação definida no conjunto finito S , ∅.
Relações e funções
Conjuntos infinitos
Lógica
Reflexiva : xRx, ∀ x ∈ S .
Definições, teoremas
e provas 6 x, ∀ x ∈ S ((x, x) < R).
Irreflexiva : x R
Indução

Alfabetos e Simétrica : xRy ⇒ yRx, ∀ x, y ∈ S .


linguagens

Autômatos
Antissimétrica : xRy e yRx ⇒ x = y, ∀ x, y ∈ S .
finitos
Antissimétrica : x , y ⇒ x R
6 y ou y R
6 x.
Linguagens e
gramáticas Transitiva : xRy e yRz ⇒ xRz, ∀ x, y, z ∈ S .
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (90 – 119 de 1593)
Fecho de uma relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (91 – 119 de 1593)
Fecho de uma relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica R∗ é o fecho de R em relação à propriedade P se:
Definições, teoremas
e provas
Indução
R∗ tem a propriedade P;
Alfabetos e R ⊆ R∗ ;
linguagens
R∗ é o menor conjunto que satisfaz os itens anteriores;
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (92 – 119 de 1593)
Fecho de uma relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R, R∗ : relações definidas no conjunto finito S , ∅.
Conjuntos infinitos
Lógica R∗ é o fecho de R em relação à propriedade P se:
Definições, teoremas
e provas
Indução
R∗ tem a propriedade P;
Alfabetos e R ⊆ R∗ ;
linguagens
R∗ é o menor conjunto que satisfaz os itens anteriores;
Autômatos
finitos R∗ é subconjunto de qualquer outra relação em S que inclui R e tem a
Linguagens e propriedade P.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (93 – 119 de 1593)
Fecho de uma relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.1
S = {1, 2, 3}.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
R = {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3)}.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (94 – 119 de 1593)
Fecho de uma relação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.1
S = {1, 2, 3}.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
R = {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3)}.
Alfabetos e
linguagens
Fecho reflexivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 2), (3, 3)}.
Autômatos Fecho simétrico: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (2, 1), (3, 2)}.
finitos
Fecho transitivo: {(1, 1), (1, 2), (1, 3), (3, 1), (2, 3), (3, 2), (3, 3), (2, 1), (2, 2)}.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (95 – 119 de 1593)
Ordem parcial
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (96 – 119 de 1593)
Ordem parcial
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução
∀ x ∈ S ⇒ xRx.
Alfabetos e
∀ x, y ∈ S , xRy e yRx ⇒ x = y.
linguagens ∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (97 – 119 de 1593)
Ordem parcial
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
R : relação definida no conjunto finito S , ∅.
Conjuntos infinitos
Lógica
Definições, teoremas
R é de ordem parcial se é reflexiva, antissimétrica e transitiva:
e provas
Indução
∀ x ∈ S ⇒ xRx.
Alfabetos e
∀ x, y ∈ S , xRy e yRx ⇒ x = y.
linguagens ∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos x  y(R) ≡ (x, y) ∈ R:
Linguagens e x precede y na relação R.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (98 – 119 de 1593)
Ordem total
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica R : relação definida no conjunto finito S , ∅.
Definições, teoremas
e provas
Indução R é de ordem total se:
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (99 – 119 de 1593)
Ordem total
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica R : relação definida no conjunto finito S , ∅.
Definições, teoremas
e provas
Indução R é de ordem total se:
Alfabetos e R é de ordem parcial.
linguagens
∀ x, y ∈ S ⇒ x  y(R) ou y  x(R).
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (100 – 119 de 1593)
Relação de equivalência
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (101 – 119 de 1593)
Relação de equivalência
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução ∀ x ∈ S ⇒ xRx.
Alfabetos e ∀ x, y ∈ S , xRy ⇒ yRx.
linguagens
∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (102 – 119 de 1593)
Relação de equivalência
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
R : relação definida no conjunto finito S , ∅.
Lógica
Definições, teoremas R é relação de equivalência se e somente se é reflexiva, simétrica e transitiva:
e provas
Indução ∀ x ∈ S ⇒ xRx.
Alfabetos e ∀ x, y ∈ S , xRy ⇒ yRx.
linguagens
∀ x, y, z ∈ S , xRy e yRz ⇒ xRz.
N × N | x − y = 3·k para algum k ∈ Z}.
Autômatos

R = {(x, y) ∈
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (103 – 119 de 1593)
Classe de equivalência
LFA 2018/2

H. Longo

Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (104 – 119 de 1593)
Classe de equivalência
LFA 2018/2

H. Longo

Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução

Alfabetos e
linguagens
Teorema 2.2
Autômatos Se R é relação de equivalência sobre o conjunto S , então S /R é partição de S .
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (105 – 119 de 1593)
Classe de equivalência
LFA 2018/2

H. Longo

Introdução
R : relação definida no conjunto finito S , ∅.
Fundamentos
matemáticos
Conjuntos
a = {x ∈ S | xRa e a ∈ S } : classe de equivalência módulo R determinada por
Relações e funções
Conjuntos infinitos
a.
Lógica
Definições, teoremas S /R : conjunto das classes de equivalência módulo R.
e provas
Indução

Alfabetos e
linguagens
Teorema 2.2
Autômatos Se R é relação de equivalência sobre o conjunto S , então S /R é partição de S .
finitos

Linguagens e
gramáticas Teorema 2.3
regulares

Linguagens
Se Π é uma partição do conjunto S , então existe uma relação R de
livres de
contexto
equivalência sobre S , de modo que S /R = Π.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (106 – 119 de 1593)
Relação n-ária
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (107 – 119 de 1593)
Relação n-ária
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução Relação unária R em um conjunto S :
Alfabetos e R ⊆ S.
linguagens

Autômatos
x ∈ S satisfaz R se e somente se x ∈ R.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (108 – 119 de 1593)
Relação n-ária
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos S 1 , S 2 , · · · , S n – conjuntos.
Conjuntos
Relações e funções
Conjuntos infinitos
Relação n-ária em S 1 , S 2 , · · · , S n :
Lógica Subconjunto de S 1 × S 2 × · · · × S n .
Definições, teoremas
e provas
Indução Relação unária R em um conjunto S :
Alfabetos e R ⊆ S.
linguagens

Autômatos
x ∈ S satisfaz R se e somente se x ∈ R.
finitos
Relação n-ária R em um conjunto S :
Linguagens e
gramáticas R ⊆ S n.
regulares
Conjunto de n-uplas ordenadas de elementos de S .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (109 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções Definição
Conjuntos infinitos
Lógica
Definições, teoremas
f : A R B ⊂ A × B : função de um conjunto A no conjunto B.
e provas
Indução Cada elemento de A aparece exatamente uma vez como primeiro componente
Alfabetos e de um par ordenado de f .
linguagens

Autômatos Método para associar cada a ∈ A a um único b ∈ B. Logo, se


finitos (a, b), (a, c) ∈ f ⇒ b = c.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (110 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Notação
Conjuntos
Relações e funções
Conjuntos infinitos
f : A R B ( f : A → B):
Lógica
Definições, teoremas
A é o domínio (D( f )) e B o contradomínio de f .
e provas
Indução
(a, b) ∈ f ⇒ f (a) = b.
Alfabetos e
b é a imagem de a por f .
linguagens a é a pré-imagem de b por f .
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (111 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Notação
Conjuntos
Relações e funções
Conjuntos infinitos
f : A R B ( f : A → B):
Lógica
Definições, teoremas
A é o domínio (D( f )) e B o contradomínio de f .
e provas
Indução
(a, b) ∈ f ⇒ f (a) = b.
Alfabetos e
b é a imagem de a por f .
linguagens a é a pré-imagem de b por f .
Autômatos
finitos Uma relação R de A em B é uma função f : A → B se:
Linguagens e D( f ) = A;
gramáticas
regulares Dado a ∈ D( f ), é único o elemento b ∈ B tal que (a, b) ∈ f .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (112 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Propriedades
Lógica
Definições, teoremas Uma função f : A → B pode ser:
e provas
Indução
Injetora: ∀ b ∈ B, ∃ no máximo um a ∈ A tal que f (a) = b.
Alfabetos e
linguagens Sobrejetora: ∀ b ∈ B, ∃ pelo menos um a ∈ A tal que f (a) = b.
Autômatos
finitos
Bijetora: ∀ b ∈ B, ∃ exatamente um a ∈ A tal que f (a) = b.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (113 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução Função identidade


Fundamentos
matemáticos f : A → A é identidade (iA ) se f (a) = a, ∀ a ∈ A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (114 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução Função identidade


Fundamentos
matemáticos f : A → A é identidade (iA ) se f (a) = a, ∀ a ∈ A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Função composta
Definições, teoremas
e provas
Indução
f : A → B.
Alfabetos e
linguagens
g : B → C.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (115 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução Função identidade


Fundamentos
matemáticos f : A → A é identidade (iA ) se f (a) = a, ∀ a ∈ A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Função composta
Definições, teoremas
e provas
Indução
f : A → B.
Alfabetos e
linguagens
g : B → C.
Autômatos g ◦ f : A → C.
finitos

Linguagens e
(g ◦ f )(a) = g( f (a)).
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (116 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução Função identidade


Fundamentos
matemáticos f : A → A é identidade (iA ) se f (a) = a, ∀ a ∈ A.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Função composta
Definições, teoremas
e provas
Indução
f : A → B.
Alfabetos e
linguagens
g : B → C.
Autômatos g ◦ f : A → C.
finitos

Linguagens e
(g ◦ f )(a) = g( f (a)).
gramáticas
regulares

Linguagens Teorema 2.4


livres de
contexto Se f : A → B e g : B → C são bijeções, então (g ◦ f ) é uma bijeção.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (117 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções Função inversa
Conjuntos infinitos
Lógica
Definições, teoremas
Seja f : A → B. Se existir g : B → A tal que (g ◦ f ) = iA e ( f ◦ g) = iB , g é
e provas
Indução
chamada de inversa de f (denotada por f −1 ).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (118 – 119 de 1593)
Funções
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções Função inversa
Conjuntos infinitos
Lógica
Definições, teoremas
Seja f : A → B. Se existir g : B → A tal que (g ◦ f ) = iA e ( f ◦ g) = iB , g é
e provas
Indução
chamada de inversa de f (denotada por f −1 ).
Alfabetos e
linguagens
Teorema 2.5
Autômatos
finitos
Seja f : A → B. f é uma bijeção se e somente se f −1 existe.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (119 – 119 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Conjuntos infinitos
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (120 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (121 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e Se existe f : A → B, então existe f −1 : A → B.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (122 – 145 de 1593)
Conjuntos equinumerosos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica A, B : conjuntos quaisquer.
Definições, teoremas
e provas
Indução
A e B são equinumerosos se existir uma bijeção f : A → B.
Alfabetos e Se existe f : A → B, então existe f −1 : A → B.
linguagens
Equinumerosidade é uma relação de equivalência.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (123 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (124 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Alfabetos e Infinito se ele não é finito!!!
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (125 – 145 de 1593)
Conjuntos finitos e infinitos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Um conjunto é:
N.
Definições, teoremas
e provas
Indução
Finito se ele é equinumeroso com {1, 2, . . . , n}, para algum n ∈
Infinito se ele não é finito!!!
N
Alfabetos e
linguagens Contavelmente infinito se é equinumeroso com .
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (126 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução Georg Cantor, 1873.


Fundamentos
matemáticos
Problema da medição do tamanho de conjuntos infinitos.
Conjuntos
Dados dois conjuntos infinitos, os dois são de mesmo tamanho ou um deles é
Relações e funções
maior que o outro?
Z
Conjuntos infinitos

Ex: P = {n = 2·k | k ∈ + } e S = {s | s ∈ {0, 1}∗ }.


Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (127 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução Georg Cantor, 1873.


Fundamentos
matemáticos
Problema da medição do tamanho de conjuntos infinitos.
Conjuntos
Dados dois conjuntos infinitos, os dois são de mesmo tamanho ou um deles é
Relações e funções
maior que o outro?
Z
Conjuntos infinitos

Ex: P = {n = 2·k | k ∈ + } e S = {s | s ∈ {0, 1}∗ }.


Lógica
Definições, teoremas
e provas
Indução Cantor ⇒ dois conjuntos finitos têm o mesmo tamanho se os elementos de
Alfabetos e um conjunto podem ser emparelhados com os elementos do outros conjunto.
linguagens

Autômatos
Método compara os tamanhos sem recorrer à contagem dos elementos.
finitos Ideia pode ser estendida para conjuntos infinitos.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (128 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução Georg Cantor, 1873.


Fundamentos
matemáticos
Problema da medição do tamanho de conjuntos infinitos.
Conjuntos
Dados dois conjuntos infinitos, os dois são de mesmo tamanho ou um deles é
Relações e funções
maior que o outro?
Z
Conjuntos infinitos

Ex: P = {n = 2·k | k ∈ + } e S = {s | s ∈ {0, 1}∗ }.


Lógica
Definições, teoremas
e provas
Indução Cantor ⇒ dois conjuntos finitos têm o mesmo tamanho se os elementos de
Alfabetos e um conjunto podem ser emparelhados com os elementos do outros conjunto.
linguagens

Autômatos
Método compara os tamanhos sem recorrer à contagem dos elementos.
finitos Ideia pode ser estendida para conjuntos infinitos.
Linguagens e
gramáticas
regulares Definição 2.6
Linguagens
Um conjunto A é contável se é finito ou tem o mesmo tamanho que o
N
livres de
contexto
conjunto .
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (129 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Exemplo 2.7
Introdução

Fundamentos
N = {0, 1, 2, 3, . . . }.
matemáticos
P = {2, 4, 6, . . . }.
N (P ⊂ N)!
Conjuntos
Relações e funções
Conjuntos infinitos Intuitivamente P parece ser menor que
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (130 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Exemplo 2.7
Introdução

Fundamentos
N = {0, 1, 2, 3, . . . }.
matemáticos
P = {2, 4, 6, . . . }.
N (P ⊂ N)!
Conjuntos
Relações e funções
Conjuntos infinitos Intuitivamente P parece ser menor que
N e P tem o mesmo tamanho.
Lógica
Definições, teoremas
e provas
Segundo a definição de Cantor,
A função f (n) = 2·n + 2 faz o mapeamento de N para P:
Indução

Alfabetos e
linguagens

Autômatos n f (n)
finitos
0 2
Linguagens e
gramáticas 1 4
regulares
2 6
.. ..
Linguagens
livres de
contexto . .
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (131 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo Exemplo 2.8


Introdução N∗ = {1, 2, 3, . . . }.
Fundamentos Q∗+ = { mn | m, n ∈ N}.
Intuitivamente Q∗+ parece ser muito maior que N∗ !
matemáticos
Conjuntos

Segundo a definição de Cantor, N∗ e Q∗+ têm o mesmo tamanho.


Relações e funções
Conjuntos infinitos

Listar todos os elementos de Q∗+ e corresponder com N∗ .


Lógica
Definições, teoremas
e provas
Indução

1, 2, 3, · · ·
, 21 , 22 , 23 , · · · , 31 , 32 , . . .
1 1 1
Alfabetos e
linguagens Primeiro da lista com 1, segundo com 2, etc.
Autômatos Problema: elementos da sub-lista 21 , 22 , 23 , · · · nunca seriam considerados.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (132 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo Exemplo 2.8


Introdução Correspondência entre Q∗+ e N∗:
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
1
1
1
2
1
3
1
4
1
5 ...
Definições, teoremas
e provas
Indução

Alfabetos e
2
1
2
2
2
3
2
4
2
5 ...
linguagens

Autômatos
finitos
3
1
3
2
3
3
3
4
3
5 ...
Linguagens e
gramáticas
regulares
4
1
4
2
4
3
4
4
4
5 ...
Linguagens
livres de
contexto 5
1
5
2
5
3
5
4
5
5 ...
Autômatos
com pilha e .. .. .. .. .. ..
GLC’s . . . . . .
Máquinas de
Turing (133 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (134 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
N.
Conjuntos infinitos
Lógica
Definições, teoremas
NÃO. Existem conjuntos infinitos que não têm correspondência com
e provas
Indução
Tais conjuntos não são contavelmente infinitos.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (135 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Quaisquer dois conjuntos infinitos têm o mesmo tamanho?
N.
Conjuntos infinitos
Lógica
Definições, teoremas
NÃO. Existem conjuntos infinitos que não têm correspondência com
e provas
Tais conjuntos não são contavelmente infinitos.
R não é contavelmente infinito.
Indução

Alfabetos e Cantor provou que


linguagens

Autômatos
A prova de Cantor mostra que o intervalo [0, 1] não é contavelmente infinito.
finitos Argumento de Diagonalização de Cantor.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (136 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (137 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
1 Supor que o intervalo [0, 1] é infinito enumerável.
Indução
É possível enumerar todos os números deste intervalo como uma seqüência
Alfabetos e
linguagens (r1 , r2 , r3 , . . . ).
Autômatos Cada um de tais números pode ser representado como uma expansão decimal.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (138 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
2 Arranjar os números em uma lista (eles não precisam estar em ordem).
Indução
No caso de números com duas expansões decimais, como
Alfabetos e
linguagens 0, 499 · · · = 0, 500 . . . , escolher aquela que acaba com 9’s.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (139 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
3 Supor que as expansões decimais do início da seqüência são como segue:
Indução

Alfabetos e r1 = 0, 5 1 0 5 1 1 0 . . .
linguagens
r2 = 0, 4 1 3 2 0 4 3 . . .
Autômatos r3 = 0, 8 2 4 5 0 2 6 . . .
finitos
r4 = 0, 2 3 3 0 1 2 6 . . .
Linguagens e r5 = 0, 4 1 0 7 2 4 6 . . .
gramáticas r6 = 0, 9 9 3 7 8 3 8 . . .
regulares
r7 = 0, 0 1 0 5 1 3 5 . . .
Linguagens ..
livres de
contexto
.

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (140 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
4 Construir um x ∈ [0, 1], considerando o k-ésimo dígito depois da vírgula da
Indução
expansão decimal de rk (dígitos em vermelho):
Alfabetos e
linguagens
r1 = 0, 5 1 0 5 1 1 0 . . .
Autômatos r2 = 0, 4 1 3 2 0 4 3 . . .
finitos
r3 = 0, 8 2 4 5 0 2 6 . . .
Linguagens e r4 = 0, 2 3 3 0 1 2 6 . . .
gramáticas
regulares
r5 = 0, 4 1 0 7 2 4 6 . . .
r6 = 0, 9 9 3 7 8 3 8 . . .
Linguagens
livres de
r7 = 0, 0 1 0 5 1 3 5 . . .
contexto ..
.
Autômatos
com pilha e

GLC’s

Máquinas de
Turing (141 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
5 Definir, a partir desses dígitos, os dígitos do número x como:
Indução

Alfabetos e
(
4 se o k-ésimo dígito de rk é 5,
linguagens
xk =
Autômatos 5 se o k-ésimo dígito de rk não é 5.
finitos

Linguagens e
gramáticas xk é o k-ésimo dígito de x.
regulares

Linguagens Para o exemplo dado, x = 0, 4555554 . . .


livres de
contexto

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (142 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
6 O número x é um número real dentro do intervalo [0, 1].
Indução

Alfabetos e
7 Logo, rn = x para algum n (supôs-se que (r1 , r2 , r3 , . . . ) enumera todos os
linguagens
números reais no intervalo [0, 1]).
Autômatos
finitos 8 No entanto, por causa do modo que os dígitos de x foram escolhidos, x difere
Linguagens e na n-ésima posição de rn .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (143 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo
Teorema 2.9
Introdução

Fundamentos O intervalo [0, 1] não é contavelmente infinito.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Demonstração.
Lógica
Definições, teoremas
e provas
9 Logo, x não está na seqüência (r1 , r2 , r3 , . . . ).
Indução

Alfabetos e
10 Assim, essa seqüência não é uma enumeração do conjunto de todos os reais
linguagens
no intervalo [0, 1] (contradição).
Autômatos
finitos 11 Portanto, hipótese de que o intervalo [0, 1] é contavelmente finita deve ser
Linguagens e falsa.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e

GLC’s

Máquinas de
Turing (144 – 145 de 1593)
Método da Diagonalização
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Teorema 2.10
R não é contavelmente infinito.
e provas
Indução
O conjunto
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (145 – 145 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Lógica
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (146 – 153 de 1593)
Operações booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
Conjunção Disjunção Negação
matemáticos
Conjuntos
0∧0=0 0∨0=0 ¬0 = 1
Relações e funções
Conjuntos infinitos
0∧1=0 0∨1=1 ¬1 = 0
Lógica
Definições, teoremas
1∧0=0 1∨0=1
e provas
Indução
1∧1=1 1∨1=1
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (147 – 153 de 1593)
Operações booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
Conjunção Disjunção Negação
matemáticos
Conjuntos
0∧0=0 0∨0=0 ¬0 = 1
Relações e funções
Conjuntos infinitos
0∧1=0 0∨1=1 ¬1 = 0
Lógica
Definições, teoremas
1∧0=0 1∨0=1
e provas
Indução
1∧1=1 1∨1=1
Alfabetos e
linguagens

Autômatos OU Exclusivo Implicação Igualdade


finitos

Linguagens e
0⊕0=0 0→0=1 0↔0=1
gramáticas 0⊕1=1 0→1=1 0↔1=0
regulares

Linguagens
1⊕0=1 1→0=0 1↔0=0
livres de
contexto
1⊕1=0 1→1=1 1↔1=1
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (148 – 153 de 1593)
Expressões booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

P ∧ (Q ∨ R) = (P ∧ Q) ∨ (P ∧ R)
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (149 – 153 de 1593)
Expressões booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

P ∧ (Q ∨ R) = (P ∧ Q) ∨ (P ∧ R)
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
P ∨ Q = ¬(¬P ∧ ¬Q)
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (150 – 153 de 1593)
Expressões booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (151 – 153 de 1593)
Expressões booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens

Autômatos
P↔Q = (P → Q) ∧ (Q → p)
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (152 – 153 de 1593)
Expressões booleanas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos

=
Relações e funções
Conjuntos infinitos P ∧ (Q ∨ R) (P ∧ Q) ∨ (P ∧ R)
Lógica
Definições, teoremas P ∨ (Q ∧ R) = (P ∨ Q) ∧ (P ∨ R)
=
e provas
Indução P∨Q ¬(¬P ∧ ¬Q)
Alfabetos e P→Q = ¬P ∨ Q
linguagens

Autômatos
P↔Q = (P → Q) ∧ (Q → p)
finitos P⊕Q = ¬(P ↔ Q)
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (153 – 153 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Definições, teoremas e provas
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (154 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (155 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução

Alfabetos e
Instância do teorema:
linguagens
Atribuição particular de valores a variáveis livres nas hipóteses e conclusões.
Autômatos
finitos
Variáveis livres podem assumir quaisquer valores do universo em discussão.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (156 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Teorema: respostas a questões matemáticas.
Relações e funções
Conjuntos infinitos
Se certas condições são verdadeiras, então alguma conclusão também é
Lógica verdadeira.
Hipótese verdadeira =⇒ Tese verdadeira.
Definições, teoremas
e provas
Indução

Alfabetos e
Instância do teorema:
linguagens
Atribuição particular de valores a variáveis livres nas hipóteses e conclusões.
Autômatos
finitos
Variáveis livres podem assumir quaisquer valores do universo em discussão.
Linguagens e Teorema correto:
gramáticas
regulares Tese verdadeira para toda instância que torne a hipótese verdadeira.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (157 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (158 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução

Alfabetos e Exemplo 2.11


linguagens

Autômatos
Teorema 1: Se x > 3 e y < 2, então x2 − 2y > 5.
finitos x = 5 e y = 1 ⇒ 23 > 5 : Não prova o teorema, apenas verifica uma instância do
Linguagens e mesmo.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (159 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Contra-Exemplo
matemáticos
Conjuntos
Instância que torna a hipótese verdadeira mas leva a uma conclusão falsa.
Relações e funções
Conjuntos infinitos
Encontrar um contra-exemplo é suficiente para mostrar que o teorema é falso.
Lógica Único modo de mostrar que um teorema é verdadeiro é provando-o!
Definições, teoremas
e provas
Indução

Alfabetos e Exemplo 2.11


linguagens

Autômatos
Teorema 1: Se x > 3 e y < 2, então x2 − 2y > 5.
finitos x = 5 e y = 1 ⇒ 23 > 5 : Não prova o teorema, apenas verifica uma instância do
Linguagens e mesmo.
gramáticas
regulares
Teorema 2: Se x > 3, então x2 − 2·y > 5.
Linguagens
livres de x = 4 e y = 6 ⇒ x2 − 2·y = 4 > 5 : Contra-exemplo!
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (160 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos A prova é um argumento dedutivo cujas premissas são as hipóteses e cuja
Lógica
Definições, teoremas
conclusão é a tese do teorema.
e provas
Indução Argumento válido.
Alfabetos e Forma lógica das hipóteses ⇒ forma lógica da conclusão.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (161 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos A prova é um argumento dedutivo cujas premissas são as hipóteses e cuja
Lógica
Definições, teoremas
conclusão é a tese do teorema.
e provas
Indução Argumento válido.
Alfabetos e Forma lógica das hipóteses ⇒ forma lógica da conclusão.
linguagens

Autômatos
Qual a estratégia de prova mais adequada às várias formas de hipóteses e
finitos teses?
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (162 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (163 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução
Se você tem qualquer dúvida a respeito da justificativa para uma afirmação,
Alfabetos e
linguagens então ela não é adequada.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (164 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Regras básicas:
Definições, teoremas
e provas Nunca afirme alguma coisa se você não puder justificá-la completamente.
Indução
Se você tem qualquer dúvida a respeito da justificativa para uma afirmação,
Alfabetos e
linguagens então ela não é adequada.
Autômatos Se o seu raciocínio não o convence, como convencerá a outros?
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (165 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Supor e Afirmar
Definições, teoremas
e provas Afirmar um enunciado é alegar que o mesmo é verdadeiro e isso não é
Indução
aceitável em uma prova, a menos que possa ser justificado.
Alfabetos e
linguagens Supor um enunciado permite dizer o que poderia ser verdadeiro se o enunciado
Autômatos fosse verdadeiro.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (166 – 247 de 1593)
Transformação do Problema
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (167 – 247 de 1593)
Transformação do Problema
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Se resolver o novo problema, na verdade terá mostrado que se P é verdadeiro
Indução
então Q também é verdadeiro, ou seja, terá resolvido o problema original
Alfabetos e
linguagens
P → Q.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (168 – 247 de 1593)
Transformação do Problema
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Provar uma conclusão da forma P → Q
Conjuntos
Relações e funções a) Adicione P à lista de hipóteses.
Conjuntos infinitos
Lógica
b) Mude a conclusão de P → Q para Q.
Definições, teoremas
e provas
Se resolver o novo problema, na verdade terá mostrado que se P é verdadeiro
Indução
então Q também é verdadeiro, ou seja, terá resolvido o problema original
Alfabetos e
linguagens
P → Q.
Autômatos Notação:
finitos
Dados: enunciados conhecidos ou aqueles que se assumiu serem verdadeiros
Linguagens e
gramáticas em algum ponto da demonstração.
regulares
Objetivo: enunciados a serem provados.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (169 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Provar uma conclusão da forma P → Q:


matemáticos
Conjuntos
a) Suponha que P é verdadeiro.
Relações e funções
b) Use este postulado para concluir que Q é verdadeiro.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (170 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Provar uma conclusão da forma P → Q:


matemáticos
Conjuntos
a) Suponha que P é verdadeiro.
Relações e funções
b) Use este postulado para concluir que Q é verdadeiro.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Exemplo 2.12
Alfabetos e
linguagens
Sejam a, b ∈ R. Prove que se 0 < a < b, então a2 < b2.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (171 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Provar uma conclusão da forma P → Q:


matemáticos
Conjuntos
a) Suponha que P é verdadeiro.
Relações e funções
b) Use este postulado para concluir que Q é verdadeiro.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Exemplo 2.12
Alfabetos e
R
Sejam a, b ∈ . Prove que se 0 < a < b, então a2 < b2 .
R
linguagens

Autômatos Dados: a, b ∈ (hipótese).


finitos Objetivo: Se 0 < a < b, então a2 < b2 (tese).
Linguagens e
gramáticas ⇓
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (172 – 247 de 1593)
Teoremas e Provas
LFA 2018/2

H. Longo

Introdução

Fundamentos Provar uma conclusão da forma P → Q:


matemáticos
Conjuntos
a) Suponha que P é verdadeiro.
Relações e funções
b) Use este postulado para concluir que Q é verdadeiro.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução
Exemplo 2.12
Alfabetos e
R
Sejam a, b ∈ . Prove que se 0 < a < b, então a2 < b2 .
R
linguagens

Autômatos Dados: a, b ∈ (hipótese).


finitos Objetivo: Se 0 < a < b, então a2 < b2 (tese).
Linguagens e
gramáticas ⇓
regulares
R
Dados: a, b ∈ , 0 < a < b.
Objetivo: a2 < b2 .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (173 – 247 de 1593)
Provar um “Objetivo” da forma P → Q
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . Q Depois da transformação.
Alfabetos e P
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (174 – 247 de 1593)
Provar um “Objetivo” da forma P → Q
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . Q Depois da transformação.
Alfabetos e P
linguagens

Autômatos Solução:
finitos
Suponha que P é verdadeiro.
Linguagens e
gramáticas [Prove que Q é verdadeiro]
regulares
Portanto, P → Q.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (175 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções
Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . ¬P Depois da transformação.
Alfabetos e ¬Q
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (176 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Rascunho:
Conjuntos
Relações e funções
Dados Objetivo
Conjuntos infinitos ..
Lógica
. P→Q Antes da transformação.
..
Definições, teoremas
e provas
Indução . ¬P Depois da transformação.
Alfabetos e ¬Q
linguagens

Autômatos
Solução:
finitos Suponha que Q é falso.
Linguagens e
gramáticas
[Prove que ¬P é verdadeiro]
regulares Portanto, P → Q.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (177 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.13


R e tais que a > b. Prove que se a·c ≤ b·c, então c < 0.
matemáticos
Conjuntos
Relações e funções
Sejam a, b, c ∈
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (178 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.13


R e tais que a > b. Prove que se a·c ≤ b·c, então c < 0.
matemáticos
Conjuntos
Relações e funções
Sejam a, b, c ∈
Conjuntos infinitos
Dados Objetivo
Lógica
Definições, teoremas a, b, c ∈ R a·c ≤ b·c ⇒ c ≤ 0
a>b
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (179 – 247 de 1593)
“Objetivo” da forma P → Q ≡ ¬Q → ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.13


R e tais que a > b. Prove que se a·c ≤ b·c, então c < 0.
matemáticos
Conjuntos
Relações e funções
Sejam a, b, c ∈
Conjuntos infinitos
Dados Objetivo
Lógica
Definições, teoremas a, b, c ∈ R a·c ≤ b·c ⇒ c ≤ 0
a>b
e provas

R
Indução

Alfabetos e a, b, c ∈ a·c > b·c


linguagens a>b
Autômatos c>0
finitos

Linguagens e
Solução:
gramáticas
regulares
Suponha c > 0. Multiplicando ambos os lados da desigualdade a > b por
Linguagens
c conclui-se que a·c > b·c. Portanto, se a·c ≤ b·c então c ≤ 0.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (180 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (181 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Exemplo 2.14
U. Suponha que A ∩ C ⊆ B e a ∈ C. Prove que
Relações e funções
Conjuntos infinitos
Lógica Sejam os conjuntos A, B, C ⊆
Definições, teoremas
e provas a < A\B.
Indução

Alfabetos e Rascunho:
linguagens

Autômatos Dados Objetivo


finitos
A, B, C ⊆ U a < A\B
Linguagens e
gramáticas
A∩C ⊆ B
regulares a∈C
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (182 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.14
Conjuntos infinitos
Lógica Obs-1:
Definições, teoremas
e provas P → Q ≡ ¬P ∨ Q ≡ ¬(P ∧ ¬Q)
Indução

Alfabetos e Obs-2:
linguagens
a < A\B ≡ ¬(a ∈ A ∧ a < B) [Definição de A\B]
Autômatos
finitos ≡ a< A∨a∈ B [DeMorgan]
Linguagens e ≡ a∈A⇒a∈B [Condicional]
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (183 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo
Se possível, reescreva o objetivo de alguma outra forma (enunciado positivo)
Introdução e use uma das estratégias de prova.
Fundamentos
matemáticos
Conjuntos
Relações e funções
Exemplo 2.14
Conjuntos infinitos
Lógica Rascunho:
Definições, teoremas
e provas
Indução Dados Objetivo
Alfabetos e
linguagens
A, B, C ⊆ U a < A\B
A∩C ⊆ B
Autômatos
a∈C
finitos

Linguagens e
A, B, C ⊆ U a∈A⇒a∈B
gramáticas A∩C ⊆ B
regulares
a∈C
Linguagens
livres de
A, B, C ⊆ U a∈B
contexto A∩C ⊆ B
Autômatos a∈C
com pilha e a∈A
GLC’s

Máquinas de
Turing (184 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (185 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica
Dados Objetivo
..
Definições, teoremas
e provas
Indução . ¬P
Alfabetos e ..
linguagens . hContradiçãoi
Autômatos P
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (186 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
Nem sempre um objetivo da forma ¬P pode ser reescrito como “enunciado
matemáticos positivo”.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica
Dados Objetivo
..
Definições, teoremas
e provas
Indução . ¬P
Alfabetos e ..
linguagens . hContradiçãoi
Autômatos P
finitos

Linguagens e
Solução:
gramáticas
regulares
Suponha que P é verdadeiro.
Linguagens
[Prove a contradição]
livres de
contexto
Portanto, P é falso.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (187 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Prova por contradição:
e provas
Indução
Vantagem: supor P verdadeiro permite crescer a lista de hipóteses.
Alfabetos e Desvantagem: Objetivo vago, ou seja, produzir uma contradição de alguma
linguagens coisa que é verdadeiro.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (188 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (189 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução

Alfabetos e
x, y ∈ R x2 + y = 13 e y , 4 ⇒ x , 3
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (190 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução
R
x, y ∈ x2 + y = 13 e y , 4 ⇒ x , 3
Alfabetos e
linguagens R
x, y ∈ x,3
Autômatos
x2 + y = 13
finitos y,4
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (191 – 247 de 1593)
“Objetivo” da forma ¬P
LFA 2018/2

H. Longo

Introdução
Exemplo 2.15
R
Fundamentos
matemáticos
Conjuntos
Dados x, y ∈ , prove que se x2 + y = 13 e y , 4 então x , 3.
Relações e funções
Conjuntos infinitos
x , 3 ≡ ¬(x = 3), logo estratégia anterior não pode ser usada.
Lógica
Definições, teoremas
e provas Dados Objetivo
Indução
R
x, y ∈ x2 + y = 13 e y , 4 ⇒ x , 3
Alfabetos e
linguagens R
x, y ∈ x,3
Autômatos
x2 + y = 13
finitos y,4
Linguagens e R
x, y ∈ hContradiçãoi
gramáticas
regulares
x2 + y = 13
y,4
Linguagens
livres de x=3
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (192 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Numa prova por contradição tente fazer de P o objetivo.


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (193 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Numa prova por contradição tente fazer de P o objetivo.


matemáticos
Conjuntos Se P pode ser provado, P contradiz o dado ¬P.
Relações e funções
Conjuntos infinitos Dados Objetivo
..
Lógica
Definições, teoremas
e provas . hContradiçãoi
Indução
¬P
Alfabetos e
linguagens
..
. P
Autômatos
finitos
¬P
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (194 – 247 de 1593)
Usar um “Dado” da forma ¬P
LFA 2018/2

H. Longo

Introdução

Fundamentos Numa prova por contradição tente fazer de P o objetivo.


matemáticos
Conjuntos Se P pode ser provado, P contradiz o dado ¬P.
Relações e funções
Conjuntos infinitos Dados Objetivo
..
Lógica
Definições, teoremas
e provas . hContradiçãoi
Indução
¬P
Alfabetos e
linguagens
..
. P
Autômatos
finitos
¬P
Linguagens e
gramáticas
Solução:
regulares [Prove que P é verdadeiro]
Linguagens
livres de
Como já se sabe que ¬P é verdadeiro, tem-se uma contradição.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (195 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (196 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (197 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (198 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (199 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos A\B ⊆ C hContradiçãoi Suponha x ∈ A\C .
finitos x ∈ A\C Suponha x < B.
Linguagens e x<B [Prove a contradição].
gramáticas Assim, x ∈ B.
regulares
Portanto, se x ∈ A\C , então x ∈ B.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (200 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo Provas por contradição podem ser usadas com objetivos que não são da
forma ¬P.
Introdução

Fundamentos
matemáticos Exemplo 2.16
Conjuntos
Relações e funções
Conjuntos infinitos
Dados A, B, C ⊆ U, tais que A\B ⊆ C, se x ∈ A\C, então x ∈ B.
Lógica Dados Objetivo Solução
Definições, teoremas
e provas A\B ⊆ C x ∈ A\C ⇒ x ∈ B
Indução
A\B ⊆ C x∈B Suponha x ∈ A\C .
Alfabetos e x ∈ A\C [Prove que x ∈ B].
linguagens Portanto, se x ∈ A\C , então x ∈ B.
Autômatos A\B ⊆ C hContradiçãoi Suponha x ∈ A\C .
finitos x ∈ A\C Suponha x < B.
Linguagens e x<B [Prove a contradição].
gramáticas Assim, x ∈ B.
regulares
Portanto, se x ∈ A\C , então x ∈ B.
Linguagens A\B ⊆ C x∈C Suponha x ∈ A\C ( x ∈ A e x < C ).
livres de
contexto x∈A Suponha x < B.
x<C [Prove que x ∈ C ].
Autômatos
com pilha e
x<B Isto contradiz o fato de x < C .
GLC’s Assim, x ∈ B.
Portanto, se x ∈ A\C , então x ∈ B.
Máquinas de
Turing (201 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (202 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e Se P e P → Q são verdadeiros, então Q também é verdadeiro.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (203 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Se P é dado também ou se é possível provar que P é verdadeiro, conclua que
e provas
Indução
Q é verdadeiro.
Alfabetos e Se P e P → Q são verdadeiros, então Q também é verdadeiro.
linguagens Se P → Q é verdadeiro e Q é falso, então P deve ser falso também.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (204 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (205 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (206 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (207 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e P → (Q → R) ¬Q Suponha ¬R.
linguagens ¬R Suponha P.
Autômatos P [Prove ¬Q].
finitos Portanto, P → ¬Q.
Linguagens e Portanto, ¬R → (P → ¬Q).
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (208 – 247 de 1593)
“Dado” da forma P → Q
LFA 2018/2

H. Longo
Exemplo 2.17
Introdução Suponha P → (Q → R). Prove que ¬R → (P → ¬Q).
Fundamentos P → Q ≡ ¬Q → ¬P.
matemáticos
Conjuntos
Dados Objetivo Solução
Relações e funções
Conjuntos infinitos
P → (Q → R) ¬R → (P → ¬Q)
Lógica P → (Q → R) P → ¬Q Suponha ¬R.
Definições, teoremas
e provas ¬R [Prove que P → ¬Q].
Indução Portanto, ¬R → (P → ¬Q).
Alfabetos e P → (Q → R) ¬Q Suponha ¬R.
linguagens ¬R Suponha P.
Autômatos P [Prove ¬Q].
finitos Portanto, P → ¬Q.
Linguagens e Portanto, ¬R → (P → ¬Q).
gramáticas P → (Q → R) ¬Q Suponha ¬R.
regulares
¬R Suponha P.
Linguagens P De P e P → (Q → R),
livres de segue que Q → R.
contexto
Q→R [Prove ¬Q].
Autômatos Portanto, P → ¬Q.
com pilha e
GLC’s Portanto, ¬R → (P → ¬Q).
Máquinas de
Turing (209 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo

Introdução Exemplo 2.18


Fundamentos
matemáticos
Conjuntos
U
Sejam A, B ⊆ e tais que A ⊂ B. Considere elementos genéricos a e b tais
Relações e funções que a ∈ A e a e b não pertencem ao mesmo tempo a B. Prove que b < B.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (210 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo

Introdução Exemplo 2.18


Fundamentos
matemáticos
Conjuntos
U
Sejam A, B ⊆ e tais que A ⊂ B. Considere elementos genéricos a e b tais
Relações e funções que a ∈ A e a e b não pertencem ao mesmo tempo a B. Prove que b < B.
Conjuntos infinitos
Lógica
Definições, teoremas Dados Objetivo Solução
e provas
Indução A⊂B b<B
Alfabetos e a∈A
linguagens ¬(a ∈ B ∧ b ∈ B)
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (211 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo

Introdução Exemplo 2.18


Fundamentos
matemáticos
Conjuntos
U
Sejam A, B ⊆ e tais que A ⊂ B. Considere elementos genéricos a e b tais
Relações e funções que a ∈ A e a e b não pertencem ao mesmo tempo a B. Prove que b < B.
Conjuntos infinitos
Lógica
Definições, teoremas Dados Objetivo Solução
e provas
Indução A⊂B b<B
Alfabetos e a∈A
linguagens ¬(a ∈ B ∧ b ∈ B)
Autômatos A⊂B b<B
finitos
a∈A
Linguagens e
gramáticas a∈B→b<B
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (212 – 247 de 1593)
Provas por contradição
LFA 2018/2

H. Longo

Introdução Exemplo 2.18


Fundamentos
matemáticos
Conjuntos
U
Sejam A, B ⊆ e tais que A ⊂ B. Considere elementos genéricos a e b tais
Relações e funções que a ∈ A e a e b não pertencem ao mesmo tempo a B. Prove que b < B.
Conjuntos infinitos
Lógica
Definições, teoremas Dados Objetivo Solução
e provas
Indução A⊂B b<B
Alfabetos e a∈A
linguagens ¬(a ∈ B ∧ b ∈ B)
Autômatos A⊂B b<B
finitos
a∈A
Linguagens e
gramáticas a∈B→b<B
regulares A⊂B a∈B
Linguagens a∈A
livres de
contexto
a∈B→b<B
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (213 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos Considere x um objeto arbitrário e prove P(x).


matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (214 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos Considere x um objeto arbitrário e prove P(x).


matemáticos
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos Dados Objetivo
Lógica
..
.
Definições, teoremas
e provas ∀ x P(x)
Indução
..
Alfabetos e . P(x)
linguagens
x arbitrário
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (215 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos Considere x um objeto arbitrário e prove P(x).


matemáticos
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos Dados Objetivo
Lógica
..
.
Definições, teoremas
e provas ∀ x P(x)
Indução
..
Alfabetos e . P(x)
linguagens
x arbitrário
Autômatos
finitos Solução:
Linguagens e Considere um x arbitrário.
gramáticas
regulares [Prove P(x)].
Linguagens Como x é arbitrário, conclui-se que ∀ x P(x).
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (216 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.19


U. Prove que se A ∩ B = A, então A ⊆ B.
matemáticos
Conjuntos
Relações e funções
Sejam A, B ⊆
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (217 – 247 de 1593)
Provar um “Objetivo” da forma ∀ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.19


U. Prove que se A ∩ B = A, então A ⊆ B.
matemáticos
Conjuntos
Relações e funções
Sejam A, B ⊆
Conjuntos infinitos
Lógica Rascunho:
Definições, teoremas
Dados Objetivo Solução
U
e provas
Indução
A, B ⊆ A∩B= A⇒ A⊆ B Suponha A ∩ B = A.
Alfabetos e
linguagens
U
A, B ⊆ A⊆B Considere um x ∈ A arbitrário.
A∩B= A [Prove que x ∈ B].
Autômatos
finitos
U
A, B ⊆ ∀ x (x ∈ A → x ∈ B) Portanto, x ∈ A → x ∈ B
A∩B= A Como x é arbitrário, conclui-se que
Linguagens e
gramáticas
U
A, B ⊆ x∈B ∀ x (x ∈ A → x ∈ B). Assim, A ⊆ B.
regulares
A∩B= A Portanto, se A ∩ B = A, então A ⊆ B.
x∈A
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (218 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (219 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica Dados Objetivo
..
Definições, teoremas
e provas
Indução . ∃ x P(x)
Alfabetos e ..
linguagens . P(x)
Autômatos x=
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (220 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução

Fundamentos
Tente encontrar um valor de x para o qual você acredita que P(x) seria
matemáticos verdadeiro e prove P(x) para este x.
Conjuntos
Relações e funções
Conjuntos infinitos
Rascunho:
Lógica Dados Objetivo
..
Definições, teoremas
e provas
Indução . ∃ x P(x)
Alfabetos e ..
linguagens . P(x)
Autômatos x=
finitos

Linguagens e
Solução:
gramáticas Seja x = .
regulares

Linguagens
[Prove P(x)].
livres de
contexto
Portanto, ∃ x P(x).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (221 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução Exemplo 2.20


Fundamentos
matemáticos
Prove que para todo número real x, se x > 0 então existe um número real y tal
Conjuntos que y·(y + 1) = x.
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (222 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução Exemplo 2.20


Fundamentos
matemáticos
Prove que para todo número real x, se x > 0 então existe um número real y tal
Conjuntos que y·(y + 1) = x.
Relações e funções
Conjuntos infinitos
Lógica
Rascunho:
Definições, teoremas
Dados Objetivo
R
e provas
Indução
x∈ ∀ x (x > 0) ⇒ ∃ y (y·(y + 1) = x)
Alfabetos e x>0 ∃ y (y·(y + 1) = x)
linguagens
x > √0 y·(y + 1) = x
Autômatos
finitos y= −1+ 1+4·x
2
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (223 – 247 de 1593)
Provar um “Objetivo” da forma ∃ x P(x)
LFA 2018/2

H. Longo

Introdução Exemplo 2.20


Fundamentos
matemáticos
Prove que para todo número real x, se x > 0 então existe um número real y tal
Conjuntos que y·(y + 1) = x.
Relações e funções
Conjuntos infinitos
Lógica
Rascunho:
Definições, teoremas
Dados Objetivo
R
e provas
Indução
x∈ ∀ x (x > 0) ⇒ ∃ y (y·(y + 1) = x)
Alfabetos e x>0 ∃ y (y·(y + 1) = x)
linguagens
x > √0 y·(y + 1) = x
Autômatos
finitos y= −1+ 1+4·x
2
Linguagens e Solução: √
gramáticas
regulares
Suponha um número real arbitrário x > 0. Seja y = −1+ 21+4·x . [Prove que
Linguagens
livres de y·(y + 1) = x]. Logo, ∃ y (y·(y + 1) = x). Assim, x > 0 ⇒ ∃ y (y·(y + 1) = x).
contexto
Portanto, como x é arbitrário, conclui-se que ∀ x (x > 0) ⇒ ∃ y (y·(y + 1) = x).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (224 – 247 de 1593)
Técnicas gerais
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (225 – 247 de 1593)
Técnicas gerais
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (226 – 247 de 1593)
Técnicas gerais
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens Provar um objetivo da forma P ↔ Q.
Autômatos Prove P → Q e Q → P separadamente.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (227 – 247 de 1593)
Técnicas gerais
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos Provar um objetivo da forma P ∧ Q.
Relações e funções
Conjuntos infinitos Prove P e Q separadamente.
Lógica
Definições, teoremas Usar um “Dado” da forma P ∧ Q.
e provas
Indução Trate P e Q como “dados” separados.
Alfabetos e
linguagens Provar um objetivo da forma P ↔ Q.
Autômatos Prove P → Q e Q → P separadamente.
finitos
Usar um “Dado” da forma P ↔ Q.
Linguagens e
gramáticas Trate como dois “dados” separados: P → Q e Q → P.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (228 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.21


Fundamentos
matemáticos
Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que A ⊆ B\C.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (229 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.21


Fundamentos
matemáticos
Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que A ⊆ B\C.
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
A⊆B A ⊆ B\C
A∩C = ∅
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (230 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.21


Fundamentos
matemáticos
Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que A ⊆ B\C.
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
A⊆B A ⊆ B\C
A∩C = ∅
Alfabetos e
linguagens A⊆B ∀ x (x ∈ A ⇒ x ∈ B\C)
Autômatos A∩C = ∅
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (231 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.21


Fundamentos
matemáticos
Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que A ⊆ B\C.
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
A⊆B A ⊆ B\C
A∩C = ∅
Alfabetos e
linguagens A⊆B ∀ x (x ∈ A ⇒ x ∈ B\C)
Autômatos A∩C = ∅
finitos A⊆B x ∈ B\C
Linguagens e A∩C = ∅
gramáticas
regulares x∈A
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (232 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.21


Fundamentos
matemáticos
Dados A, B, C ⊆ U tais que A ⊆ B e A e C são disjuntos, prove que A ⊆ B\C.
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
A⊆B A ⊆ B\C
A∩C = ∅
Alfabetos e
linguagens A⊆B ∀ x (x ∈ A ⇒ x ∈ B\C)
Autômatos A∩C = ∅
finitos A⊆B x ∈ B\C
Linguagens e A∩C = ∅
gramáticas
regulares x∈A
Linguagens
A⊆B x∈B
livres de A∩C = ∅ x<C
contexto
x∈A
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (233 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.22


Fundamentos
matemáticos
Prove que ∀ x ¬P(x) ⇔ ¬∃ x P(x).
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (234 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.22


Fundamentos
matemáticos
Prove que ∀ x ¬P(x) ⇔ ¬∃ x P(x).
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
=⇒ ∀ x ¬P(x) ¬∃ x P(x)
∀ x ¬P(x) hContradiçãoi
Alfabetos e
linguagens ∃ x P(x)
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (235 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.22


Fundamentos
matemáticos
Prove que ∀ x ¬P(x) ⇔ ¬∃ x P(x).
Conjuntos
Relações e funções
Rascunho:
Conjuntos infinitos
Lógica
Definições, teoremas
Dados Objetivo
e provas
Indução
=⇒ ∀ x ¬P(x) ¬∃ x P(x)
∀ x ¬P(x) hContradiçãoi
Alfabetos e
linguagens ∃ x P(x)
Autômatos
finitos ⇐= ¬∃ x P(x) ∀ x ¬P(x)
Linguagens e ¬∃ x P(x) ¬P(x)
gramáticas
regulares
x arbitrário
¬∃ x P(x) hContradiçãoi
Linguagens
livres de x arbitrário
contexto
P(x)
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (236 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.23


Fundamentos
matemáticos
Dados A, B, C ⊆ U, prove que A ∩ (B\C) = (A ∩ B)\C.
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (237 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.23


Fundamentos
matemáticos
Dados A, B, C ⊆ U, prove que A ∩ (B\C) = (A ∩ B)\C.
Conjuntos
Relações e funções
Conjuntos infinitos A ∩ (B\C) = (A ∩ B)\C ≡ [A ∩ (B\C) ⊆ (A ∩ B)\C] ∧
Lógica
Definições, teoremas [(A ∩ B)\C ⊆ A ∩ (B\C)]
e provas
Indução
≡ ∀ x ((x ∈ A ∩ (B\C) ⇔ x ∈ (A ∩ B)\C)
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (238 – 247 de 1593)
Exemplos de demonstrações
LFA 2018/2

H. Longo

Introdução Exemplo 2.23


Fundamentos
matemáticos
Dados A, B, C ⊆ U, prove que A ∩ (B\C) = (A ∩ B)\C.
Conjuntos
Relações e funções
Conjuntos infinitos A ∩ (B\C) = (A ∩ B)\C ≡ [A ∩ (B\C) ⊆ (A ∩ B)\C] ∧
Lógica
Definições, teoremas [(A ∩ B)\C ⊆ A ∩ (B\C)]
e provas
Indução
≡ ∀ x ((x ∈ A ∩ (B\C) ⇔ x ∈ (A ∩ B)\C)
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e Rascunho:
gramáticas
regulares
Dados Objetivo
Linguagens
livres de =⇒ x ∈ A ∩ (B\C) x ∈ (A ∩ B)\C
contexto ⇐= x ∈ (A ∩ B)\C x ∈ A ∩ (B\C)
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (239 – 247 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ N P(n).
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (240 – 247 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
N
Provar um objetivo da forma ∀ n ∈ P(n).
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (241 – 247 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
N
Provar um objetivo da forma ∀ n ∈ P(n).
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução
Exercícios:
N
Alfabetos e
linguagens Prove que ∀ n ∈ , n ≥ 5, P(2n > n2 ).
Autômatos
finitos
N
Prove que ∀ n ∈ , P(3 | (n3 − n)).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (242 – 247 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ P(n). N
Relações e funções Rascunho:
Conjuntos infinitos
Prove P(0).
N
Lógica
Definições, teoremas
e provas Prove que ∀ n ∈ , P(n) ⇒ P(n + 1).
Indução
Exercícios:
N
Alfabetos e
linguagens Prove que ∀ n ∈ , n ≥ 5, P(2n > n2 ).
Autômatos
finitos
N
Prove que ∀ n ∈ , P(3 | (n3 − n)).
Dados Objetivo
N Z (3. j = (n + 1)3 − (n + 1))
Linguagens e
gramáticas n∈ ∃ j∈
regulares
∃k ∈ Z (3.k = n3 − n)
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (243 – 247 de 1593)
Indução Forte
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Provar um objetivo da forma ∀ n ∈ N, P(n).
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (244 – 247 de 1593)
Indução Forte
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ N.
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (245 – 247 de 1593)
Indução Forte
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
N
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ .
Conjuntos infinitos
Rascunho:
N).
Lógica
Definições, teoremas
e provas Suponha que n é um número natural arbitrário (n ∈
Suponha que ∀ k < n P(k).
Indução

Alfabetos e
linguagens Prove P(n).
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (246 – 247 de 1593)
Indução Forte
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos N
Provar um objetivo da forma ∀ n ∈ , P(n).
Conjuntos
Relações e funções
N
Prove que ∀ n [(∀ k < n P(k)) ⇒ P(n)], n, k ∈ .
Conjuntos infinitos
Rascunho:
N
Lógica
Definições, teoremas
e provas Suponha que n é um número natural arbitrário (n ∈ ).
Suponha que ∀ k < n P(k).
Indução

Alfabetos e
linguagens Prove P(n).
Autômatos Obs: Não é necessário provar o caso base.
finitos

Linguagens e
Suponha que se tenha provado ∀ n [(∀ k < n P(n)) ⇒ P(n + 1)], n, k ∈ N.
gramáticas Se n = 0, conclui-se que ∀ k < 0 P(k) ⇒ P(0).
regulares
Pode-se concluir que P(0) é verdadeiro.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (247 – 247 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
Fundamentos matemáticos
e provas
Indução

Alfabetos e
linguagens
Indução
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (248 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Elemento mínimo
N
Conjuntos
Relações e funções
Conjuntos infinitos Dado um subconjunto não vazio S ⊆ , o elemento mínimo de S é um
Lógica
Definições, teoremas
elemento x0 ∈ S tal que x0 ≤ x, ∀ x ∈ S .
min S = x0 ⇔ x0 ∈ S e x0 ≤ x, ∀ x ∈ S .
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (249 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Elemento mínimo
N
Conjuntos
Relações e funções
Conjuntos infinitos Dado um subconjunto não vazio S ⊆ , o elemento mínimo de S é um
Lógica
Definições, teoremas
elemento x0 ∈ S tal que x0 ≤ x, ∀ x ∈ S .
min S = x0 ⇔ x0 ∈ S e x0 ≤ x, ∀ x ∈ S .
e provas
Indução

Alfabetos e
linguagens
Princípio da boa ordenação
N possui um elemento mínimo.
Autômatos
finitos
Todo subconjunto não vazio S ⊆
Linguagens e
gramáticas
regulares
N
∀ S ⊆ , S , ∅ ⇒ ∃ min S .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (250 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Conjuntos infinitos Teorema 2.24 (Princípio da Indução Finita)
Lógica
Definições, teoremas
e provas
Seja S ⊆ N que satisfaz as seguintes condições:
Indução
i 0 ∈ S; e
Alfabetos e
linguagens ii para todo inteiro positivo k, se k ∈ S , então k + 1 ∈ S .
Autômatos
finitos
Neste caso, S é o próprio conjunto N, ou seja, S = N.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (251 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo
Demonstração.
Introdução Supor, por absurdo, que S , . N
Fundamentos
Seja X o conjunto de todos os inteiros que não pertencem a S :
N N
matemáticos
Conjuntos
X = {x | x ∈ e x < S } = − S .
N (∅ , X ⊂ N) e, pelo “Princípio da Boa
Relações e funções
Conjuntos infinitos
Lógica X é subconjunto não vazio de
Definições, teoremas
e provas Ordenação”, existe um elemento mínimo x0 de X (min X ).
Indução

Alfabetos e
linguagens

Autômatos
finitos
x0
Linguagens e
gramáticas 0
x0 − 1
regulares

Linguagens
livres de S N X
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing (252 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo
Demonstração.
Introdução Pela condição i, 0 ∈ S , de modo que x0 > 0 e, portanto, x0 − 1 < X .
Fundamentos
matemáticos Como x0 − 1 ∈ S , pela condição ii, (x0 − 1) + 1 = x0 ∈ S .
Conjuntos
Dada a contradição ( x0 = min X e X = N − S , ou seja, x0 < S ), concluí-se que
N
Relações e funções

X=∅eS = .
Conjuntos infinitos
Lógica

N que satisfaz as condições i e ii é o próprio N.


Definições, teoremas
e provas
Indução
O único subconjunto de
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing (253 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conjuntos
Relações e funções
Teorema 2.25 (Princípio da Indução Matemática)
Conjuntos infinitos
Lógica Seja P(n) uma proposição associada a inteiros n ≥ 0 e que satisfaz as
Definições, teoremas
e provas seguintes condições:
Indução

Alfabetos e
1 a proposição P(0) é verdadeira; e
linguagens 2 para todo inteiro positivo k, se a proposição P(k) é verdadeira, então a
Autômatos proposição P(k + 1) também é verdadeira.
finitos

Linguagens e Neste caso, a proposição P(n) é verdadeira para todo inteiro n ≥ 0.


gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (254 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Seja S o conjunto de todos os inteiros para os quais a proposição P(n) é
Conjuntos
verdadeira.
N
Relações e funções
Conjuntos infinitos
Lógica
S = {n ∈ | P(n) é verdadeira}.
Definições, teoremas
e provas
Indução
Pela condição 1, P(0) é verdadeira e, portanto, 0 ∈ S .
Alfabetos e Pela condição 2, para todo inteiro positivo k, P(k) verdadeira (k ∈ S ) implica
que P(k + 1) é verdadeira (k + 1 ∈ S ).
linguagens

Autômatos
finitos
O conjunto S satisfaz às condições i e ii do “Princípio da Indução Finita” e,
Linguagens e
gramáticas N
portanto, S = .
regulares
A proposição P(n) é verdadeira para todo inteiro n ≥ 0.
Linguagens
livres de
contexto 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing (255 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.26


matemáticos
Conjuntos
Relações e funções
Todos os inteiros da forma 8n − 2n são divisíveis por 6, para n ∈ N+.
Conjuntos infinitos
Lógica
Definições, teoremas
Seja P(n) a proposição: 8n − 2n é divisível por 6, para n ∈ N+.
N+ | P(n) é verdadeira.}.
e provas
Indução
Seja S = {k ∈
Objetivo: provar que S = N+ !
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (256 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.26


matemáticos
Conjuntos Base: 1 ∈ S , pois P(1) é verdadeira (81 − 21 = 6).
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
H. I.: Suponha que 1 < k ∈ S , ou seja, P(k) é verdadeira.
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (257 – 261 de 1593)
Provas por indução
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 2.26


matemáticos
Conjuntos P. I.: k + 1 ∈ S , ou seja, P(k + 1) é verdadeira:
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
8k+1 − 2k+1 = 8·8k − 2·2k
e provas
Indução = 8·8k − 2·2k + 8·2k − 8·2k
Alfabetos e
linguagens = 8·(8k − 2k ) + 2k ·(8 − 2)
= 8·(8k − 2k ) + 2k ·(6)
Autômatos
finitos

Linguagens e
gramáticas
regulares Por hipótese de indução, (8k − 2k ) é divisível por 6.
Linguagens
livres de
Logo, S = N − {0} e a proposição P(n) é verdadeira para todo n ≥ 1.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (258 – 261 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 2.27
Para todo inteiro n maior que 3, n! > 2n .
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica Seja P(n) a proposição: n! > 2n , para todo 4 ≤ n ∈ N.
N | P(n) é verdadeira.}.
Definições, teoremas

Seja S = {n ∈
e provas
Indução

Alfabetos e
linguagens
Objetivo: provar que S = N − {0, 1, 2, 3}!
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (259 – 261 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 2.27
Base: Para n = 4, 4! = 24 > 16 = 24 . Logo, 4 ∈ S .
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
H. I.: Suponha que um certo 4 ≤ n = k ∈ S , ou seja, k! > 2k e n = k ∈ S .
e provas
Indução

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (260 – 261 de 1593)
Indução Matemática
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 2.27
P. I.: Deve-se mostrar que n = k + 1 ∈ S , ou seja, P(k + 1) é verdadeira:
Conjuntos
Relações e funções
Conjuntos infinitos
Lógica
Definições, teoremas
e provas
(k + 1)! = (k + 1) · k!
Indução
> (k + 1) · 2k (hipótese indutiva)
Alfabetos e
linguagens > 2 · 2k (já que k + 1 > 2)
Autômatos = 2k+1
finitos

Linguagens e
Dado que (k + 1)! > 2k+1 , P(n) é verdadeira para todo n ∈ N − {0, 1, 2, 3}, ou
N
gramáticas
regulares
seja, S = − {0, 1, 2, 3}.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing (261 – 261 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos Operações com cadeias
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(262 – 287 de 1593)


Definições
LFA 2018/2

H. Longo

Introdução Alfabeto: conjunto finito de símbolos ou caracteres.


Fundamentos {0, 1}, {a, b}, {a, b, c, . . . , z}.
matemáticos

Alfabetos e Cadeia de Símbolos: sequência de zero ou mais símbolos (de um alfabeto)


linguagens
Operações com
justapostos.
cadeias
Conjuntos regulares Palavra: cadeia finita de símbolos.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(263 – 287 de 1593)


Definições
LFA 2018/2

H. Longo

Introdução Alfabeto: conjunto finito de símbolos ou caracteres.


Fundamentos {0, 1}, {a, b}, {a, b, c, . . . , z}.
matemáticos

Alfabetos e Cadeia de Símbolos: sequência de zero ou mais símbolos (de um alfabeto)


linguagens
Operações com
justapostos.
cadeias
Conjuntos regulares Palavra: cadeia finita de símbolos.
Expressões regulares
Linguagens contáveis

Autômatos Notação
finitos

Linguagens e Σ : conjunto de símbolos (um alfabeto).


gramáticas
regulares ε : cadeia ou palavra vazia.
Linguagens
livres de Σ∗ : conjunto de todas as palavras possíveis sobre Σ.
contexto

Autômatos
Σ+ : Σ∗ − {ε}.
com pilha e
GLC’s |w| : comprimento ou tamanho da cadeia w (número de símbolos que compõem w)
Máquinas de
Turing

(264 – 287 de 1593)


Nr. de ocorrências de um símbolo
LFA 2018/2

H. Longo

Introdução
|w| : Definição recursiva.
Fundamentos
matemáticos 
0
 se w = ε;
|w| = 
Alfabetos e

linguagens
Operações com
|v| + 1 se w = va, tal que v ∈ Σ∗ e a ∈ Σ.

cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(265 – 287 de 1593)


Nr. de ocorrências de um símbolo
LFA 2018/2

H. Longo

Introdução
|w| : Definição recursiva.
Fundamentos
matemáticos 
0
 se w = ε;
|w| = 
Alfabetos e

linguagens
Operações com
|v| + 1 se w = va, tal que v ∈ Σ∗ e a ∈ Σ.

cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
|w|a : Nr. de ocorrências do símbolo a na palavra w.
Autômatos Ex.: |ε|a = 0, |abb|a = 1, |aba|a = 2, . . .
finitos

Linguagens e
Definição recursiva:
gramáticas
regulares



 0 se w = ε;
Linguagens 
|w|a =  se w = vb e a , b (v ∈ Σ∗ e a, b ∈ Σ);

livres de

contexto  |v|a

Autômatos |v|a + 1 se w = vb e a = b (v ∈ Σ∗ e a, b ∈ Σ).


com pilha e
GLC’s

Máquinas de
Turing

(266 – 287 de 1593)


Palavra, Prefixo, Sufixo, Tamanho
LFA 2018/2

H. Longo

Introdução Prefixo : subsequência inicial de símbolos de uma palavra.


Fundamentos
matemáticos
Sufixo : subsequência final de símbolos de uma palavra.
Alfabetos e Subpalavra : sequência de símbolos contíguos de uma palavra.
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(267 – 287 de 1593)


Palavra, Prefixo, Sufixo, Tamanho
LFA 2018/2

H. Longo

Introdução Prefixo : subsequência inicial de símbolos de uma palavra.


Fundamentos
matemáticos
Sufixo : subsequência final de símbolos de uma palavra.
Alfabetos e Subpalavra : sequência de símbolos contíguos de uma palavra.
linguagens
Operações com
cadeias
Conjuntos regulares Exemplo 3.1
Expressões regulares
Linguagens contáveis
Se Σ = {a, b}, então:
Σ+ = {a, b, aa, ab, ba, bb, aaa, . . . }.
Autômatos
finitos

Linguagens e Σ∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . . }.


gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(268 – 287 de 1593)


Palavra, Prefixo, Sufixo, Tamanho
LFA 2018/2

H. Longo

Introdução Prefixo : subsequência inicial de símbolos de uma palavra.


Fundamentos
matemáticos
Sufixo : subsequência final de símbolos de uma palavra.
Alfabetos e Subpalavra : sequência de símbolos contíguos de uma palavra.
linguagens
Operações com
cadeias
Conjuntos regulares Exemplo 3.1
Expressões regulares
Linguagens contáveis
Se Σ = {a, b}, então:
Σ+ = {a, b, aa, ab, ba, bb, aaa, . . . }.
Autômatos
finitos

Linguagens e Σ∗ = {ε, a, b, aa, ab, ba, bb, aaa, . . . }.


Se abcb é uma palavra sobre o alfabeto Σ = {a, b, c}, então:
gramáticas
regulares

Linguagens |abcb| = 4 e |ε| = 0.


livres de
contexto ε, a, ab, abc, abcb são os prefixos;
Autômatos ε, b, cb, bcb, abcb são os sufixos;
com pilha e
GLC’s
ε, ab, bc, bcb são exemplos de subpalavras.
Máquinas de
Turing

(269 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(270 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(271 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas É associativa:
regulares

Linguagens
Se t, v, w ∈ L, então v(wt) = (vw)t = vwt
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(272 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Operação binária, definida sobre uma linguagem L, que associa a cada par
Fundamentos
matemáticos
de palavras uma palavra formada pela justaposição da primeira com a
segunda.
Alfabetos e
linguagens Se v, w ∈ L, então vw é a concatenação de v e w.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Não é necessariamente fechada em L:
Linguagens contáveis
a concatenação de duas palavras de uma linguagem não necessariamente
Autômatos
finitos resulta em uma palavra da linguagem.
Linguagens e
gramáticas É associativa:
regulares

Linguagens
Se t, v, w ∈ L, então v(wt) = (vw)t = vwt
livres de
contexto
A palavra vazia é o elemento neutro à esquerda e à direita:
Autômatos
com pilha e εw = w = wε.
GLC’s

Máquinas de
Turing

(273 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Definição 3.2


Fundamentos
matemáticos
Sejam u, v ∈ Σ∗ . A concatenação de u e v (uv) é uma operação binária em Σ∗
Alfabetos e definida como:
linguagens
Operações com
cadeias Base: Se |v| = 0, então v = ε e uv = u.
Conjuntos regulares
Expressões regulares Recursão: Se v é uma cadeia com |v| = n > 0, então uv = (uw)a e v = wa, para
alguma cadeia w tal que |w| = n − 1 e a ∈ Σ.
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(274 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo

Introdução Definição 3.2


Fundamentos
matemáticos
Sejam u, v ∈ Σ∗ . A concatenação de u e v (uv) é uma operação binária em Σ∗
Alfabetos e definida como:
linguagens
Operações com
cadeias Base: Se |v| = 0, então v = ε e uv = u.
Conjuntos regulares
Expressões regulares Recursão: Se v é uma cadeia com |v| = n > 0, então uv = (uw)a e v = wa, para
alguma cadeia w tal que |w| = n − 1 e a ∈ Σ.
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas Definição 3.3
regulares
wn : n concatenações sucessivas da palavra w ∈ L:
Linguagens
livres de
contexto Base: w0 = ε.
Autômatos
com pilha e
Recursão: wn = wn−1 w, para n > 0.
GLC’s

Máquinas de
Turing

(275 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo Teorema 3.4


Introdução Se u, v, w ∈ Σ∗ , então (uv)w = u(vw).
Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(276 – 287 de 1593)


Concatenação de Palavras
LFA 2018/2

H. Longo Teorema 3.4


Introdução Se u, v, w ∈ Σ∗ , então (uv)w = u(vw).
Fundamentos
matemáticos
Demonstração (Indução no comprimento de w).
Alfabetos e
linguagens
Operações com
Base: Se |w| = 0, então w = ε e (uv)w = uv (pela definição de concatenação).
cadeias
Conjuntos regulares
Por outro lado, u(vw) = u(v) = uv.
Hipótese: Suponha que (uv)w = u(vw) para toda cadeia w com |w| = n.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing 
(277 – 287 de 1593)
Concatenação de Palavras
LFA 2018/2

H. Longo Teorema 3.4


Introdução Se u, v, w ∈ Σ∗ , então (uv)w = u(vw).
Fundamentos
matemáticos
Demonstração (Indução no comprimento de w).
Alfabetos e
linguagens
Operações com
Passo indutivo: Seja uma cadeia w com |w| = n + 1. Então w = xa para alguma
cadeias
Conjuntos regulares
cadeia x de comprimento n e a ∈ Σ.
Expressões regulares

(uv)w = (uv)(xa) (substituição, w = xa)


Linguagens contáveis

Autômatos
finitos
= ((uv)x)a (definição de concatenação)
Linguagens e
gramáticas
regulares
= (u(vx))a (hipótese indutiva)
Linguagens = u((vx)a) (definição de concatenação)
livres de
contexto = u(v(xa)) (definição de concatenação)
= u(v(w)) (substituição, xa = w)
Autômatos
com pilha e
GLC’s

Máquinas de
= u(vw).
Turing 
(278 – 287 de 1593)
Reverso de uma Cadeia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 3.5
Seja u ∈ Σ∗ . O reverso uR de u é definido como:
Alfabetos e
linguagens
Operações com

Base: Se |u| = 0, então u = ε e εR = ε.


cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis Recursão: Se |u| = n > 0, então uR = awR e u = wa para alguma cadeia w tal que
Autômatos
finitos
|w| = n − 1 e a ∈ Σ.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(279 – 287 de 1593)


Reverso de uma Cadeia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 3.5
Seja u ∈ Σ∗ . O reverso uR de u é definido como:
Alfabetos e
linguagens
Operações com

Base: Se |u| = 0, então u = ε e εR = ε.


cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis Recursão: Se |u| = n > 0, então uR = awR e u = wa para alguma cadeia w tal que
Autômatos
finitos
|w| = n − 1 e a ∈ Σ.
Linguagens e
gramáticas
regulares
Exemplo 3.6
Linguagens
livres de
(abc)R = c(ab)R = c(baR ) = cba.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(280 – 287 de 1593)


Reverso de uma Cadeia
LFA 2018/2

H. Longo
Teorema 3.7

Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(281 – 287 de 1593)


Reverso de uma Cadeia
LFA 2018/2

H. Longo
Teorema 3.7

Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos
Demonstração (Indução no comprimento de v).
Alfabetos e
linguagens
Operações com
Base: Se |v| = 0, então v = ε e (uv)R = uR . De forma semelhante,
cadeias
Conjuntos regulares
vR uR = εR uR = uR .
Hipótese: Suponha que (uv)R = vR uR para toda cadeia v com |v| = n.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(282 – 287 de 1593)
Reverso de uma Cadeia
LFA 2018/2

H. Longo
Teorema 3.7

Introdução
Seja u, v ∈ Σ∗ . Então (uv)R = vR uR .
Fundamentos
matemáticos
Demonstração (Indução no comprimento de v).
Alfabetos e
linguagens Passo indutivo: Se v é uma cadeia com |v| = n + 1, então v = wa para alguma
cadeia w de comprimento n e a ∈ Σ.
Operações com
cadeias
Conjuntos regulares
Expressões regulares

(uv)R = (u(wa))R
Linguagens contáveis

Autômatos
finitos
= ((uw)a)R (associatividade da concatenação)
Linguagens e
gramáticas
regulares
= a(uw) R
(definição de reverso)
Linguagens = a(wR uR ) (hipótese indutiva)
livres de
contexto
= (aw )u
R R
(associatividade da concatenação)
Autômatos
com pilha e
GLC’s
= (wa) u
R R
(definição de reverso)
Máquinas de
Turing
=v u .
R R

(283 – 287 de 1593)
Cadeia em um alfabeto Σ
Um pouco mais de formalismo.

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Sequência w de comprimento n no alfabeto Σ.
Alfabetos e
linguagens
w : [n] → Σ.
Operações com
cadeias
[n] é o domínio.
Conjuntos regulares Σ é o contradomínio.
|w| = n é o comprimento de w.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(284 – 287 de 1593)


Cadeia em um alfabeto Σ
Um pouco mais de formalismo.

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Sequência w de comprimento n no alfabeto Σ.
Alfabetos e
linguagens
w : [n] → Σ.
Operações com
cadeias
[n] é o domínio.
Conjuntos regulares Σ é o contradomínio.
|w| = n é o comprimento de w.
Expressões regulares
Linguagens contáveis

Autômatos
finitos
Exemplo:
Linguagens e
gramáticas Σ = {a, b, c}.
regulares w = cbba.
Linguagens
livres de
w : [4] → Σ, definida por w(1) = c, w(2) = b, w(3) = b, w(4) = a.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(285 – 287 de 1593)


Concatenação de Palavras
Um pouco mais de formalismo.

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Seja o alfabeto Σ e as funções:
linguagens
Operações com
x : [m] → Σ.
cadeias
Conjuntos regulares
y : [n] → Σ.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(286 – 287 de 1593)


Concatenação de Palavras
Um pouco mais de formalismo.

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Seja o alfabeto Σ e as funções:
linguagens
Operações com
x : [m] → Σ.
cadeias
Conjuntos regulares
y : [n] → Σ.
Expressões regulares
Linguagens contáveis

Autômatos
Concatenação de x e y:
finitos
(
x(i), se i ≤ m;
x ◦ y : [m + n] → Σ, tal que: x ◦ y =
Linguagens e
gramáticas
y(i − m), se i > m.
regulares
|x ◦ y| = |x| + |y| = m + n é o comprimento da palavra x ◦ y.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(287 – 287 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos Conjuntos regulares
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(288 – 337 de 1593)


Linguagem Formal
LFA 2018/2

H. Longo

Introdução

Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(289 – 337 de 1593)


Linguagem Formal
LFA 2018/2

H. Longo

Introdução

Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
Se Σ = {a, b}, então são linguagens sobre Σ:
cadeias
Conjuntos regulares
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
Expressões regulares
Linguagens contáveis
(Atenção: { } , {ε} , ε).
Autômatos
Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e sobre Σ.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(290 – 337 de 1593)


Linguagem Formal
LFA 2018/2

H. Longo

Introdução

Fundamentos
Dado um alfabeto Σ, uma linguagem em Σ é um conjunto de sequências de
matemáticos símbolos (palavras) do alfabeto.
Alfabetos e
linguagens
Operações com
Se Σ = {a, b}, então são linguagens sobre Σ:
cadeias
Conjuntos regulares
Finitas: o conjunto vazio e o conjunto formado pela palavra vazia.
Expressões regulares
Linguagens contáveis
(Atenção: { } , {ε} , ε).
Autômatos
Finitas: {a, b, aa, ab, ba, bb}, {ε, aaa, bbb}, {aaa, aab, aba, abb}.
finitos Infinitas: o conjunto {ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, . . . } de palíndromos
Linguagens e sobre Σ.
gramáticas
regulares

Linguagens
Linguagem Σ∗ : conjunto de todas as sequências de símbolos do alfabeto Σ.
livres de
contexto
ε ∈ Σ∗ .
Autômatos
L ⊆ Σ∗ , se L é uma linguagem em Σ.
com pilha e
GLC’s

Máquinas de
Turing

(291 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(292 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares Linguagem finita:
Expressões regulares
Linguagens contáveis Enumeração de suas cadeias.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(293 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Especificação de uma linguagem:
Alfabetos e
linguagens Descrição não ambígua das cadeias da linguagem.
Operações com
cadeias
Conjuntos regulares Linguagem finita:
Expressões regulares
Linguagens contáveis Enumeração de suas cadeias.
Autômatos
finitos Linguagem infinita:
Linguagens e
gramáticas
Definição recursiva das cadeias (para linguagens com estrutura sintática
regulares simples).
Linguagens Construção a partir de conjuntos finitos através dos operadores de conjuntos.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(294 – 337 de 1593)


Notação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 3.8
Alfabetos e
linguagens
Operações com
Seja Σ um alfabeto. A definição recursiva do conjunto Σ∗ , das cadeias
cadeias
Conjuntos regulares
definidas sobre Σ, é:
Expressões regulares
Linguagens contáveis
Base: ε ∈ Σ∗ .
Autômatos
finitos Recursão: Se w ∈ Σ∗ e a ∈ Σ, então wa ∈ Σ∗ .
Linguagens e
gramáticas Fecho: w ∈ Σ∗ se w pode ser obtida a partir de ε com um número finito de
regulares
aplicações do passo recursivo.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(295 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 3.9


linguagens
Operações com Linguagem L, sobre o alfabeto Σ = {a, b}, que contém cadeias de
cadeias
Conjuntos regulares comprimento par e começam com a:
Expressões regulares
Linguagens contáveis
Base: aa, ab ∈ L.
Autômatos
finitos Recursão: Se u ∈ L, então uaa, uab, uba, ubb ∈ L.
Linguagens e Fecho: Uma cadeia u ∈ L se pode ser obtida a partir das cadeias básicas,
gramáticas
regulares com a aplicação um número finito de vezes da recursão.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(296 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 3.10


linguagens
Operações com Linguagem L, sobre o alfabeto Σ = {a, b}, que contém cadeias em que cada
cadeias
Conjuntos regulares ocorrência de um b é precedida de um a:
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(297 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 3.10


linguagens
Operações com Linguagem L, sobre o alfabeto Σ = {a, b}, que contém cadeias em que cada
cadeias
Conjuntos regulares ocorrência de um b é precedida de um a:
Expressões regulares
Linguagens contáveis
Base: ε ∈ L.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(298 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 3.10


linguagens
Operações com Linguagem L, sobre o alfabeto Σ = {a, b}, que contém cadeias em que cada
cadeias
Conjuntos regulares ocorrência de um b é precedida de um a:
Expressões regulares
Linguagens contáveis
Base: ε ∈ L.
Autômatos
finitos Recursão: Se u ∈ L, então ua, uab ∈ L.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(299 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 3.10


linguagens
Operações com Linguagem L, sobre o alfabeto Σ = {a, b}, que contém cadeias em que cada
cadeias
Conjuntos regulares ocorrência de um b é precedida de um a:
Expressões regulares
Linguagens contáveis
Base: ε ∈ L.
Autômatos
finitos Recursão: Se u ∈ L, então ua, uab ∈ L.
Linguagens e Fecho: Uma cadeia u ∈ L se pode ser obtida a partir das cadeias básicas,
gramáticas
regulares com a aplicação um número finito de vezes da recursão.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(300 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Definição 3.11
Introdução

Fundamentos A concatenação das linguagens L e M é:


matemáticos

Alfabetos e L ◦ M = {xy | x ∈ L e y ∈ M}.


linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(301 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Definição 3.11
Introdução

Fundamentos A concatenação das linguagens L e M é:


matemáticos

Alfabetos e L ◦ M = {xy | x ∈ L e y ∈ M}.


linguagens
Operações com
cadeias
Conjuntos regulares Definição 3.12 (Operações com Linguagens)
Expressões regulares
Linguagens contáveis
Se L e M são linguagens no alfabeto Σ, então:
Autômatos
finitos

Linguagens e
L ∪ M = {x | x ∈ L ou x ∈ M}.
gramáticas
regulares L ∩ M = {x | x ∈ L e x ∈ M}.
Linguagens
livres de
L − M = {x | x ∈ L e x < M}.
contexto
L = Σ∗ − L,
Autômatos
com pilha e
GLC’s
= {x ∈ Σ∗ | x < L}.
Máquinas de
Turing

(302 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Exemplo 3.13
Introdução

Fundamentos
Se L = {a, bc, cb}, M = {aa, bb, cc, bc, cb} e Σ = {a, b, c}, então:
matemáticos

Alfabetos e
linguagens
L ∪ M = {a, bc, cb, aa, bb, cc}.
Operações com
cadeias L ∩ M = {bc, cb}.
Conjuntos regulares
Expressões regulares
Linguagens contáveis
L − M = {a}.
Autômatos M − L = {aa, bb, cc}.
finitos

Linguagens e L = {x ∈ Σ∗ | x , a, x , bc, x , cb}.


gramáticas
regulares = {ε, b, aa, ab, ac, ba, bb, cb, cc, aaa, . . . }.
Linguagens
livres de L◦M = {aaa, abb, acc, abc, acb, bcaa, bcbb, bccc,
contexto

Autômatos
bcbc, bccb, cbaa, cbbb, cbcc, cbbc, cbcb}.
com pilha e
GLC’s M◦L = . . .
Máquinas de
Turing

(303 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo
Definição 3.14
Introdução I = {ε} : elemento neutro na concatenação de linguagens:
Fundamentos
matemáticos L ◦ I = I ◦ L = L.
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(304 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo
Definição 3.14
Introdução I = {ε} : elemento neutro na concatenação de linguagens:
Fundamentos
matemáticos L ◦ I = I ◦ L = L.
Alfabetos e
linguagens
Operações com
cadeias Definição 3.15
Conjuntos regulares
Expressões regulares
Linguagens contáveis
Li : potência da linguagem L.
Autômatos
finitos L0 = {ε}.
Linguagens e
gramáticas L1 = L.
N.
regulares

Linguagens Li+1 = L ◦ Li , para i ∈


para i, j ∈ N.
livres de
contexto L L =L
i◦ j i+ j
,
para i, j ∈ N.
Autômatos
com pilha e L j ◦ Li = L j+i ,
GLC’s

Máquinas de
Turing

(305 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(306 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(307 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(308 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(309 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(310 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(311 – 337 de 1593)


Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(312 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e .
linguagens ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j
| {z }
Expressões regulares
i−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j
| {z }
finitos
i−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(313 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j
| {z }
regulares i−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j
| {z }
contexto i−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(314 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j = L ◦ L ◦ · · · ◦ L ◦ L◦L1+i
| {z } | {z }
regulares i−1 cópias j−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j = L ◦ L ◦ · · · ◦ L◦L2+i
| {z } | {z }
contexto i−2 cópias j−2 cópias
Autômatos
..
com pilha e
GLC’s
.
Máquinas de = L ◦ L(i−1)+ j
Turing
= Li+ j .
(315 – 337 de 1593)
Operações com Linguagens
LFA 2018/2
Concatenação de potências de uma linguagem (Rafael Quirino – LFA 2017/1)
H. Longo

Introdução
Li ◦ L j = L ◦ Li−1 ◦ L j L j ◦ Li = L ◦ L j−1 ◦ Li
Fundamentos
matemáticos = L ◦ L ◦ Li−2 ◦ L j = L ◦ L ◦ L j−2 ◦ Li
Alfabetos e . .
linguagens .. ..
Operações com
cadeias
Conjuntos regulares
= L ◦ L ◦ · · · ◦ L◦L2 ◦ L j = L ◦ L ◦ · · · ◦ L◦L2 ◦ Li
| {z } | {z }
Expressões regulares
i−2 cópias j−2 cópias
Linguagens contáveis

Autômatos
= L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ L j = L ◦ L ◦ · · · ◦ L ◦ L◦L1 ◦ Li
| {z } | {z }
finitos
i−1 cópias j−1 cópias
Linguagens e
gramáticas
= L ◦ L ◦ · · · ◦ L ◦ L◦L1+ j = L ◦ L ◦ · · · ◦ L ◦ L◦L1+i
| {z } | {z }
regulares i−1 cópias j−1 cópias
Linguagens
livres de
= L ◦ L ◦ · · · ◦ L◦L2+ j = L ◦ L ◦ · · · ◦ L◦L2+i
| {z } | {z }
contexto i−2 cópias j−2 cópias
Autômatos
.. ..
com pilha e
GLC’s
. .
Máquinas de = L ◦ L(i−1)+ j = L ◦ L( j−1)+i
Turing
= Li+ j . = L j+i .
(316 – 337 de 1593)
Operações com Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 3.16
Alfabetos e
linguagens
Se L = {0, 11} e Σ = {0, 1}, então:
Operações com
cadeias
Conjuntos regulares L0 = {ε}.
Expressões regulares
Linguagens contáveis
L1 = L ◦ L0 = {0, 11} ◦ {ε} = {0, 11}.
Autômatos
finitos
L2 = L ◦ L1 = {0, 11} ◦ {0, 11} = {00, 011, 110, 1111}.
Linguagens e
gramáticas
regulares
L3 = L ◦ L2 = {0, 11} ◦ {00, 011, 110, 1111}.
Linguagens L3 = {000, 0011, 0110, 01111, 1100, 11011, 11110, 111111}.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(317 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução

Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(318 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução

Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares Definição 3.18
Linguagens contáveis

Autômatos
L+ = Li = L ◦ L∗ = L1 ∪ L 2 ∪ L 3 ∪ . . .
S
finitos
i=1
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(319 – 337 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo
Definição 3.17 (Fecho de Kleene)
Introdução

Fundamentos
Fecho da linguagem L:
matemáticos ∞
L∗ = Li = L0 ∪ L 1 ∪ L 2 ∪ . . .
S
Alfabetos e
linguagens
i=0
Operações com
cadeias
Conjuntos regulares
Expressões regulares Definição 3.18
Linguagens contáveis

Autômatos
L+ = Li = L ◦ L∗ = L1 ∪ L 2 ∪ L 3 ∪ . . .
S
finitos
i=1
Linguagens e
gramáticas
regulares

Linguagens Exemplo 3.19


livres de
contexto
Se L = {0, 11} e Σ = {0, 1}, então:
Autômatos
com pilha e
GLC’s L∗ = {ε, 0, 11, 00, 011, 110, 1111, 000, 0011, 0110, . . . }.
Máquinas de
Turing

(320 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(321 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Ex: Linguagem L sobre o alfabeto Σ = {a, b}, tal que L contém cadeias com a
Operações com
cadeias
Conjuntos regulares
Expressões regulares subcadeia bb.
Linguagens contáveis
Uma cadeia w ∈ L pode conter mais de uma ocorrência da subcadeia bb?
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(322 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Especificação não ambígua das cadeias que pertencem à linguagem.
Alfabetos e
linguagens Descrição informal não é rigorosa o suficiente para uma definição precisa.
Ex: Linguagem L sobre o alfabeto Σ = {a, b}, tal que L contém cadeias com a
Operações com
cadeias
Conjuntos regulares
Expressões regulares subcadeia bb.
Linguagens contáveis
Uma cadeia w ∈ L pode conter mais de uma ocorrência da subcadeia bb?
Autômatos
finitos A precisão das operações em conjuntos pode ser usada para a descrição não
Linguagens e
gramáticas
ambígua de linguagens.
regulares O resultado de uma operação unária em uma linguagem ou uma operação
Linguagens binária em duas linguagens define outra linguagem.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(323 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(324 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(325 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.20
Alfabetos e
linguagens
Operações com
Σ = {a, b} e L é composta de todas as cadeias que contém a subcadeia bb:
cadeias
Conjuntos regulares
L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
Expressões regulares
Linguagens contáveis
A concatenação do conjunto {bb} garante a presença de bb em toda cadeia
Autômatos
finitos de L.
Linguagens e
gramáticas Os conjuntos {a, b}∗ permitem qualquer número de a’s e b’s, em qualquer
regulares
ordem, antes ou depois da cadeia bb.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(326 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.21


matemáticos

Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(327 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.21


matemáticos

Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(328 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.21


matemáticos

Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis

Autômatos L = {aa} ◦ {a, b}∗ ∪ {a, b}∗ ◦ {bb}.


finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(329 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.21


matemáticos

Alfabetos e
Σ = {a, b} e L é composta de todas as cadeias que começam com aa ou
linguagens terminam com bb:
Operações com
cadeias {aa} ◦ {a, b}∗ → conjunto de cadeias com prefixo aa.
Conjuntos regulares
Expressões regulares {a, b}∗ ◦ {bb} → conjunto de cadeias com sufixo bb.
Linguagens contáveis

Autômatos L = {aa} ◦ {a, b}∗ ∪ {a, b}∗ ◦ {bb}.


finitos

Linguagens e
gramáticas Exemplo 3.22
regulares

Linguagens Dadas linguagens L1 = {bb} e L2 = {ε, bb, bbbb} sobre o alfabeto Σ = {b},
livres de
contexto então L∗1 = L∗2 contém cadeias com número par de b’s.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(330 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(331 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos

Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(332 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos

Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares

Linguagens
I = {a, b}∗ − {aa, bb, ab, ba}∗ .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(333 – 337 de 1593)


Especificação Finita de Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.23
Alfabetos e P é o conjunto de cadeias de comprimento par definidas sobre o alfabeto
linguagens
Operações com
Σ = {a, b}:
P = {aa, bb, ab, ba}∗ .
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
A repetição de concatenações constrói cadeias com o acréscimo de dois
Autômatos símbolos de cada vez.
finitos

Linguagens e
I é o conjunto de cadeias de comprimento ímpar definidas sobre o alfabeto
gramáticas Σ = {a, b}:
regulares

Linguagens
I = {a, b}∗ − {aa, bb, ab, ba}∗ .
livres de I = {a, b} ◦ {aa, bb, ab, ba}∗ .
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(334 – 337 de 1593)


Conjuntos Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 3.24
Um conjunto regular sobre um alfabeto Σ é definido como:
Alfabetos e
linguagens
Operações com

Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.


cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis Recursão: Se X e Y são conjuntos regulares sobre Σ, então X ∪ Y , XY e X ∗
Autômatos
finitos
também são conjuntos regulares sobre Σ.
Linguagens e Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
gramáticas
regulares conjuntos regulares básicos, com a aplicação da recursão um número
Linguagens finito de vezes.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(335 – 337 de 1593)


Conjuntos Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.25
Alfabetos e A linguagem L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ é um conjunto regular sobre Σ = {a, b}.
linguagens
Operações com {a} e {b} são conjuntos regulares (base da definição).
{a, b}∗ é regular (união e fecho de Kleene).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
{b} ◦ {b} = {bb} é regular (concatenação).
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(336 – 337 de 1593)


Conjuntos Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.25
Alfabetos e A linguagem L = {a, b}∗ ◦ {bb} ◦ {a, b}∗ é um conjunto regular sobre Σ = {a, b}.
linguagens
Operações com {a} e {b} são conjuntos regulares (base da definição).
{a, b}∗ é regular (união e fecho de Kleene).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis
{b} ◦ {b} = {bb} é regular (concatenação).
Autômatos
finitos
Exemplo 3.26
Linguagens e
gramáticas
regulares
O conjunto de cadeias, sobre o alfabeto {a, b}, que terminam com a e têm pelo
menos um b é regular.
Linguagens
livres de {a, b}∗ ◦ {b} ◦ {a, b}∗ ◦ {a}
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(337 – 337 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos Expressões regulares
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(338 – 389 de 1593)


Conjuntos e Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Expressões regulares são usadas para abreviar a descrição de conjuntos
Operações com
cadeias regulares:
Conjuntos regulares
Expressões regulares O conjunto regular {a} é representado por a.
Linguagens contáveis
As operações de união, fecho de Kleene e concatenação são designadas por ∪,
Autômatos

finitos e justaposição, respectivamente.
Linguagens e Parênteses são usados para indicar a precedência dos operadores.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(339 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Definição 3.27


Fundamentos
matemáticos
Uma expressão regular sobre um alfabeto Σ é definida como:
Alfabetos e
linguagens
Base: ∅, ε e a, para todo a ∈ Σ, são expressões regulares sobre Σ.
Operações com
cadeias Recursão: Se u e v são expressões regulares sobre Σ, então (u ∪ v), (uv) e (u∗ )
também são expressões regulares sobre Σ.
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Fecho: u é uma expressão regular sobre Σ se pode ser obtida, a partir das
finitos
expressões regulares básicas, com a aplicação da recursão um
Linguagens e
gramáticas
número finito de vezes.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(340 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Definição 3.27


Fundamentos
matemáticos
Uma expressão regular sobre um alfabeto Σ é definida como:
Alfabetos e
linguagens
Base: ∅, ε e a, para todo a ∈ Σ, são expressões regulares sobre Σ.
Operações com
cadeias Recursão: Se u e v são expressões regulares sobre Σ, então (u ∪ v), (uv) e (u∗ )
também são expressões regulares sobre Σ.
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Fecho: u é uma expressão regular sobre Σ se pode ser obtida, a partir das
finitos
expressões regulares básicas, com a aplicação da recursão um
Linguagens e
gramáticas
número finito de vezes.
regulares

Linguagens
livres de
Linguagem de uma expressão regular
contexto
Se u é uma expressão regular, então a linguagem gerada por u é denotada
Autômatos
com pilha e por L(u).
GLC’s

Máquinas de
Turing

(341 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com Uma expressão regular define um padrão e uma cadeia pertence à linguagem
cadeias
Conjuntos regulares gerada pela expressão se está de acordo com o padrão definido.
Expressões regulares
Linguagens contáveis A concatenação especifica uma ordem relativa entre dois elementos.
Autômatos O fecho de Kleene permite repetições.
finitos
A operação ∪ permite seleção.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(342 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(343 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(344 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos

Linguagens e
gramáticas Exemplo 3.28
regulares

Linguagens
(a ∪ b)∗ bb(a ∪ b)∗ : expressão regular para o conjunto {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(345 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Precedência dos operadores regulares:
Alfabetos e
1 Fecho de Kleene.
linguagens 2 Concatenação e união.
Operações com
cadeias
Conjuntos regulares
Parênteses podem ser eliminados de expressões que são sequências de
Expressões regulares
Linguagens contáveis
uniões ou concatenações.
Autômatos União e concatenação são operações associativas.
finitos

Linguagens e
gramáticas Exemplo 3.28
regulares

Linguagens
(a ∪ b)∗ bb(a ∪ b)∗ : expressão regular para o conjunto {a, b}∗ ◦ {bb} ◦ {a, b}∗ .
livres de
contexto a(a ∪ b)∗ b(a ∪ b)∗ a : expressão regular para o conjunto {a}◦{a, b}∗◦{b}◦{a, b}∗◦{a}.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(346 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo Definição 3.29


Introdução

Fundamentos
matemáticos
u+ = uu∗ .
Alfabetos e u2 = uu.
linguagens
Operações com
cadeias u3 = u2 u.
..
Conjuntos regulares
Expressões regulares
Linguagens contáveis .
Autômatos
finitos un = un−1 u.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(347 – 389 de 1593)


Linguagens de expressões regulares
LFA 2018/2
Resumo
H. Longo

Expressão regular Linguagem


Introdução

Fundamentos
∅ L(∅) = {} = ∅
matemáticos ε L(ε) = {ε}
Alfabetos e
linguagens
a, a ∈ Σ L(a) = {a}
Operações com
cadeias
u L(u)
Conjuntos regulares
Expressões regulares
u∪v L(u ∪ v) = L(u) ∪ L(v)
Linguagens contáveis
u◦v L(u ◦ v) = L(u) ◦ L(v)
Autômatos
finitos u∗ L(u∗ ) = (L(u))∗
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(348 – 389 de 1593)


Linguagens de expressões regulares
LFA 2018/2
Resumo
H. Longo

Expressão regular Linguagem


Introdução

Fundamentos
∅ L(∅) = {} = ∅
matemáticos ε L(ε) = {ε}
Alfabetos e
linguagens
a, a ∈ Σ L(a) = {a}
Operações com
cadeias
u L(u)
Conjuntos regulares
Expressões regulares
u∪v L(u ∪ v) = L(u) ∪ L(v)
Linguagens contáveis
u◦v L(u ◦ v) = L(u) ◦ L(v)
Autômatos
finitos u∗ L(u∗ ) = (L(u))∗
Linguagens e
gramáticas
regulares Observações
A notação (u + v) também é usada para denotar a união (u ∪ v).
Linguagens
livres de
contexto

Autômatos
Alguns parênteses podem ser eliminados. Em cada caso, a interpretação é
com pilha e
GLC’s
feita de acordo com a ordem de precedência: fecho de Kleene, concatenação
Máquinas de
e, por último, união.
u+ = uu∗ e uk , para k concatenações sucessivas, são notações válidas.
Turing

(349 – 389 de 1593)


Linguagens de expressões regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 3.30
Fundamentos
matemáticos
Expressão regular Linguagem
Alfabetos e
linguagens
Operações com
a∪b L(a ∪ b) = {a} ∪ {b} =
cadeias
Conjuntos regulares {a, b}
Expressões regulares
Linguagens contáveis a∗ L(a∗ ) = (L(a))∗ = ({a})∗ =
Autômatos
finitos
{ε, a, aa, aaa, aaaa, . . . }
Linguagens e (a ∪ b)(a ∪ b) L((a ∪ b)(a ∪ b)) = L((a ∪ b)) ◦ L((a ∪ b)) = {a, b} ◦ {a, b} =
gramáticas
regulares {aa, ab, ba, bb}
Linguagens
livres de
a ∪ (ab)∗ L(a ∪ (ab)∗ ) = L(a) ∪ L((ab)∗ ) = {a} ∪ {ε, ab, abab, . . . }
contexto
{a, ε, ab, abab, ababab, . . . }
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(350 – 389 de 1593)


Linguagens de expressões regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.31


Fundamentos
matemáticos Seja o alfabeto Σ = {a, b}:
Alfabetos e Expressão regular Linguagem
linguagens

{a, b} = Σ.
Operações com
cadeias
Conjuntos regulares
a∪b
Expressões regulares
Linguagens contáveis (a ∪ b)∗ Todas as palavras sobre Σ (Σ∗ ).
Autômatos
finitos
a(a ∪ b)∗ Todas as palavras que começam com a.
Linguagens e b∗ (a ∪ ε)b∗ Todas as palavras que contém zero ou um a.
gramáticas
regulares a(ε ∪ b)∗ {a, ab, abb, abbb, . . . }.
Linguagens
livres de ((a ∪ b)(a ∪ b))∗ Todas as palavras de comprimento par.
contexto

Autômatos
(ab∗ )∗ a∗ Σ∗ .
com pilha e
GLC’s

Máquinas de
Turing

(351 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.32


matemáticos

Alfabetos e O conjunto {bawab | w ∈ {a, b}∗ }, sobre o alfabeto Σ = {a, b} é regular:


linguagens
Operações com
cadeias Conjunto Expressão Justificativa
Conjuntos regulares
Expressões regulares
1. {a} a Base
Linguagens contáveis 2. {b} b Base
Autômatos 3. {a} ◦ {b} = {ab} ab 1, 2, Concatenação
finitos
4. {a} ∪ {b} = {a, b} a∪b 1, 2, União
Linguagens e 5. {b} ◦ {a} = {ba} ba 2, 1, Concatenação
gramáticas
regulares 6. {a, b}∗ (a ∪ b)∗ 4, Fecho de Kleene
Linguagens
7. {ba} ◦ {a, b}∗ ba(a ∪ b)∗ 5, 6, Concatenação
livres de 8. {ba} ◦ {a, b}∗ ◦ {ab} ba(a ∪ b)∗ ab 7, 3, Concatenação
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(352 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa:
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(353 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(354 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb:
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(355 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(356 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Conjuntos regulares
Expressões regulares Cadeias que contêm aa ou bb:
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(357 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Conjuntos regulares
Expressões regulares Cadeias que contêm aa ou bb: (a ∪ b)∗ aa(a ∪ b)∗ ∪ (a ∪ b)∗ bb(a ∪ b)∗ .
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(358 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Conjuntos regulares
Expressões regulares Cadeias que contêm aa ou bb: (a ∪ b)∗ aa(a ∪ b)∗ ∪ (a ∪ b)∗ bb(a ∪ b)∗ .
Linguagens contáveis

Autômatos
finitos
Exemplo 3.34
Linguagens e
gramáticas Expressões regulares que definem o conjunto de cadeias, sobre o alfabeto
regulares
Σ = {a, b}, que contêm pelo menos 2 b’s:
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(359 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução Exemplo 3.33


Fundamentos
matemáticos
Alfabeto: Σ = {a, b}.
Alfabetos e Cadeias que contêm aa: (a ∪ b)∗ aa(a ∪ b)∗ .
linguagens
Operações com
cadeias Cadeias que contêm bb: (a ∪ b)∗ bb(a ∪ b)∗ .
Conjuntos regulares
Expressões regulares Cadeias que contêm aa ou bb: (a ∪ b)∗ aa(a ∪ b)∗ ∪ (a ∪ b)∗ bb(a ∪ b)∗ .
Linguagens contáveis

Autômatos
finitos
Exemplo 3.34
Linguagens e
gramáticas Expressões regulares que definem o conjunto de cadeias, sobre o alfabeto
regulares
Σ = {a, b}, que contêm pelo menos 2 b’s:
Linguagens
livres de 1 a∗ ba∗ b(a ∪ b)∗ .
contexto 2 (a ∪ b)∗ ba∗ ba∗ .
Autômatos
com pilha e
3 (a ∪ b)∗ b(a ∪ b)∗ b(a ∪ b)∗ .
GLC’s

Máquinas de
Turing

(360 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(361 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(362 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis

Autômatos Exemplo 3.36


finitos

Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(363 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis

Autômatos Exemplo 3.36


finitos

Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares

Linguagens
a∗ (a∗ ba∗ ba∗ )∗ .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(364 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.35
Alfabetos e Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
linguagens
Operações com
contêm exatamente 2 b’s:
cadeias
Conjuntos regulares a∗ ba∗ ba∗ .
Expressões regulares
Linguagens contáveis

Autômatos Exemplo 3.36


finitos

Linguagens e
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
gramáticas contêm número par de b’s:
regulares

Linguagens
a∗ (a∗ ba∗ ba∗ )∗ .
livres de a∗ (ba∗ ba∗ )∗ .
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(365 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 3.37
Alfabetos e
linguagens
Operações com
Duas expressões regulares r e s são equivalentes se L(r) = L(s).
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis Pode não existir uma única expressão regular para definir um conjunto.
Autômatos
finitos Duas expressões que representam o mesmo conjunto são ditas equivalentes.
Linguagens e
gramáticas
Expressões regulares podem ser manipuladas algebricamente para a
regulares construção de expressões equivalentes.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(366 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo
Definição 3.38 (Identidades Básicas)
Introdução

Fundamentos
1. ∅u = u∅ = ∅
matemáticos 2. εu = uε = u
Alfabetos e 3. ∅∗ = ε
linguagens
Operações com 4. ε∗ = ε
cadeias
Conjuntos regulares 5. u∪v=v∪u
Expressões regulares
Linguagens contáveis 6. u∪∅=u
Autômatos 7. u∪u=u
finitos
8. u∗ = (u∗ )∗
Linguagens e
gramáticas 9. u(v ∪ w) = uv ∪ uw
regulares
10. (u ∪ v)w = uw ∪ vw
Linguagens
livres de
11. (uv)∗ u = u(vu)∗
contexto 12. (u ∪ v)∗ = (u∗ ∪ v)∗
Autômatos = u∗ (u ∪ v)∗ = (u ∪ vu∗ )∗
com pilha e
GLC’s = (u∗ v∗ )∗ = u∗ (vu∗ )∗
Máquinas de = (u∗ v)∗ u∗
Turing

(367 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(368 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Uma cadeia pode conter um prefixo com qualquer número de b’s;
Linguagens contáveis
Todo a deve ser seguido por pelo menos um b ou terminar a cadeia.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(369 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 3.39
Alfabetos e
linguagens Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b}, que
Operações com
cadeias
não contêm a subcadeia aa.
Conjuntos regulares
Expressões regulares
Uma cadeia pode conter um prefixo com qualquer número de b’s;
Linguagens contáveis
Todo a deve ser seguido por pelo menos um b ou terminar a cadeia.
Autômatos
finitos b∗ (ab+ )∗ ∪ b∗ (ab+ )∗ a
Linguagens e = b∗ (ab+ )∗ (ε ∪ a)
gramáticas = b∗ (abb∗ )∗ (ε ∪ a)
regulares
= (b ∪ ab)∗ (ε ∪ a)
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(370 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(371 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(372 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(373 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(374 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares
Quando ocorre um elemento de ac∗ , este pode ser seguido por qualquer
Linguagens
livres de
número de a’s ou b’s (em qualquer ordem).
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(375 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 3.40


matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm a subcadeia bc:
Operações com
cadeias (a ∪ b ∪ c)∗ bc(a ∪ b ∪ c)∗ .
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
Exemplo 3.41
finitos
Linguagem L definida por c∗ (b ∪ ac∗ )∗ :
Linguagens e
gramáticas c∗ e ac∗ garante que a’s e b’s podem ocorrer em qualquer ordem.
regulares
Quando ocorre um elemento de ac∗ , este pode ser seguido por qualquer
Linguagens
livres de
número de a’s ou b’s (em qualquer ordem).
contexto L não contém cadeias com a subcadeia bc.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(376 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(377 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(378 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(379 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(380 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(381 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(382 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(383 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 3.42
Alfabetos e Expressão regular Conjunto regular
linguagens
Operações com
a∗ ba∗ {w ∈ {a, b}∗ | w contém apenas um símbolo b}
cadeias
Conjuntos regulares (a ∪ b)∗ b(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um símbolo b}
a(a ∪ b)∗ a ∪ b(a ∪ b)∗ b ∪ a ∪ b {w ∈ {a, b}∗ | w começa e termina com o mesmo símbolo}
Expressões regulares
Linguagens contáveis

Autômatos (a∗ ba∗ b)∗ a∗ {w ∈ {a, b}∗ | número de ocorrências do símbolo b é par}
finitos
(a ∪ b)∗ aa(a ∪ b)∗ {w ∈ {a, b}∗ | w contém pelo menos um par de a’s consecutivos}
Linguagens e
(a ∪ b)∗ b(a ∪ b)(a ∪ b)(a ∪ b) {w ∈ {a, b}∗ | w contém um b no quarto símbolo a partir do final}
gramáticas
regulares (b∗ abb∗ )∗ (a ∪ ε) ∪ b∗ {w ∈ {a, b}∗ | w não contém um par de a’s consecutivos}
Linguagens (a ∪ b)∗ (aa ∪ ba ∪ bb) ∪ a ∪ b ∪ ε {w ∈ {a, b}∗ | w não termina com ab}
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(384 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 3.43
matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm todos os símbolos pelo menos uma vez:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(385 – 389 de 1593)


Expressões regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 3.43
matemáticos
Expressão regular para o conjunto de cadeias, sobre o alfabeto Σ = {a, b, c},
Alfabetos e
linguagens que contêm todos os símbolos pelo menos uma vez:
Operações com
cadeias
Conjuntos regulares
Expressões regulares
(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ ∪
Linguagens contáveis
(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ ∪
Autômatos
finitos (a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ ∪
Linguagens e (a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ ∪
gramáticas
regulares (a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ ∪
Linguagens (a ∪ b ∪ c)∗ c(a ∪ b ∪ c)∗ b(a ∪ b ∪ c)∗ a(a ∪ b ∪ c)∗
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(386 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 3.44
Operações com
cadeias
Conjuntos regulares Existem linguagens que não podem ser definidas por expressões regulares.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(387 – 389 de 1593)


Expressões Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 3.44
Operações com
cadeias
Conjuntos regulares Existem linguagens que não podem ser definidas por expressões regulares.
Expressões regulares
Linguagens contáveis

Autômatos Demonstração.
finitos

Linguagens e
No decorrer do curso 
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(388 – 389 de 1593)


Algumas questões a serem respondidas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Dada uma palavra w e uma expressão regular e, existe um algoritmo que
Operações com
cadeias decida se w ∈ L(e)?
Conjuntos regulares
Expressões regulares Dadas expressões regulares e1 e e2 , sobre o mesmo alfabeto, existe um
algoritmo que decida se L(e1 ) = L(e2 )?
Linguagens contáveis

Autômatos
finitos
Todas as linguagens são regulares? Caso a resposta seja negativa, como
Linguagens e
gramáticas provar que uma linguagem L não é regular?
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(389 – 389 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias Alfabetos e linguagens
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos Linguagens contáveis
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(390 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo Teorema 3.45


Introdução Dado o alfabeto Σ, o conjunto Σ∗ é contavelmente infinito.
Fundamentos
matemáticos

Alfabetos e
linguagens
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Conjuntos finitos e não finitos

(391 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo Teorema 3.45


Introdução Dado o alfabeto Σ, o conjunto Σ∗ é contavelmente infinito.
Fundamentos
matemáticos

Alfabetos e
Demonstração.
linguagens
Operações com
Existe um número finito de cadeias de cada comprimento.
cadeias
Conjuntos regulares Listar cadeias por ordem alfabética e de tamanho: cadeias de tamanho 0, as
Expressões regulares
Linguagens contáveis tamanho 1, as de tamanho 2, etc.
Autômatos
finitos Corresponder as cadeias da lista com os elementos de N.
Linguagens e
gramáticas 
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Conjuntos finitos e não finitos

(392 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo Teorema 3.45


Introdução Dado o alfabeto Σ, o conjunto Σ∗ é contavelmente infinito.
Fundamentos
matemáticos

Alfabetos e
Demonstração.
linguagens
Operações com
Existe um número finito de cadeias de cada comprimento.
cadeias
Conjuntos regulares Listar cadeias por ordem alfabética e de tamanho: cadeias de tamanho 0, as
Expressões regulares
Linguagens contáveis tamanho 1, as de tamanho 2, etc.
Autômatos
finitos Corresponder as cadeias da lista com os elementos de N.
Linguagens e
gramáticas 
regulares

Linguagens
livres de Exemplo 3.46
contexto

Autômatos
Se Σ = {a, b, c}, uma enumeração é
com pilha e
GLC’s
ε, a, b, c, ab, ac, ba, bb, bc, ca, cb, cc, aaa, aab, . . .
Máquinas de
Turing
Conjuntos finitos e não finitos

(393 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 3.47
Operações com
cadeias
Conjuntos regulares
Qualquer linguagem é contável.
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(394 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 3.47
Operações com
cadeias
Conjuntos regulares
Qualquer linguagem é contável.
Expressões regulares
Linguagens contáveis

Autômatos Demonstração.
finitos

Linguagens e
Toda linguagem em Σ é um subconjunto de Σ∗ . 
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(395 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Linguagens contáveis

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(396 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
O conjunto B de todas as sequências binárias infinitas não é contavelmente
Autômatos
finitos infinito.
Linguagens e Prova por diagonalização similar à prova do Teorema 2.9.
gramáticas
regulares
P(Σ∗ ) é o conjunto de todas as linguagens sobre o alfabeto Σ.
Linguagens
livres de Mostrar que existe uma correspondência entre P(Σ∗ ) e B.
contexto

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(397 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Cada L ∈ P(Σ∗ ) corresponde a uma única sequência de B.
Linguagens contáveis

Autômatos
finitos
Σ∗ = {s1 , s2 , s3 , . . . }.
Sequência característica χL de L:
Linguagens e
gramáticas
regulares (
Linguagens χLi = 1 se si ∈ L,
livres de
contexto
0 se si < L.
Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(398 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
Exemplo:
Autômatos
finitos

Linguagens e Σ = { a , b }
gramáticas
regulares Σ∗ = { ε , a , b , aa , ab , ba , bb , aaa , ··· }
Linguagens
L = { a , aa , ab , aaa , ··· }
livres de χL = 0 1 0 1 1 0 0 1 ···
contexto

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(399 – 400 de 1593)


Operações com Linguagens
LFA 2018/2

H. Longo

Introdução
Teorema 3.48
Fundamentos
matemáticos
A classe de todas as linguagens em um alfabeto Σ não é contavelmente
Alfabetos e
linguagens infinita.
Operações com
cadeias
Conjuntos regulares
Expressões regulares
Demonstração.
Linguagens contáveis
Função f : L → B é bijetora.
Autômatos
finitos f (A) é a sequência característica de A.
Linguagens e
gramáticas Como B não é contavelmente infinito, então P(Σ∗ ) também não é
regulares

Linguagens
contavelmente infinito.
livres de
contexto

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(400 – 400 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos finitos


finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
Autômatos finitos determinísticos
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(401 – 479 de 1593)
Definição básica
LFA 2018/2

H. Longo

Introdução Modelo matemático de uma máquina que aceita uma linguagem particular
Fundamentos
matemáticos
sobre algum alfabeto.
Alfabetos e a1 a2 ... an−1 an ...
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos Controle
Operações com DFA’s
finito de
Autômatos finitos não
determinísticos estados
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(402 – 479 de 1593)
Definição básica
LFA 2018/2

H. Longo

Introdução Modelo matemático de uma máquina que aceita uma linguagem particular
Fundamentos
matemáticos
sobre algum alfabeto.
Alfabetos e a1 a2 ... an−1 an ...
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos Controle
Operações com DFA’s
finito de
Autômatos finitos não
determinísticos estados
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
Processamento de um DFA
regulares
Leitura da esquerda para a direita.
Linguagens
livres de
contexto
Em qualquer ponto do processamento, o resultado depende apenas do
Autômatos
estado corrente e do conjunto de símbolos ainda não processados.
com pilha e
GLC’s

Máquinas de
Turing
(403 – 479 de 1593)
Autômato Finito Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 4.1
Alfabetos e
linguagens
Um Autômato Finito Determinístico (DFA – Deterministic Finite Automaton) é
Autômatos
uma quíntupla M = hΣ, S , s0 , δ, Fi, onde:
finitos
Autômatos finitos
Σ : alfabeto de entrada;
determinísticos
Operações com DFA’s S , ∅ : conjunto finito de estados do modelo;
Autômatos finitos não
determinísticos s0 ∈ S : estado inicial;
δ : S × Σ → S : função de transição de estados;
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
F ⊆ S : conjunto de estados finais (ou de aceitação);
e existe no máximo uma transição para cada par (s ∈ S , a ∈ Σ).
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(404 – 479 de 1593)
Configuração de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Definição 4.2
linguagens
A tabela de transição de estados de um DFA M = hΣ, S , s0 , δ, Fi é uma matriz
Autômatos
finitos T tal que: T [s, a] = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(405 – 479 de 1593)
Configuração de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Definição 4.2
linguagens
A tabela de transição de estados de um DFA M = hΣ, S , s0 , δ, Fi é uma matriz
Autômatos
finitos T tal que: T [s, a] = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ).
Autômatos finitos
determinísticos
Operações com DFA’s
δ a b
Autômatos finitos não
s s1 s2
determinísticos
Equivalência entre
Ex.: T = 0
DFA’s e NFA’s s1 s1 s2
Linguagens e s2 s1 s0
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(406 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i,
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0
finitos
Autômatos finitos
L(M) =???
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(407 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i, a b a ε ...
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0 s0
finitos
Autômatos finitos
L(M) =???
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(408 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i, a b a ε ...
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0 s1
finitos
Autômatos finitos
L(M) =???
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(409 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i, a b a ε ...
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0 s0
finitos
Autômatos finitos
L(M) =???
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(410 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i, a b a ε ...
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0 s1
finitos
Autômatos finitos
L(M) =???
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(411 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.3


Introdução
M = h{a, b}, {s0 , s1 }, s0 , δ, {s1 }i, a b a ε ...
Fundamentos
matemáticos
onde:
δ a b
Alfabetos e
linguagens s0 s1 s0
Autômatos
s1 s1 s0 s1
finitos
Autômatos finitos
L(M) =(b a ) a
∗ ∗ ∗
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(412 – 479 de 1593)
Configuração de um DFA
LFA 2018/2

H. Longo

Introdução
Definição 4.4
Fundamentos
matemáticos Par ordenado [si , w], onde si é o estado corrente e w ∈ Σ∗ é a sequência de
Alfabetos e
linguagens
símbolos ainda não processados.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(413 – 479 de 1593)
Configuração de um DFA
LFA 2018/2

H. Longo

Introdução
Definição 4.4
Fundamentos
matemáticos Par ordenado [si , w], onde si é o estado corrente e w ∈ Σ∗ é a sequência de
Alfabetos e
linguagens
símbolos ainda não processados.
Autômatos
finitos
Autômatos finitos
Notação
determinísticos
Operações com DFA’s
Autômatos finitos não
7−→ : define uma função de S × Σ+ em S × Σ∗ .
M
determinísticos

[si , aw] 7−→[s j , w] : configuração [s j , w] é obtida a partir de [si , aw] com


Equivalência entre
DFA’s e NFA’s
M
Linguagens e
gramáticas apenas uma transição de estados.
regulares ∗
Linguagens
[si , u] 7−→[s j , v] : configuração [s j , v] pode ser obtida a partir de [si , u] com
livres de
contexto zero ou mais transições.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(414 – 479 de 1593)
Configuração de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 4.5
Autômatos A função 7−→ em S × Σ+ é definida por
finitos M
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
[si , aw] 7−→[δ(si , a), w],
M
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
para a ∈ Σ e w ∈ Σ∗ , onde δ é a função de transição do DFA M .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(415 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i,
Fundamentos
matemáticos onde:
δ a b
Alfabetos e
linguagens s0 s0 s1
Autômatos s1 s0 s2
finitos s2 s2 s2
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(416 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i,
Fundamentos
matemáticos onde:
δ a b
Alfabetos e
linguagens s0 s0 s1
Autômatos s1 s0 s2
finitos s2 s2 s2
Autômatos finitos
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(417 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1
Autômatos s1 s0 s2
finitos s2 s2 s2
Autômatos finitos
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(418 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2
finitos s2 s2 s2
Autômatos finitos
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(419 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos s2 s2 s2
Autômatos finitos
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(420 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(421 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(422 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(423 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba] 7−→ [s0 , bab]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(424 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba] 7−→ [s0 , bab]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba] 7−→ [s1 , ab]
Autômatos s1 s0 s2 7−→ [s2 , a]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(425 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba] 7−→ [s0 , bab]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba] 7−→ [s1 , ab]
Autômatos s1 s0 s2 7−→ [s2 , a] 7−→ [s0 , b]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(426 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba] 7−→ [s0 , bab]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba] 7−→ [s1 , ab]
Autômatos s1 s0 s2 7−→ [s2 , a] 7−→ [s0 , b]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε] 7−→ [s1 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(427 – 479 de 1593)
Processamento de um DFA
LFA 2018/2

H. Longo Exemplo 4.6


Introdução Cadeia abba Cadeia abab
M = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, [s0 , abba] [s0 , abab]
Fundamentos
matemáticos onde: 7−→ [s0 , bba] 7−→ [s0 , bab]
δ a b
Alfabetos e
linguagens s0 s0 s1 7−→ [s1 , ba] 7−→ [s1 , ab]
Autômatos s1 s0 s2 7−→ [s2 , a] 7−→ [s0 , b]
finitos
Autômatos finitos
s2 s2 s2 7−→ [s2 , ε] 7−→ [s1 , ε]
determinísticos
Operações com DFA’s L(M) = (a ∪ b)∗ bb(a ∪ b)∗ Cadeia aceita! Cadeia rejeitada!
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(428 – 479 de 1593)
Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 4.7
Alfabetos e
linguagens A função de transição estendida δ de um DFA, com função de transição δ, é
Autômatos
finitos
uma função de S × Σ∗ em S , definida recursivamente no comprimento da
Autômatos finitos cadeia de entrada:
determinísticos
Operações com DFA’s 1 Base:
|w| = 0 ⇒ w = ε e δ(si , ε) = si ,
Autômatos finitos não
determinísticos

|w| = 1 ⇒ w = a ∈ Σ e δ(si , a) = δ(si , a).


Equivalência entre
DFA’s e NFA’s

Linguagens e 2 Recursão:
gramáticas
regulares |w| = n > 1 ⇒ w = ua e δ(si , ua) = δ(δ(si , u), a).
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(429 – 479 de 1593)
Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Resumo
Autômatos
finitos
A função estendida de transição de estados δ : S × Σ∗ → S , de um DFA
Autômatos finitos
determinísticos
M = hΣ, S , s0 , δ, Fi, é definida como:
Operações com DFA’s
Autômatos finitos não
1 δ(s, ε) = s (∀ s ∈ S )
determinísticos
Equivalência entre
2 δ(s, a) = δ(s, a) (∀ s ∈ S , ∀ a ∈ Σ)
DFA’s e NFA’s 3 δ(s, au) = δ(δ(s, a), u) (∀ s ∈ S , ∀ a ∈ Σ, ∀ u ∈ Σ∗ )
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(430 – 479 de 1593)
Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e DFA M = hΣ, S , s0 , δ, Fi


linguagens

Autômatos M aceita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) ∈ F .


finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(431 – 479 de 1593)
Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e DFA M = hΣ, S , s0 , δ, Fi


linguagens

Autômatos M aceita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) ∈ F .


finitos
Autômatos finitos
Se w = w1 w2 . . . wn , então existem r0 , r1 , . . . , rn ∈ S , tais que:
r0 = s0 ;
determinísticos
1
Operações com DFA’s
Autômatos finitos não
determinísticos
2 δ(ri , wi+1 ) = ri+1 , para i = 0, . . . , n − 1; e
Equivalência entre
DFA’s e NFA’s
3 rn ∈ F .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(432 – 479 de 1593)
Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e DFA M = hΣ, S , s0 , δ, Fi


linguagens

Autômatos M aceita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) ∈ F .


finitos
Autômatos finitos
Se w = w1 w2 . . . wn , então existem r0 , r1 , . . . , rn ∈ S , tais que:
r0 = s0 ;
determinísticos
1
Operações com DFA’s
Autômatos finitos não
determinísticos
2 δ(ri , wi+1 ) = ri+1 , para i = 0, . . . , n − 1; e
Equivalência entre
DFA’s e NFA’s
3 rn ∈ F .
Linguagens e M rejeita a cadeia w ∈ Σ∗ se e somente se δ(s0 , w) < F .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(433 – 479 de 1593)
Linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 4.8
Autômatos
finitos
A linguagem L(M) de um DFA M = hΣ, S , s0 , δ, Fi é o conjunto de cadeias em
Autômatos finitos
determinísticos Σ∗ aceitas por M .
Operações com DFA’s
Autômatos finitos não
determinísticos

Dado o DFA M = hΣ, S , s0 , δ, Fi, então L(M) = {w | δ(s0 , w) ∈ F}.


Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(434 – 479 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 4.9
Alfabetos e
linguagens
O diagrama de estados de um DFA M = hΣ, S , s0 , δ, Fi é um grafo G,
Autômatos
orientado e rotulado, definido pelas condições:
finitos
Autômatos finitos
1 os vértices de G são os elementos de S ;
determinísticos
Operações com DFA’s
2 os rótulos dos arcos de G são os elementos de Σ,
Autômatos finitos não
determinísticos
3 s0 é o vértice inicial;
Equivalência entre
DFA’s e NFA’s
4 F é o conjunto de vértices finais;
Linguagens e
5 existe um arco, rotulado de a, do vértice si ao s j se δ(si , a) = s j ;
gramáticas 6 para cada vértice si e símbolo a ∈ Σ, existe exatamente um arco rotulado a
regulares
saindo de si .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(435 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(436 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s

Linguagens e a
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(437 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s

Linguagens e a
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(438 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s

Linguagens e a
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(439 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s

Linguagens e a
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(440 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.10


linguagens

Autômatos
L(M) = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}.
finitos
Autômatos finitos a a, b
determinísticos
Operações com DFA’s
b
Autômatos finitos não
b b
determinísticos
Equivalência entre
M0 : s0 s1 s2
DFA’s e NFA’s

Linguagens e a
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(441 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(442 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(443 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(444 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(445 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(446 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(447 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(448 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(449 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(450 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.11
Fundamentos M1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
matemáticos

Alfabetos e δ a b
linguagens
s0 s0 s1
Autômatos s1 s0 s2
finitos
Autômatos finitos s2 s2 s2
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
L(M1 ) = (a ∪ ba)∗ bb(a ∪ b)∗
Equivalência entre
DFA’s e NFA’s
a b a, b
Linguagens e
b
gramáticas
regulares
M1 : s0 s1 s2
Linguagens
livres de
a
contexto
[s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε] 7−→[s2 ]
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(451 – 479 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(452 – 479 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
determinísticos
Equivalência entre
DFA’s e NFA’s
Base: |w| = 0 ⇒ δ(s0 , ε) = s0 .
Linguagens e Hipótese: Resultado válido para todas as cadeias de comprimento máximo n.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(453 – 479 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
Passo: Seja w = ua tal que |w| = n + 1.
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
1 Por H.I., existe um único caminho pu que processa u e δ(s0 , u) = su .
gramáticas
regulares
2 O caminho pw segue o arco rotulado a saindo de su .
Linguagens 3 pw é único, pois pu é único e somente uma aresta rotulada a sai de su .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(454 – 479 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
Teorema 4.12
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA e w ∈ Σ∗ , então w determina um único
caminho pw no diagrama de estados de M e δ(s0 , w) = sw .
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Demonstração.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da cadeia w.
Passo: Seja w = ua tal que |w| = n + 1.
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
4 O estado final de pw é determinado pela transição δ(su , a).
gramáticas
regulares
5 Por definição, δ(s0 , w) = δ(δ(s0 , u), a).
Linguagens 6 Como δ(s0 , u) = su , então sw = δ(su , a) = δ(δ(s0 , u), a) = δ(s0 , w).
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(455 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(456 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos L(M2 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(457 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.13
Alfabetos e
linguagens L(M2 ) = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos L(M2 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos finitos
determinísticos
b a, b
Operações com DFA’s
Autômatos finitos não
a
determinísticos
a
Equivalência entre
DFA’s e NFA’s M2 : s0 s1 s2
Linguagens e
gramáticas
regulares
b
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(458 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.14


Fundamentos
matemáticos L(M3 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Alfabetos e
linguagens
L(M3 ) = L(M1 ) ∪ L(M2 ).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(459 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.14


Fundamentos
matemáticos L(M3 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Alfabetos e
linguagens
L(M3 ) = L(M1 ) ∪ L(M2 ).
Autômatos
finitos
a
Autômatos finitos b
determinísticos
a
Operações com DFA’s
Autômatos finitos não
a s1 s2 s3
determinísticos
Equivalência entre a
DFA’s e NFA’s

Linguagens e M3 : s0 a b
gramáticas a, b
regulares
b
Linguagens
livres de
b s4 s5
contexto b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(460 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.15
Alfabetos e L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(461 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.15
Alfabetos e L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
linguagens

Autômatos b
finitos
Autômatos finitos
M4 : [aP , bP ] [aP , bI ]
determinísticos
Operações com DFA’s b
Autômatos finitos não
determinísticos
Equivalência entre
a a a a
DFA’s e NFA’s
b
Linguagens e
gramáticas
regulares
[aI , bP ] [aI , bI ]
Linguagens b
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(462 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.16
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(463 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.16
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos b
Autômatos finitos
determinísticos
Operações com DFA’s
M5 : [aP , bP ] [aP , bI ]
Autômatos finitos não
determinísticos
b
Equivalência entre
DFA’s e NFA’s a a a a
Linguagens e
gramáticas b
[aI , bP ] [aI , bI ]
regulares

Linguagens
livres de b
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(464 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.17
L(M6 ) = {w ∈ {0, 1, 2, 3}∗ | a soma dos dígitos de w é divisível por 4}.
Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(465 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.17
L(M6 ) = {w ∈ {0, 1, 2, 3}∗ | a soma dos dígitos de w é divisível por 4}.
Introdução

Fundamentos
matemáticos 12302 ∈ L(M6 ).
Alfabetos e 0130 ∈ L(M6 ).
linguagens
0111 < L(M6 ).
Autômatos
finitos
Autômatos finitos
0 0
determinísticos
Operações com DFA’s
1
Autômatos finitos não
determinísticos M6 : 0 mod 4 3 1 mod 4
Equivalência entre
DFA’s e NFA’s
3
Linguagens e
2 2 3 1 2 2
gramáticas
regulares 1
Linguagens
livres de 2 mod 4 1 3 mod 4
contexto
3
Autômatos
com pilha e 0 0
GLC’s

Máquinas de
Turing
(466 – 479 de 1593)
Determinismo Incompleto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 4.18
Autômatos
finitos Função de transição é uma função parcial de S × Σ em S .
Autômatos finitos
determinísticos
Operações com DFA’s
Processamento para assim que é possível determinar que uma dada cadeia
Autômatos finitos não
determinísticos
não é aceitável.
Equivalência entre
DFA’s e NFA’s
Para antes de processar toda a cadeia e a rejeita.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(467 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 4.19


matemáticos

Alfabetos e
L(M7 ) = (ab)∗ c.
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(468 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 4.19


matemáticos

Alfabetos e
L(M7 ) = (ab)∗ c.
linguagens
a
Autômatos
finitos
Autômatos finitos
M7 s0 s1
determinísticos
Operações com DFA’s b
Autômatos finitos não
determinísticos
Equivalência entre c
DFA’s e NFA’s

Linguagens e
gramáticas
regulares s2
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(469 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.20


Fundamentos L(M8 ) = (ab)∗ c.
matemáticos

Alfabetos e Estado s3 garante o processamento de toda a cadeia de entrada.


linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(470 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.20


Fundamentos L(M8 ) = (ab)∗ c.
matemáticos

Alfabetos e Estado s3 garante o processamento de toda a cadeia de entrada.


linguagens

Autômatos
a
finitos
Autômatos finitos
M8 : s0 s1
determinísticos
Operações com DFA’s
Autômatos finitos não
b
determinísticos
Equivalência entre c a, c
DFA’s e NFA’s
b
Linguagens e
gramáticas
regulares s2 s3
Linguagens a, b, c a, b, c
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(471 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.21
Fundamentos
matemáticos
L(M9 ) = {ai bi | 1 ≤ i ≤ n}, para um n fixo.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(472 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.21
Fundamentos
matemáticos
L(M9 ) = {ai bi | 1 ≤ i ≤ n}, para um n fixo.
Alfabetos e
linguagens Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
Autômatos número de b’s.
finitos
Autômatos finitos
determinísticos a a a a
Operações com DFA’s M9 : a0 a1 a2 an−1 an
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
b b b b
gramáticas
regulares

Linguagens
livres de
b0 b1 bn−2 bn−1
contexto
b b b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(473 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.22
Alfabetos e
linguagens L(M10 ) = {w ∈ {a, b}∗ | w contém abba}.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(474 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.22
Alfabetos e
linguagens L(M10 ) = {w ∈ {a, b}∗ | w contém abba}.
Autômatos
finitos b a a, b
Autômatos finitos b
determinísticos
Operações com DFA’s a b a
Autômatos finitos não M10 : s0 s1 s2 s3 s4
determinísticos
Equivalência entre
DFA’s e NFA’s a
Linguagens e
gramáticas b
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(475 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.23
Alfabetos e
linguagens L(M11 ) = (0 ∪ 1+ 00)∗ 1+ 01(0 ∪ 1)∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(476 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 4.23
Alfabetos e
linguagens L(M11 ) = (0 ∪ 1+ 00)∗ 1+ 01(0 ∪ 1)∗ .
Autômatos
finitos
Autômatos finitos
0 1 0, 1
determinísticos
Operações com DFA’s
1 0 1
Autômatos finitos não
determinísticos M11 : s0 s1 s2 s3
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas 0
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(477 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.24


Fundamentos
matemáticos L(M12 ) = (0 ∪ 1)∗ 11.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(478 – 479 de 1593)
Exemplos de DFA’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.24


Fundamentos
matemáticos L(M12 ) = (0 ∪ 1)∗ 11.
Alfabetos e
linguagens
1 s1 1
Autômatos
finitos
Autômatos finitos
determinísticos 1
Operações com DFA’s
Autômatos finitos não
determinísticos
M12 : s0 1 0 s3
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares 0 s2 0
Linguagens
livres de
contexto 0
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(479 – 479 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos finitos


finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
Operações com DFA’s
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(480 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução
Teorema 4.25
Fundamentos
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA, então M 0 = hΣ, S , s0 , δ, S − Fi é um DFA tal
Alfabetos e
linguagens que L(M 0 ) = Σ∗ − L(M).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(481 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução
Teorema 4.25
Fundamentos
matemáticos
Se M = hΣ, S , s0 , δ, Fi é um DFA, então M 0 = hΣ, S , s0 , δ, S − Fi é um DFA tal
Alfabetos e
linguagens que L(M 0 ) = Σ∗ − L(M).
Autômatos
finitos
Autômatos finitos Demonstração.
determinísticos

Seja w ∈ Σ∗ e δ a função de transição estendida construída a partir de δ.


Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Para cada w ∈ L(M), δ(s0 , w) ∈ F .
Linguagens e
gramáticas
Portanto, w < L(M 0 ).
regulares
Se w < L(M), então δ(s0 , w) ∈ S − F e w ∈ L(M 0 ).
Linguagens
livres de
contexto 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(482 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.26


linguagens
DFA D2 que reconhece L2 = {w ∈ {a, b}∗ | w contém a subcadeia aa}.
Autômatos
finitos
Autômatos finitos b a, b
determinísticos a
Operações com DFA’s
Autômatos finitos não a
determinísticos
Equivalência entre
D2 : q0 q1 q2
DFA’s e NFA’s

Linguagens e b
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(483 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.26


linguagens
DFA D3 que reconhece L3 = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Autômatos
finitos
Autômatos finitos b a, b
determinísticos a
Operações com DFA’s
Autômatos finitos não a
determinísticos
Equivalência entre
D3 : q0 q1 q2
DFA’s e NFA’s

Linguagens e b
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(484 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.27
matemáticos
L(M4 ) = {w ∈ {a, b}+ | w contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens
b
[aP , bP ] [aP , bI ]
Autômatos
finitos M4 :
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
a a a a
Equivalência entre
DFA’s e NFA’s b
Linguagens e
gramáticas
[aI , bP ] [aI , bI ]
regulares
b
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(485 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.27
matemáticos
L(M5 ) = {w ∈ {a, b}+ | w não contém nr. par de a0 s e nr. ímpar de b’s}.
Alfabetos e
linguagens L(M5 ) = {a, b}∗ − L(M4 ).
Autômatos
finitos b
Autômatos finitos
determinísticos
Operações com DFA’s
M5 : [aP , bP ] [aP , bI ]
Autômatos finitos não
determinísticos
b
Equivalência entre
DFA’s e NFA’s a a a a
Linguagens e
gramáticas b
[aI , bP ] [aI , bI ]
regulares

Linguagens
livres de b
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(486 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução
Exemplo 4.28
Fundamentos
matemáticos L(M7 ) = (ab)∗ c.
Alfabetos e
linguagens a
Autômatos M7 s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares
s2
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(487 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução
Exemplo 4.28
Fundamentos
matemáticos L(M7 ) = (ab)∗ c.
Alfabetos e
linguagens a
Autômatos M8 : s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c a, c
Equivalência entre
b
DFA’s e NFA’s

Linguagens e
gramáticas s2 s3
regulares a, b, c a, b, c
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(488 – 557 de 1593)
Complemento de um DFA
LFA 2018/2

H. Longo

Introdução
Exemplo 4.28
Fundamentos
matemáticos L = Σ∗ − L(M7 ).
Alfabetos e
linguagens a
Autômatos D8 : s0 s1
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
Autômatos finitos não
determinísticos
c a, c
Equivalência entre
b
DFA’s e NFA’s

Linguagens e
gramáticas s2 s3
regulares a, b, c a, b, c
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(489 – 557 de 1593)
Operações com autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Produto ⊗ de autômatos
Alfabetos e
linguagens Sejam os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i e D2 = hΣ2 , Q, q0 , δ2 , F2 i.
Autômatos O produto de D1 e D2 é o autômato D1 ⊗ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
finitos
Autômatos finitos S .Q = {si .q j | (si , q j ) ∈ S × Q},
F1 .F2 = {si .q j | (si , q j ) ∈ F1 × F2 },
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
Equivalência entre
DFA’s e NFA’s 
Linguagens e δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;

δ(si .q j , a) = 

gramáticas
regulares

∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(490 – 557 de 1593)
Produto de autômatos
LFA 2018/2

H. Longo

Introdução Lema 4.29


Fundamentos Dados os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i, D2 = hΣ2 , Q, q0 , δ2 , F2 i e
matemáticos

Alfabetos e
D1 ⊗ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊗ D2 ) = L(D1 ) ∩ L(D2 ).
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(491 – 557 de 1593)
Produto de autômatos
LFA 2018/2

H. Longo

Introdução Lema 4.29


Fundamentos Dados os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i, D2 = hΣ2 , Q, q0 , δ2 , F2 i e
matemáticos

Alfabetos e
D1 ⊗ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊗ D2 ) = L(D1 ) ∩ L(D2 ).
linguagens

Autômatos
finitos
Demonstração.
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos w ∈ L(D1 ⊗ D2 ) se e somente se δ(s0 .q0 , w) ∈ F1 .F2 ,
Equivalência entre
DFA’s e NFA’s
se e somente se δ1 (s0 , w).δ2 (q0 , w) ∈ F1 .F2 ,
Linguagens e
gramáticas
regulares
se e somente se δ1 (s0 , w) ∈ F1 e δ2 (q0 , w) ∈ F2 ,
Linguagens se e somente se w ∈ L(D1 ) e w ∈ L(D2 ).
livres de
contexto

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing
(492 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 4.30
Fundamentos
matemáticos DFA D1 que reconhece L1 = {w ∈ {0, 1, 2}∗ | w contém exatamente dois 0’s}:
Alfabetos e
linguagens 1, 2 1, 2 1, 2
Autômatos
finitos
0 0
Autômatos finitos
determinísticos D1 : s0 s1 s2
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(493 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 4.30
Fundamentos
matemáticos DFA D2 que reconhece L2 = {w ∈ {0, 1}∗ | w possui comprimento par}:
Alfabetos e
linguagens 0, 1
Autômatos
finitos D2 : q0 q1
Autômatos finitos
determinísticos
Operações com DFA’s 0, 1
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(494 – 557 de 1593)
Produto ⊗ de autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 4.30
Fundamentos
matemáticos L3 = {w ∈ {0, 1}∗ | w contém exatamente dois 0’s e possui comprimento par}.
Alfabetos e
linguagens L3 = D1 ⊗ D2 = L1 ∩ L2 .
Autômatos
finitos
DFA D3 = D1 ⊗ D2 que reconhece L3 :
Autômatos finitos

0 0
s0 .q0 s1 .q1 s2 .q0
determinísticos
Operações com DFA’s
Autômatos finitos não
D1 ⊗ D2 :
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e 1 1 1 1 1 1
gramáticas
regulares
0 0
Linguagens
livres de
s0 .q1 s1 .q0 s2 .q1
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(495 – 557 de 1593)
Operações com autômatos
LFA 2018/2

H. Longo

Introdução Produto ⊕ de autômatos


Fundamentos Sejam os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i e D2 = hΣ2 , Q, q0 , δ2 , F2 i.
matemáticos

Alfabetos e
D1 ⊕ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
linguagens
S .Q = {si .q j | (si , q j ) ∈ S × Q},
Autômatos
finitos
F1 .F2 = {si .q j | (si , q j ) ∈ S × F2 ou (si , q j ) ∈ F1 × Q},
Autômatos finitos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
determinísticos
Operações com DFA’s

δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;
Autômatos finitos não 
determinísticos
δ(si .q j , a) = 

Equivalência entre
DFA’s e NFA’s 
∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(496 – 557 de 1593)
Operações com autômatos
LFA 2018/2

H. Longo

Introdução Produto ⊕ de autômatos


Fundamentos Sejam os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i e D2 = hΣ2 , Q, q0 , δ2 , F2 i.
matemáticos

Alfabetos e
D1 ⊕ D2 = hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i:
linguagens
S .Q = {si .q j | (si , q j ) ∈ S × Q},
Autômatos
finitos
F1 .F2 = {si .q j | (si , q j ) ∈ S × F2 ou (si , q j ) ∈ F1 × Q},
Autômatos finitos Para si ∈ S , q j ∈ Q e a ∈ Σ1 ∩ Σ2 , define-se
determinísticos
Operações com DFA’s

δ1 (si , a).δ2 (q j , a), se δ1 (si , a) e δ2 (q j , a) estão definidos;
Autômatos finitos não 
determinísticos
δ(si .q j , a) = 

Equivalência entre
DFA’s e NFA’s 
∅, se δ1 (si , a) ou δ2 (q j , a) não está definido.
Linguagens e
gramáticas
regulares
Lema 4.31
Linguagens
livres de
contexto
Dados os DFA’s D1 = hΣ1 , S , s0 , δ1 , F1 i, D2 = hΣ2 , Q, q0 , δ2 , F2 i e
Autômatos D1 ⊕ D2 := hΣ1 ∩ Σ2 , S .Q, δ, s0 .q0 , F1 .F2 i, então L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
com pilha e
GLC’s

Máquinas de
Turing
(497 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D1 que reconhece
Introdução
L1 = {w ∈ {a, b}∗ | w possui pelo menos dois b’s consecutivos}:
Fundamentos
matemáticos
a a, b
Alfabetos e b
linguagens
b
Autômatos D1 : s0 s1 s2
finitos
Autômatos finitos
determinísticos a
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(498 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D2 que reconhece
Introdução
L2 = {w ∈ {a, b}∗ | w contém a subcadeia aa}.
Fundamentos
matemáticos
b a, b
Alfabetos e a
linguagens
a
Autômatos D2 : q0 q1 q2
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(499 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
DFA D3 que reconhece
Introdução
L3 = {w ∈ {a, b}∗ | w não contém a subcadeia aa}.
Fundamentos
matemáticos
b a, b
Alfabetos e a
linguagens
a
Autômatos D3 : q0 q1 q2
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(500 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (501 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (502 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (503 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (504 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (505 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (506 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ⊕ D2 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos

Alfabetos e
a
linguagens
a a
Autômatos D4 = D1 ⊕ D3 : s0 .q0 s0 .q1 s0 .q2
finitos
Autômatos finitos
determinísticos
a
Operações com DFA’s a
Autômatos finitos não
determinísticos
b a b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
s1 .q0 s1 .q1 s1 .q2
regulares

Linguagens
livres de b
contexto b b
b a, b b
Autômatos a a, b
com pilha e
a
GLC’s
s2 .q0 s2 .q1 s2 .q2
Máquinas de
Turing
b b (507 – 557 de 1593)
Produto ⊕ de autômatos
LFA 2018/2
Exemplo 4.32
H. Longo
L(D4 ) = {w ∈ {a, b}∗ | w contém bb ou não contém aa}.
Introdução
L(D4 ) = L(D1 ) ∪ L(D2 ).
Fundamentos
matemáticos
M3 é outra versão minimizada do autômato D4 :
Alfabetos e
linguagens
a
Autômatos
finitos b
Autômatos finitos a
determinísticos
Operações com DFA’s a s1 s2 s3
Autômatos finitos não
determinísticos
Equivalência entre
a
DFA’s e NFA’s

Linguagens e M3 : s0 a b
gramáticas
regulares
a, b
b
Linguagens
livres de b s4 s5
contexto

Autômatos
b
com pilha e
GLC’s

Máquinas de
Turing
(508 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 4.33
Alfabetos e
linguagens Dado um DFA M = hΣ, S , s0 , δ, Fi, é possível construir um DFA
Autômatos M 0 = hΣ, S 0 , s00 , δ0 , F 0 i, a partir de M e da relação de não equivalência de
finitos
Autômatos finitos
estados (definida no teorema 4.35), onde:
determinísticos
Operações com DFA’s S 0 é o conjunto das classes de equivalência constituídas de estados
Autômatos finitos não
determinísticos equivalentes de M ;
[s0 ] ∈ S 0 se estado inicial s0 ∈ S ;
Equivalência entre
DFA’s e NFA’s

Linguagens e [si ] ∈ F 0 se si ∈ F ;
δ0 ([si ], a) = [δ(si , a)].
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(509 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(510 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s 0
Autômatos finitos não
determinísticos
L(M 0 ) = {u | δ ([s0 ], u) = [δ(si , ε)] com si ∈ F}.
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(511 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Observações
Autômatos
finitos
Se M 0 tem estados inalcançáveis a partir de [s0 ], estes estados e todos os
Autômatos finitos
determinísticos arcos associados são eliminados.
Operações com DFA’s 0
Autômatos finitos não
determinísticos
L(M 0 ) = {u | δ ([s0 ], u) = [δ(si , ε)] com si ∈ F}.
Equivalência entre
DFA’s e NFA’s L(M) = L(M 0 ).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(512 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Definição 4.34 (Estados equivalentes)


finitos
Autômatos finitos
determinísticos
Seja o DFA M = hΣ, S , s0 , δ, Fi. Dois estados si , s j ∈ S são equivalentes se
Operações com DFA’s
Autômatos finitos não
δ(si , u) ∈ F se, e somente se, δ(s j , u) ∈ F , para todo u ∈ Σ∗ .
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(513 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo Estados equivalentes


Introdução a, b
Fundamentos sm
matemáticos b
Alfabetos e
linguagens
si
a, b
Autômatos a
finitos sk
Autômatos finitos a
determinísticos
Operações com DFA’s
Autômatos finitos não
sj
determinísticos a, b
Equivalência entre b
DFA’s e NFA’s sn
Linguagens e
gramáticas
regulares

Linguagens Estados si e s j são equivalentes:


livres de
contexto processamento de qualquer cadeia começando com b, a partir de si ou s j ,
Autômatos termina em um estado final; e
com pilha e
GLC’s
processamento de qualquer cadeia começando com a, a partir de si ou s j ,
Máquinas de
termina em um estado não final.
Turing
(514 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo Estados equivalentes


Introdução a, b
Fundamentos sm
matemáticos b
Alfabetos e
linguagens
si
a, b
Autômatos a
finitos sk
Autômatos finitos a
determinísticos
Operações com DFA’s
Autômatos finitos não
sj
determinísticos a, b
Equivalência entre b
DFA’s e NFA’s sn
Linguagens e
gramáticas
regulares

Linguagens Estados sm e sn são equivalentes.


livres de
contexto Qualquer processamento nestes estados termina em um estado final.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(515 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo Estados equivalentes


Introdução a, b
Fundamentos sm
matemáticos b
Alfabetos e
linguagens
si
a, b a, b
Autômatos a
finitos
a
sk {sm , sn }
Autômatos finitos b
determinísticos
Operações com DFA’s
Autômatos finitos não
sj {si , s j }
determinísticos a, b a, b
Equivalência entre b a
DFA’s e NFA’s sn sk
Linguagens e
gramáticas
regulares

Linguagens Estados sm e sn são equivalentes.


livres de
contexto Qualquer processamento nestes estados termina em um estado final.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(516 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(517 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
D[i, j] = 1, se estados si e s j são não equivalentes.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(518 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Identificação de estados equivalentes
Autômatos
finitos Para cada par de estados si e s j (i < j), calcular os valores D[i, j] e S [i, j].
Autômatos finitos
determinísticos
Operações com DFA’s
D[i, j] = 1, se estados si e s j são não equivalentes.
Autômatos finitos não
determinísticos
[i, j] ∈ S [m, n], se a não equivalência de si e s j pode ser determinada a partir de
Equivalência entre
DFA’s e NFA’s
sm e sn .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(519 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(520 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(521 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos 2 Se sm e sn ainda não estão marcados como não equivalentes, então uma
Equivalência entre
DFA’s e NFA’s posterior determinação de que sm e sn são não equivalentes fornece a resposta
Linguagens e para si e s j .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(522 – 557 de 1593)
Minimização de DFA’s – I
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Identificação de estados equivalentes
Alfabetos e a a
linguagens si sm sj sn
Autômatos
finitos
Autômatos finitos Quando examinados os estados si e s j :
determinísticos
Operações com DFA’s 1 Se sm e sn já estão marcados como não equivalentes, então D[i, j] recebe 1.
Autômatos finitos não
determinísticos 2 Se sm e sn ainda não estão marcados como não equivalentes, então uma
Equivalência entre
DFA’s e NFA’s posterior determinação de que sm e sn são não equivalentes fornece a resposta
Linguagens e para si e s j .
gramáticas
regulares
[i, j] ∈ S [m, n] indica que a não equivalência de sm e sn é suficiente para determinar
a não equivalência de si e s j .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(523 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo

Algoritmo 1: EstadosEquivalentes( M )
Introdução
// Determina os estados equivalentes de um DFA M
Fundamentos
matemáticos Entrada: DFA M = hΣ, S , s0 , δ, Fi.
Alfabetos e Saída: Matrizes D e M .
linguagens
1 para todo si , s j ∈ S , i < j, faça
Autômatos
2 se ((si ∈ F e s j < F) ou (si < F e s j ∈ F)) então D[i, j] ← 1;
finitos
Autômatos finitos
3 senão D[i, j] ← 0;
determinísticos
4 S [i, j] ← ∅;
Operações com DFA’s
Autômatos finitos não
determinísticos 5 para todo ((a ∈ Σ) e (D[i, j] = 0, i < j)) faça
Equivalência entre 6 sm ← δ(si , a);
DFA’s e NFA’s
7 sn ← δ(s j , a);
Linguagens e 8 se ((D[m, n] = 1) ou (D[n, m] = 1)) então DIST(i, j);
gramáticas
regulares 9 senão
10 se ((m < n) e ([i, j] , [m, n])) então S [m, n] ← S [m, n] ∪ {[i, j]};
Linguagens
livres de 11 senão
contexto 12 se ((m > n) e ([i, j] , [n, m])) então S [n, m] ← S [n, m] ∪ {[i, j]};
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(524 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Algoritmo 2: DIST(i, j)
Autômatos
finitos Entrada: Índices i e j.
Autômatos finitos
determinísticos
1 D[i, j] ← 1;
Operações com DFA’s
Autômatos finitos não 2 para todo [k, `] ∈ S [i, j] faça
determinísticos
3 DIST(k, `);
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(525 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(526 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
1 D[i, j] = 1 ⇒ si e s j são não equivalentes.
Operações com DFA’s
Autômatos finitos não
Se D[i, j] recebe 1 no passo 2, então si e s j são não equivalentes.
determinísticos
Equivalência entre
Se D[i, j] recebe 1 no passo 8 somente se δ(si , a) = sm e δ(s j , a) = sn , para
DFA’s e NFA’s
algum símbolo a, quando o algoritmo já determinou que sm e sn são não
Linguagens e equivalentes.
gramáticas
regulares Se u é a cadeia que mostra a não equivalência de sm e sn , então au mostra a não
Linguagens equivalência de si e s j .
livres de
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(527 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
Indução no comprimento da menor cadeia que mostra a não equivalência de um
determinísticos
Equivalência entre
par de estados.
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(528 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Base: Pares de estados que são não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento 0.
Linguagens e
gramáticas
δ(si , ε) = si e δ(s j , ε) = s j .
regulares
Apenas um entre si e s j é estado final e D[i, j] recebe 1 no passo 2.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(529 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Hipótese: Suponha que todo par de estados não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento k ou menor é marcado pelo algoritmo.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(530 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Sejam si e s j estados para os quais a menor cadeia u que os tornam não
Equivalência entre
DFA’s e NFA’s equivalentes é de comprimento k + 1.
Linguagens e
gramáticas
u = av.
regulares
δ(si , u) = δ(si , av) = δ(sm , v) = s p .
Linguagens
livres de
δ(s j , u) = δ(s j , av) = δ(sn , v) = sq .
contexto
Apenas um entre s p e sq é estado final, já que o processamento
Autômatos
com pilha e precedente torna si e s j não equivalentes.
GLC’s 
Máquinas de
Turing
(531 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Claramente, sm e sn são não equivalentes por uma cadeia de
Equivalência entre
DFA’s e NFA’s comprimento k.
Linguagens e Por H.I., D[m, n] = 1.
gramáticas
regulares Se D[m, n] é marcado antes os estados si e s j serem examinados no
Linguagens
livres de
passo 5, então D[i, j] recebe 1 por uma chamada ao procedimento
contexto DIS T .
Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(532 – 557 de 1593)
Estados equivalentes
LFA 2018/2

H. Longo
Teorema 4.35
Introdução

Fundamentos
Os estados si e s j são não equivalentes se, e somente se, D[i, j] = 1 ao
matemáticos
término do Algoritmo 1.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos
Autômatos finitos
determinísticos
2 si e s j não equivalentes ⇒ D[i, j] = 1.
Operações com DFA’s
Autômatos finitos não
determinísticos Passo: Se si e s j são examinados no passo 8 e D[i, j] , 1, então [i, j] é
Equivalência entre
DFA’s e NFA’s inserido no conjunto S [m, n].
Linguagens e Por H.I., D[m, n] eventualmente recebe 1 por uma chamada a
gramáticas
regulares DIS T (m, n).
Linguagens
livres de
D[i, j] também recebe 1 pela chamada recursiva a DIS T , já que
contexto [i, j] ∈ S [m, n].
Autômatos
com pilha e
GLC’s 
Máquinas de
Turing
(533 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo Exemplo 4.36


Introdução L(M1 ) = (a ∪ b)(a ∪ b∗ ):
Fundamentos
matemáticos b
Alfabetos e
linguagens s3
Autômatos
finitos b
Autômatos finitos a
determinísticos
Operações com DFA’s
s1 s2
a a a, b
Autômatos finitos não a, b
determinísticos
Equivalência entre s0 s7
DFA’s e NFA’s

b a, b
Linguagens e a
gramáticas s4 s5
regulares a
Linguagens b
livres de
contexto s6
Autômatos
com pilha e
GLC’s b
Máquinas de
Turing
(534 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo Exemplo 4.36


Introdução Índices marcados com 1 no passo 2:
Fundamentos
matemáticos
D[0, 1], D[0, 2], D[0, 3], D[0, 4], D[0, 5], D[0, 6], D[1, 7], D[2, 7], D[3, 7], D[4, 7],
Alfabetos e
D[5, 7] e D[6, 7].
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(535 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo Exemplo 4.36


Introdução Cada índice não marcado recebe 1 no passo 8:
Fundamentos
matemáticos
Índices Ação Motivo
Alfabetos e 0,7 D[0, 7] = 1 não equivalente por a
linguagens
1,2 D[1, 2] = 1 não equivalente por a
Autômatos 1,3 D[1, 3] = 1 não equivalente por a
finitos 1,4 S [2, 5] = {[1, 4]}
S [3, 6] = {[1, 4]}
Autômatos finitos
determinísticos
Operações com DFA’s 1,5 D[1, 5] = 1 não equivalente por a
D[1, 6] = 1
Autômatos finitos não
determinísticos 1,6 não equivalente por a
Equivalência entre
DFA’s e NFA’s
2,3 D[2, 3] = 1 não equivalente por b
2,4 D[2, 4] = 1 não equivalente por a
Linguagens e
gramáticas
2,5 sem ação, pois δ(s2 , x) = δ(s5 , x) ∀ x ∈ Σ
regulares 2,6 D[2, 6] = 1 não equivalente por b
Linguagens
3,4 D[3, 4] = 1 não equivalente por a
livres de 3,5 D[3, 5] = 1 não equivalente por b
contexto 3,6
Autômatos 4,5 D[4, 5] = 1 não equivalente por a
com pilha e 4,6 D[4, 6] = 1 não equivalente por a
GLC’s
5,6 D[5, 6] = 1 não equivalente por b
Máquinas de
Turing
(536 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo Exemplo 4.36


Introdução Após todos os pares de índices serem examinados, apenas os pares de
Fundamentos estados [1, 4], [2, 5] e [3, 6] são equivalentes:
matemáticos

Alfabetos e
linguagens {s2 , s5 }
a a, b a, b
Autômatos a, b
finitos s0 {s1 , s4 } s7
Autômatos finitos
determinísticos b a
Operações com DFA’s {s3 , s6 }
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
b

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(537 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.37
Fundamentos
matemáticos
L(M1 ) = a(a ∪ b)∗ ∪ ba(a ∪ b)∗ ∪ bba(a ∪ b)∗
Alfabetos e
linguagens b b b
s0 s1 s2 s3
Autômatos
finitos
a, b
Autômatos finitos
determinísticos
a a a
Operações com DFA’s a, b a, b a, b
Autômatos finitos não
determinísticos s4 s5 s6
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(538 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.37
Fundamentos
matemáticos
Índices marcados com 1 no passo 2:
Alfabetos e
linguagens D[0, 4], D[0, 5], D[0, 6], D[1, 4], D[1, 5], D[1, 6], D[2, 4], D[2, 5], D[2, 6], D[3, 4],
Autômatos D[3, 5] e D[3, 6].
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(539 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.37
Fundamentos
matemáticos
Cada índice não marcado recebe 1 no passo 8:
Alfabetos e
linguagens
Índices Ação Motivo
Autômatos 0,1 S [4, 5] = {[0, 1]}
finitos S [1, 2] = {[0, 1]}
Autômatos finitos 0,2 S [4, 6] = {[0, 2]}
determinísticos S [1, 3] = {[0, 2]}
Operações com DFA’s 0,3 D[0, 3] = 1 não equivalente por a
Autômatos finitos não 1,2 S [5, 6] = {[1, 2]}
determinísticos
S [2, 3] = {[1, 2]}
Equivalência entre
DFA’s e NFA’s 1,3 D[1, 3] = 1 não equivalente por a
D[0, 2] = 1 chamada a DIS T (1, 3)
Linguagens e 2,3 D[2, 3] = 1 não equivalente por a
gramáticas D[1, 2] = 1 chamada a DIS T (1, 2)
regulares D[0, 1] = 1 chamada a DIS T (0, 1)
4,5
Linguagens 4,6
livres de 5,6
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(540 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.37
Fundamentos
matemáticos
Após todos os pares de índices serem examinados, apenas os pares de
Alfabetos e
linguagens estados [4, 5], [4, 6] e [5, 6] são equivalentes:
Autômatos b b b
finitos s0 s1 s2 s3
Autômatos finitos
determinísticos
Operações com DFA’s a a a a, b
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s {s4 , s5 , s6 }
Linguagens e
gramáticas a, b
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(541 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
L(M1 ) =???
Introdução
a
Fundamentos
matemáticos b
Alfabetos e
b a
linguagens
s1 s0 s5 s4 s7 s6
a b b a a
Autômatos
finitos
Autômatos finitos a
determinísticos
a b
Operações com DFA’s b b
Autômatos finitos não
determinísticos
Equivalência entre
s2 s3
DFA’s e NFA’s a
Linguagens e
b
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(542 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
1 Construir uma matriz triangular superior para pares de estados do autômato.
Introdução
Os pares de estados (si , s j ) e (s j , si ) são representados na mesma posição da
matriz (D[i, j] se i < j ou D[ j, i] se j < i).
Fundamentos
matemáticos

Alfabetos e Posições da matriz inicialmente são vazias.


linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(543 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
2 Marcar com um "1" toda posição [i, j], com i < j, onde si é um estado final e
Introdução s j não é final, ou vice-versa.
Fundamentos
matemáticos
s1 s2 s3 s4 s5 s6 s7
Alfabetos e s0 1
linguagens
s1 1
Autômatos
finitos
s2 1 1 1 1 1
Autômatos finitos s3
determinísticos
Operações com DFA’s s4
Autômatos finitos não
determinísticos s5
Equivalência entre
DFA’s e NFA’s
s6
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(544 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
3 Criar uma lista vazia de pares de estados para cada posição não marcada na
Introdução
matriz.
Fundamentos
matemáticos 4 Para cada posição [i, j] não marcada, verificar se a posição [δ(si , a), δ(s j , a)]
Alfabetos e está marcada para algum símbolo a ∈ Σ.
linguagens
Em caso positivo, marcar a posição [i, j].
Autômatos
finitos Em caso negativo, adicionar [i, j] às listas associadas às posições
Autômatos finitos
determinísticos [δ(si , a), δ(s j , a)], com a ∈ Σ.
Operações com DFA’s
Autômatos finitos não
determinísticos
[δ(s0 , a), δ(s1 , a)] = [s1 , s6 ] ⇒ não marcada; e
Equivalência entre
DFA’s e NFA’s
[δ(s0 , b), δ(s1 , b)] = [s5 , s2 ] ⇒ marcada.
Linguagens e Conclusão: marcar também [s0 , s1 ].
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(545 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
5 Quando a posição [i, j] for marcada, marcar também todas as posições na
Introdução lista de [i, j].
Fundamentos s1 s2 s3 s4 s5 s6 s7
matemáticos
s0 1 1 1 1 1 1
Alfabetos e
linguagens
s1 1 1 1 1 1
s2 1 1 1 1 1
Autômatos
finitos s3 1 1 1
Autômatos finitos
determinísticos
s4 1 1 1
Operações com DFA’s s5 1 1
Autômatos finitos não
determinísticos s6 1
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(546 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
6 Colapsar os pares de estados que não foram marcados.
Introdução

Fundamentos
7 Eliminar estados não alcançáveis.
matemáticos
a
Alfabetos e
linguagens
b
b a
Autômatos
finitos s1 s0 s5 s4 s7 s6
Autômatos finitos a b b a a
determinísticos
Operações com DFA’s
Autômatos finitos não
a
determinísticos
a b
Equivalência entre
b b
DFA’s e NFA’s

Linguagens e s2 s3
gramáticas a
regulares
b
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(547 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2
Exemplo 4.38
H. Longo
a b
Introdução

Fundamentos {s0 , s4 } a
{s1 , s7 } s2
matemáticos b
Alfabetos e
linguagens
a a
Autômatos b
finitos
Autômatos finitos
determinísticos b
Operações com DFA’s
b
s6 {s3 , s5 }
Autômatos finitos não
determinísticos
Equivalência entre a
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(548 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Dado um DFA M = hΣ, S , s0 , δ, Fi, é possível construir a partir de M um DFA
Alfabetos e
linguagens
M 0 = hΣ, S 0 , s00 , δ0 , F 0 i, com número mínimo de estados, que também
reconheça a linguagem L(M):
Autômatos
finitos 1 Particionar o conjunto S de estados em dois subconjuntos. Um conjunto com
Autômatos finitos
determinísticos todos os estados de aceitação e o outro com estados de não aceitação.
Operações com DFA’s
Autômatos finitos não
2 Iterativamente, particionar cada subconjunto da partição corrente: se dois
determinísticos
Equivalência entre estados de um conjunto forem não equivalentes, dividir esse subconjunto.
DFA’s e NFA’s
3 Mesclar todos os estados de um conjunto em um novo estado. O número de
Linguagens e
gramáticas estados no DFA minimizado é igual ao número de subconjuntos na última
regulares
partição do conjunto S .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(549 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2

H. Longo

Introdução Algoritmo 3: EstadosEquivalentes( M )


Fundamentos
matemáticos
// Determina os estados equivalentes de um DFA M

Alfabetos e
Entrada: DFA M = hΣ, S , s0 , δ, Fi.
linguagens Saída: Partição P de S .
Autômatos 1 P0 ← {F, S − F};
finitos
Autômatos finitos 2 k ← 1;
determinísticos
Operações com DFA’s
3 P1 ← ∅;
Autômatos finitos não
determinísticos 4 enquanto (Pk , Pk−1 ) faça
Equivalência entre 5 T ← ∅;
DFA’s e NFA’s
6 para todo p ∈ Pk faça
Linguagens e
7 T ← T ∪ Particione(p);
gramáticas
regulares
8 k ← k + 1;
Linguagens 9 Pk ← T ;
livres de
contexto
10 retorna Pk .
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(550 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2

H. Longo
Algoritmo 4: Particione(P)
Introdução
// Particiona o conjunto P em subconjuntos de estados equivalentes
Fundamentos
matemáticos Entrada: Subconjunto p de uma partição S .
Saída: Partionamento de p.
Alfabetos e
linguagens
1 para todo (a ∈ Σ) faça
Autômatos 2 se a particiona p em p1 e p2 então
finitos
Autômatos finitos
3 retorna p1 , p2
determinísticos
Operações com DFA’s
Autômatos finitos não 4 retorna p
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(551 – 557 de 1593)
Minimização de DFA’s – II
LFA 2018/2

H. Longo
Algoritmo 5: Particione(P)
Introdução
// Particiona o conjunto P em subconjuntos de estados equivalentes
Fundamentos
matemáticos Entrada: Subconjunto p de uma partição S .
Saída: Partionamento de p.
Alfabetos e
linguagens
1 para todo (a ∈ Σ) faça
Autômatos 2 se a particiona p em p1 e p2 então
finitos
Autômatos finitos
3 retorna p1 , p2
determinísticos
Operações com DFA’s
Autômatos finitos não 4 retorna p
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
Linha 2 do Algoritmo 4
regulares
Dados dois estados si , s j ∈ p (p ∈ P), um símbolo a ∈ Σ particiona p, se:
Linguagens
livres de 1 δ(si , a) = sm ,
contexto
2 δ(s j , a) = sn ,
sm ∈ pk , sn ∈ p` e k , `
Autômatos
3
com pilha e
GLC’s
( sm e sn pertencem a subconjuntos diferentes da partição P).
Máquinas de
Turing
(552 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.39
M = hΣ = {a, b}, S = {s0 , s1 , s2 , s3 , s4 , s5 }, s0 , δ, F = {s1 , s3 , s4 }i.
Introdução

Fundamentos L(M) =???


matemáticos

Alfabetos e b
linguagens a
a, b
Autômatos b a b
finitos M: s0 s1 s3 s5
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
a a
Equivalência entre b
DFA’s e NFA’s a
Linguagens e b
gramáticas s2 s4
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(553 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.39
L(M) = a∗ ba∗ !!!
Introdução

Fundamentos P0 = {p01 = F, p02 = S − F} = {p01 = {s1 , s3 , s4 }, p02 = {s0 , s2 , s5 }}.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(554 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.39
Para calcular P1 , deve-se verificar se os subconjuntos de P0 podem ser
Introdução

Fundamentos
particionados.
matemáticos p01 = {s1 , s3 , s4 }:
Alfabetos e
linguagens δ(s1 , a) = δ(s3 , a) = s3 e δ(s1 , b) = δ(s3 , b) = s5 ⇒ s1 e s3 são equivalentes.
Autômatos
δ(s1 , a) = δ(s4 , s) = s3 e δ(s1 , b) = δ(s4 , b) = s5 ⇒ s1 e s4 são equivalentes.
finitos Como os pares (s1 , s3 ) e (s1 , s4 ) são equivalentes, então (s3 , s4 ) também são
equivalentes. Logo, p01 não será particionado em P1 , ou seja, p11 = p01 .
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos p02 = {s0 , s2 , s5 }:
Equivalência entre
DFA’s e NFA’s
δ(s0 , a) = s2 e δ(s2 , a) = s0 ( s0 , s2 ∈ p02 ); δ(s0 , b) = s1 e δ(s2 , b) = s4
Linguagens e ( s1 , s4 ∈ p01 ) ⇒ s0 e s2 são equivalentes.
gramáticas
regulares δ(s0 , a) = s2 e δ(s5 , a) = s5 ( s2 , s5 ∈ p02 ); δ(s0 , b) = s1 e δ(s5 , b) = s5 ( s1 ∈ p01 e
Linguagens s5 ∈ p02 ) ⇒ s0 e s5 não são equivalentes.
livres de
contexto Como (s0 , s2 ) são equivalentes e (s0 , s5 ) não são equivalentes, então (s2 , s5 )
Autômatos também não são equivalentes. Logo, p02 será particionado em p12 = {s0 , s2 } e
com pilha e
GLC’s
p13 = {s5 }.
Máquinas de P1 = {p11 = {s1 , s3 , s4 }, p12 = {s0 , s2 }, p13 = {s5 }}.
Turing
(555 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.39
Para calcular P2 , deve-se verificar se os subconjuntos de P1 podem ser
Introdução

Fundamentos
particionados.
matemáticos p11 = {s1 , s3 , s4 }:
Alfabetos e
linguagens Como os pares (s1 , s3 ) e (s1 , s4 ) são equivalentes, então (s3 , s4 ) também são
Autômatos
equivalentes (argumentação idêntica à usada para o subconjunto p01 ). Logo, p11
finitos não será particionado em P1 , ou seja, p21 = p11 .
Autômatos finitos

p12 = {s0 , s2 }:
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
δ(s0 , a) = s2 e δ(s2 , a) = s0 ( s0 , s2 ∈ p12 ); δ(s0 , b) = s1 e δ(s2 , b) = s4
DFA’s e NFA’s
( s1 , s4 ∈ p11 ) ⇒ s0 e s2 são equivalentes.
Linguagens e Logo, p12 não será particionado em P2 , ou seja, p22 = p12 .
gramáticas
regulares
p13 = {s5 }:
Linguagens
livres de Como há apenas um estado nesse conjunto, ele não pode ser mais
contexto
particionado, ou seja, p23 = p13 .
Autômatos
com pilha e P2 = {p21 = {s1 , s3 , s4 }, p22 = {s0 , s2 }, p23 = {s5 }} = P1 .
GLC’s

Máquinas de
Turing
(556 – 557 de 1593)
Exemplos de Minimização de DFA’s
LFA 2018/2

H. Longo
Exemplo 4.39
Dado que P1 = P2 , esta é a partição final.
Introdução

Fundamentos A partição P2 significa que os estados s1 , s3 e s4 serão mesclados em apenas


matemáticos
um estado. Da mesma forma, s0 e s2 serão mesclados em um novo estado.
Alfabetos e
linguagens DFA M 0 minimizado e correspondente ao DFA M :
Autômatos
finitos
Autômatos finitos
a a a, b
determinísticos
Operações com DFA’s
b b
Autômatos finitos não
determinísticos M0 : {s0 , s2 } {s1 , s3 , s4 } s5
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(557 – 557 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos finitos


finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
Autômatos finitos não determinísticos
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(558 – 610 de 1593)
Autômato Finito Não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 4.40
Alfabetos e
linguagens Um Autômato Finito Não Determinístico (NFA – Nondeterministic Finite
Autômatos
finitos
Automaton) é uma quíntupla N = hΣ, S , s0 , δ, Fi, onde:
Autômatos finitos
determinísticos Σ : alfabeto de entrada;
Operações com DFA’s
Autômatos finitos não S , ∅ : conjunto finito de estados do modelo;
determinísticos
Equivalência entre
DFA’s e NFA’s
s0 ∈ S : estado inicial;
Linguagens e
δ : S × Σ → P(S ) : função de transição de estados;
gramáticas
regulares
F ⊆ S : conjunto de estados finais (ou de aceitação).
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(559 – 610 de 1593)
Autômato Finito Não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 4.41 (Transições em um NFA)


matemáticos

Alfabetos e
a sj
linguagens

Autômatos
finitos
Autômatos finitos
a
determinísticos
Operações com DFA’s
si sk
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
a sj a
Linguagens e si si s`
gramáticas
regulares
δ(si , a) = {s j , sk , s` }
Linguagens δ(si , a) = ∅ δ(si , a) = {s j }
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(560 – 610 de 1593)
Linguagem de um NFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 4.42
Autômatos
finitos
A linguagem L(N) de um NFA N = hΣ, S , s0 , δ, Fi é o conjunto de cadeias em
Autômatos finitos
determinísticos
Σ∗ aceitas por N .
Operações com DFA’s
Autômatos finitos não
determinísticos

Equivalência entre
DFA’s e NFA’s Dado o NFA N = hΣ, S , s0 , δ, Fi, então L(N) = {w | [s0 , w] 7−→[si , ε] com si ∈ F}.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(561 – 610 de 1593)
Diagrama de estados
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Definição 4.43
O diagrama de estados de um NFA N = hΣ, S , s0 , δ, Fi é um grafo G, orientado
linguagens

Autômatos
finitos e rotulado, definido pelas condições:
Autômatos finitos
determinísticos
1 os vértices de G são os elementos de S ;
Operações com DFA’s
Autômatos finitos não
2 os rótulos dos arcos de G são os elementos de Σ;
determinísticos
Equivalência entre
3 s0 é o vértice inicial;
DFA’s e NFA’s
4 F é o conjunto de vértices finais;
Linguagens e
gramáticas
5 existe um arco, rotulado de a, do vértice si ao s j se s j ∈ δ(si , a).
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(562 – 610 de 1593)
Processamento em um NFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Uma cadeia w é aceita por um NFA N = hΣ, S , s0 , δ, Fi, se w determina pelo
menos um caminho pw no diagrama de estados de N tal que δ(s0 , w) ∈ F .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(563 – 610 de 1593)
Processamento em um NFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Uma cadeia w é aceita por um NFA N = hΣ, S , s0 , δ, Fi, se w determina pelo
menos um caminho pw no diagrama de estados de N tal que δ(s0 , w) ∈ F .
Autômatos
finitos
Autômatos finitos
determinísticos Uma cadeia pertence à linguagem de um NFA se existe um processamento
Operações com DFA’s
Autômatos finitos não que a aceita.
determinísticos
Equivalência entre
DFA’s e NFA’s
A existência de outros processamentos que não a aceitam é irrelevante!
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(564 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(565 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(566 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(567 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(568 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(569 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(570 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(571 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(572 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(573 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(574 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(575 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(576 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(577 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(578 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(579 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb]
com pilha e
GLC’s

Máquinas de
Turing
(580 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb]
com pilha e
GLC’s

Máquinas de
Turing
(581 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb]
com pilha e
GLC’s

Máquinas de
Turing
(582 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb]
com pilha e
GLC’s

Máquinas de
Turing
(583 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b]
com pilha e
GLC’s

Máquinas de
Turing
(584 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε]
com pilha e
GLC’s

Máquinas de
Turing
(585 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.44
Fundamentos δ a b
matemáticos
s0 {s0 } {s0 , s1 }
Alfabetos e N1 = h{a, b}, {s0 , s1 , s2 }, s0 , δ, {s2 }i, onde:
linguagens s1 ∅ {s2 }
Autômatos
s2 ∅ ∅
finitos
Autômatos finitos
L(N1 ) = (a ∪ b)∗ bb
determinísticos
Operações com DFA’s
a, b
Autômatos finitos não
determinísticos
b b
Equivalência entre
DFA’s e NFA’s
N1 : s0 s1 s2
Linguagens e
gramáticas
regulares [s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s0 , b] 7−→[s0 , ε] 7−→[s0 ]
Linguagens
livres de [s0 , ababb] 7−→[s0 , babb] 7−→[s1 , abb]
contexto

Autômatos
[s0 , ababb] 7−→[s0 , babb] 7−→[s0 , abb] 7−→[s0 , bb] 7−→[s1 , b] 7−→[s2 , ε] 7−→[s2 ]
com pilha e
GLC’s

Máquinas de
Turing
(586 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo
Exemplo 4.45
Introdução
L(N2 ) = (a ∪ ba)∗ bb(a ∪ b)∗ .
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(587 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo
Exemplo 4.45
Introdução
L(N2 ) = (a ∪ ba)∗ bb(a ∪ b)∗ .
Fundamentos
matemáticos
a a, b
Alfabetos e b
linguagens
b
Autômatos M1 : s0 s1 s2
finitos
Autômatos finitos
determinísticos a
Operações com DFA’s
Autômatos finitos não
determinísticos
a a, b
Equivalência entre
DFA’s e NFA’s
b b
Linguagens e N2 : s0 s1 s2
gramáticas
regulares

Linguagens a b
livres de
contexto

Autômatos s3
com pilha e
GLC’s

Máquinas de
Turing
(588 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.46
Fundamentos
matemáticos L(N3 ) = {w ∈ {a, b}+ | w contém aa ou bb}.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(589 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.46
Fundamentos
matemáticos L(N3 ) = {w ∈ {a, b}+ | w contém aa ou bb}.
Alfabetos e
linguagens a, b
Autômatos
finitos a
Autômatos finitos
determinísticos a, b s1 s2
Operações com DFA’s
a
Autômatos finitos não
determinísticos
Equivalência entre N3 : s0
DFA’s e NFA’s

Linguagens e
b
gramáticas
regulares
s3 s4
b
Linguagens
livres de
contexto
a, b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(590 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.47
Fundamentos
matemáticos L(N4 ) = {w ∈ {a, b}∗ | w contém abba}.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(591 – 610 de 1593)
Exemplos de NFA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 4.47
Fundamentos
matemáticos L(N4 ) = {w ∈ {a, b}∗ | w contém abba}.
Alfabetos e
linguagens b a a, b
b
Autômatos
finitos a b a
Autômatos finitos M10 : s0 s1 s2 s3 s4
determinísticos
Operações com DFA’s
Autômatos finitos não
a
determinísticos
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
a, b a, b
regulares
a b b a
Linguagens
livres de
N4 : s0 s1 s2 s3 s4
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(592 – 610 de 1593)
Transições Vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 4.48
Alfabetos e Uma transição vazia não processa qualquer símbolo da cadeia de entrada.
linguagens

Autômatos
finitos
Autômatos finitos
Definição 4.49
NFA-ε é a classe de NFA’s que utilizam transições vazias.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
Definição 4.50
Linguagens e
gramáticas Um NFA-ε é uma quíntupla N = hΣ, S , s0 , δ, Fi, onde: Σ, S , s0 e F seguem a
regulares

Linguagens
mesma definição de NFA. A função de transição é δ : S × (Σ ∪ {ε}) → P(S ).
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(593 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.51


Fundamentos
matemáticos
Considere os NFA’s N2 e N5 , tais que:
Alfabetos e
L(N2 ) = (a ∪ b)∗ bb(a ∪ b)∗ .
linguagens L(N5 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(594 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.51


Fundamentos
matemáticos
Considere os NFA’s N2 e N5 , tais que:
Alfabetos e
L(N2 ) = (a ∪ b)∗ bb(a ∪ b)∗ .
linguagens L(N5 ) = (b ∪ ab)∗ (a ∪ ε).
Autômatos
finitos a, b a, b
Autômatos finitos
determinísticos
Operações com DFA’s
b b
Autômatos finitos não
determinísticos
N2 : s0 s1 s2
Equivalência entre
DFA’s e NFA’s

Linguagens e b
gramáticas a
regulares

Linguagens N5 : s0 s1
livres de
contexto

Autômatos
b
com pilha e
GLC’s

Máquinas de
Turing
(595 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.52
matemáticos
NFA-ε N6 tal que L(N6 ) = L(N2 ) ∪ L(N5 ):
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(596 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 4.52
matemáticos
NFA-ε N6 tal que L(N6 ) = L(N2 ) ∪ L(N5 ):
Alfabetos e
linguagens
a, b a, b
Autômatos
finitos
b b
Autômatos finitos s0,2 s1,2 s2,2
determinísticos
Operações com DFA’s
ε
Autômatos finitos não
determinísticos
Equivalência entre
N6 : s0
DFA’s e NFA’s
a
Linguagens e ε
gramáticas s0,5 s1,5
regulares

Linguagens
b
livres de b
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(597 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.53


Fundamentos
matemáticos
NFA-ε N7 tal que L(N7 ) = L(N2 )L(N5 ):
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(598 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo

Introdução Exemplo 4.53


Fundamentos
matemáticos
NFA-ε N7 tal que L(N7 ) = L(N2 )L(N5 ):
Alfabetos e a, b a, b
linguagens

Autômatos
b b
finitos
Autômatos finitos
N7 : s0,2 s1,2 s2,2
determinísticos
Operações com DFA’s
Autômatos finitos não

ε
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e b
gramáticas
regulares s1,5 s0,5
Linguagens
livres de a
contexto
b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(599 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(600 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(601 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens

Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(602 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens

Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
ε
determinísticos
Operações com DFA’s
Autômatos finitos não a, b a, b
determinísticos N9 : s0 s1 s2
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas ε
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(603 – 610 de 1593)
Exemplos de NFA-ε’s
LFA 2018/2

H. Longo
Exemplo 4.54
Introdução NFA N8 que aceita cadeias de comprimento dois sobre o alfabeto {a, b}:
Fundamentos a, b a, b
matemáticos N8 : s0 s1 s2
Alfabetos e
linguagens

Autômatos NFA-ε N9 que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
finitos
Autômatos finitos
ε
determinísticos
Operações com DFA’s
Autômatos finitos não a, b a, b
determinísticos N9 : s0 s1 s2
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas ε
regulares

Linguagens Outro NFA que aceita cadeias de comprimento par sobre o alfabeto {a, b}:
livres de
contexto
a, b
Autômatos N10 : s0 s1
com pilha e
GLC’s a, b
Máquinas de
Turing
(604 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Lema 4.55


linguagens

Autômatos
Se N = hΣ, S , s0 , δ, Fi é um NFA-ε, então existe um NFA-ε equivalente
finitos
Autômatos finitos
N 0 = hΣ, S ∪ {si , s f }, si , δ0 , {s f }i tal que o respectivo diagrama de estados
determinísticos satisfaz:
Operações com DFA’s
Autômatos finitos não
determinísticos
1 nenhum arco chega ao vértice si ,
Equivalência entre
DFA’s e NFA’s
2 o único vértice final é o s f ,
Linguagens e
3 nenhum arco sai do vértice s f .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(605 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Teorema 4.56


matemáticos

Alfabetos e
Se N1 e N2 são NFA-ε’s, então existem NFA-ε’s que aceitam L(N1 ) ∪ L(N2 ),
linguagens L(N1 )L(N2 ) e L(N1 )∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(606 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Teorema 4.56


matemáticos

Alfabetos e
Se N1 e N2 são NFA-ε’s, então existem NFA-ε’s que aceitam L(N1 ) ∪ L(N2 ),
linguagens L(N1 )L(N2 ) e L(N1 )∗ .
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s ε ε s f,1
Autômatos finitos não
si,1 N1
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
ε ε s f,2
regulares si,2 N2
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(607 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 4.57
Alfabetos e
linguagens
L(N1 ) ∪ L(N2 )
Autômatos
finitos ε ε s f,1
si,1 N1
Autômatos finitos
determinísticos ε ε
Operações com DFA’s
Autômatos finitos não
determinísticos si sf
Equivalência entre
DFA’s e NFA’s ε
Linguagens e ε ε ε
gramáticas si,2 N2 s f,2
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(608 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 4.58
Autômatos
finitos L(N1 )L(N2 )
Autômatos finitos
determinísticos
Operações com DFA’s
ε ε s f,1 ε ε ε s f,2
Autômatos finitos não si,1 N1 si,2 N2
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(609 – 610 de 1593)
NFA-ε’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Exemplo 4.59
linguagens
L(N1 )∗
Autômatos
finitos ε
Autômatos finitos
determinísticos
Operações com DFA’s
ε ε ε s f,1 ε sf
Autômatos finitos não
determinísticos
si si,1 N1
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas ε
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(610 – 610 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos finitos


finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
Equivalência entre DFA’s e NFA’s
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(611 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(612 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(613 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos Dado um NFA qualquer, pode-se construir um DFA equivalente:
finitos
Autômatos finitos DFA que aceita a mesma linguagem que o NFA.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(614 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução Existe uma linguagem aceita por um NFA e que não é aceita por nenhum
Fundamentos
DFA?
matemáticos
Nao! Todo DFA é um NFA.
Alfabetos e
linguagens
NFA é uma generalização do conceito de DFA.
Autômatos Dado um NFA qualquer, pode-se construir um DFA equivalente:
finitos
Autômatos finitos DFA que aceita a mesma linguagem que o NFA.
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos NFA-ε – Autômato com Transição ε
Equivalência entre
DFA’s e NFA’s (Nondeterministic Finite Automata with ε-moves)
Linguagens e
gramáticas NFA – Autômato não Determinístico
regulares
(Nondeterministic Finite Automata)
Linguagens
livres de DFA – Autômato Finito
contexto
(Deterministic Finite Automata)
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(615 – 653 de 1593)
Relação entre classes de autômatos finitos
LFA 2018/2

H. Longo

Introdução

Fundamentos Dado um NFA qualquer, pode-se construir um DFA equivalente:


matemáticos

Alfabetos e
linguagens
DFA NFA-ε
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares
NFA
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(616 – 653 de 1593)
Fecho ε
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 4.60
Autômatos O Fecho ε de um estado si , denotado Fε (si ), é definido recursivamente como:
finitos
Autômatos finitos
determinísticos
Base: si ∈ Fε (si ).
Operações com DFA’s
Autômatos finitos não
Recursão: Seja s j ∈ Fε (si ). Se sk ∈ δ(s j , ε), então sk ∈ Fε (si ).
determinísticos
Equivalência entre
Fecho: s j ∈ Fε (si ) somente se pode ser obtido a partir de si com a
DFA’s e NFA’s
aplicação da recursão um número finito de vezes.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(617 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(618 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens
A função τ, em um NFA-ε, relaciona as transições ao processamento da
Autômatos
cadeia de entrada.
finitos
Autômatos finitos
τ(si , a) : conjunto de estados alcançáveis, a partir de si , pelo processamento do
determinísticos
Operações com DFA’s
símbolo a.
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(619 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução
A função δ de transição de estados em DFA’s e NFA’s “processa” os símbolos
Fundamentos
matemáticos da cadeia de entrada.
Alfabetos e
linguagens
A função τ, em um NFA-ε, relaciona as transições ao processamento da
Autômatos
cadeia de entrada.
finitos
Autômatos finitos
τ(si , a) : conjunto de estados alcançáveis, a partir de si , pelo processamento do
determinísticos
Operações com DFA’s
símbolo a.
Autômatos finitos não
determinísticos Construção de τ(si , a) envolve três subconjuntos:
Equivalência entre
DFA’s e NFA’s 1 estados alcançáveis, a partir de si , sem processar a;
Linguagens e
gramáticas
2 estados alcançáveis, a partir dos estados construídos no passo 1, ao processar
regulares a;
Linguagens 3 estados alcançáveis, a partir dos estados construídos no passo 2, com
livres de
contexto transições vazias.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(620 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo
Caminho Símbolo ε
si2 s i3
Introdução si1 , si2 a a
Fundamentos si1 , si2 , si3 a si1
matemáticos
si1 , si4 ε ε
Alfabetos e
linguagens si1 , si4 , si5 a a ε
si4 s i5 si6
Autômatos
si1 , si4 , si5 , si6 a
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(621 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo
Caminho Símbolo ε
si2 s i3
Introdução si1 , si2 a a
Fundamentos si1 , si2 , si3 a si1
matemáticos
si1 , si4 ε ε
Alfabetos e
linguagens si1 , si4 , si5 a a ε
si4 s i5 si6
Autômatos
si1 , si4 , si5 , si6 a
finitos
Autômatos finitos
determinísticos τ(si1 , a) = {si2 , si3 , si5 , si6 }.
Operações com DFA’s
Autômatos finitos não O estado si4 não faz parte do conjunto porque a transição a partir de si1 não
determinísticos
Equivalência entre processa o símbolo a.
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(622 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 4.61
Alfabetos e
linguagens
A Função τ de Transição na Cadeia de um NFA-ε N = hΣ, S , s0 , δ, Fi é uma função
Autômatos
de S × Σ em P(S ), definida por:
finitos [
τ(si , a) = Fε (δ(s j , a)).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não s j ∈Fε (si )
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(623 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 4.61
Alfabetos e
linguagens
A Função τ de Transição na Cadeia de um NFA-ε N = hΣ, S , s0 , δ, Fi é uma função
Autômatos
de S × Σ em P(S ), definida por:
finitos [
τ(si , a) = Fε (δ(s j , a)).
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não s j ∈Fε (si )
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
A função τ tem a mesma forma da função δ.
A função τ é idêntica à função δ de um NFA sem transições ε.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(624 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução Exemplo 4.62


NFA-ε N , tal que L(N) = a+ c∗ b∗ :
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(625 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução Exemplo 4.62


NFA-ε N , tal que L(N) = a+ c∗ b∗ :
Fundamentos
matemáticos

Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(626 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução Exemplo 4.62


NFA-ε N , tal que L(N) = a+ c∗ b∗ :
Fundamentos
matemáticos

Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas δ a b c ε
regulares
s0 {s0 , s1 , s2 } ∅ ∅ ∅
Linguagens
livres de
s1 ∅ {s1 } ∅ ∅
contexto s2 ∅ ∅ {s2 } {s1 }
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(627 – 653 de 1593)
Função de Transição na Cadeia
LFA 2018/2

H. Longo

Introdução Exemplo 4.62


NFA-ε N , tal que L(N) = a+ c∗ b∗ :
Fundamentos
matemáticos

Alfabetos e a b
linguagens
a
Autômatos s0 s1
finitos
Autômatos finitos a
determinísticos ε
Operações com DFA’s
Autômatos finitos não
s2
determinísticos
Equivalência entre
DFA’s e NFA’s c
Linguagens e
gramáticas δ a b c ε τ a b c
regulares
s0 {s0 , s1 , s2 } ∅ ∅ ∅ s0 {s0 , s1 , s2 } ∅ ∅
Linguagens
livres de
s1 ∅ {s1 } ∅ ∅ s1 ∅ {s1 } ∅
contexto s2 ∅ ∅ {s2 } {s1 } s2 ∅ {s1 } {s1 , s2 }
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(628 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(629 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos Em um NFA- podem existir vários caminhos que representam o
Autômatos finitos
determinísticos processamento de uma cadeia.
Operações com DFA’s
Autômatos finitos não
determinísticos
Em um DFA este caminho é único.
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(630 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e A aceitação de uma cadeia por uma máquina não determinística depende da
linguagens
existência de um processamento que termina em um estado final.
Autômatos
finitos Em um NFA- podem existir vários caminhos que representam o
Autômatos finitos
determinísticos processamento de uma cadeia.
Operações com DFA’s
Autômatos finitos não
determinísticos
Em um DFA este caminho é único.
Equivalência entre
DFA’s e NFA’s Para remover o não determinismo, o DFA resultante deve simular a
Linguagens e
gramáticas
exploração de todos os possíveis caminhos em um NFA- .
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(631 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução Algoritmo 6: Constrói DFA equivalente a um NFA-ε


Fundamentos Entrada: NFA-ε N = hΣ, S , s0 , δ, Fi e função τ.
matemáticos
Saída: DFA M = hΣ, S 0 , s00 , δ0 , F 0 i.
Alfabetos e
linguagens 1 FI M ← F ;
Autômatos
2 S 0 ← Fε (s0 );
finitos 3 repita
Autômatos finitos 4 se ∃ X ∈ S 0 e a ∈ Σ e @ arco rotulado a saindo de X então
determinísticos
τ(si , a);
S
Operações com DFA’s 5 Y←
Autômatos finitos não
si ∈X
determinísticos
6 se Y < S 0 então S 0 ← S 0 ∪ {Y};
Equivalência entre
DFA’s e NFA’s 7 Adicione um arco de X a Y rotulado de a;
Linguagens e 8 senão
gramáticas 9 FI M ← V ;
regulares

Linguagens 10 até (FI M = V);


livres de
contexto
11 s00 ← Fε (s0 );
12 F 0 ← {X ∈ S 0 | X contém um elemento si ∈ F};
Autômatos
com pilha e 13 retorna (M);
GLC’s

Máquinas de
Turing
(632 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Vértices do DFA são conjuntos de vértices do NFA- .
Autômatos
finitos S 0 é o conjunto de vértices do DFA.
Autômatos finitos
determinísticos Vértice inicial do DFA é o Fecho ε do vértice inicial do NFA-ε.
Operações com DFA’s
Autômatos finitos não
determinísticos
Y é o conjunto de todos os estados alcançáveis pelo processamento de um
Equivalência entre
DFA’s e NFA’s
símbolo a partir de qualquer estado no conjunto X .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(633 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Algoritmo adiciona arcos ao DFA repetidas vezes.


linguagens
À medida que os arcos são inseridos, novos vértices podem ser criados e
Autômatos
finitos
inseridos no diagrama de estados do DFA.
Autômatos finitos
determinísticos
Procedimento termina quando todos os vértices são determinísticos.
Operações com DFA’s
Autômatos finitos não
No máximo |P(S )| vértices são construídos, já que cada vértice é um
determinísticos
Equivalência entre
subconjunto de S .
DFA’s e NFA’s
O algoritmo sempre termina, um vez que |P(S )||Σ| é um limite superior para o
Linguagens e
gramáticas número de iterações.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(634 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo Exemplo 4.63


Introdução a b
Fundamentos a
matemáticos
s0 s1
Alfabetos e a τ a b c
ε
linguagens
s0 {s0 , s1 , s2 } ∅ ∅
Autômatos s2
finitos
s1 ∅ {s1 } ∅
Autômatos finitos
c s2 ∅ {s1 } {s1 , s2 }
determinísticos
Operações com DFA’s
Fε (so ) = {s0 }
Autômatos finitos não
determinísticos
Equivalência entre
Elementos do DFA:
Arco rotulado de a do vértice {s0 } para o {s0 , s1 , s2 }.
DFA’s e NFA’s
1
Linguagens e
gramáticas Transição a partir de s0 lendo a termina em s0 , s1 ou s2 .
regulares
2 Vértice {s0 } tem de ter arcos rotulados b e c saindo do mesmo.
Linguagens
livres de 3 Um arco saindo do vértice {s0 , s1 , s2 } termina no vértice com todos os estados
contexto
alcançáveis (pelo processamento de um símbolo a partir dos estados s0 , s1 ou
Autômatos
com pilha e
s2 ) no NFA-ε.
GLC’s

Máquinas de
Turing
(635 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo Exemplo 4.63


Introdução a b
Fundamentos a
matemáticos
s0 s1
Alfabetos e a τ a b c
ε
linguagens
s0 {s0 , s1 , s2 } ∅ ∅
Autômatos s2
finitos
s1 ∅ {s1 } ∅
Autômatos finitos
c s2 ∅ {s1 } {s1 , s2 }
determinísticos
Operações com DFA’s
Fε (so ) = {s0 }
Autômatos finitos não
determinísticos a
Equivalência entre {s0 } {s0 , s1 , s2 }
DFA’s e NFA’s

Linguagens e
gramáticas b, c
regulares

Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(636 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo Exemplo 4.63


Introdução a b
Fundamentos a
matemáticos
s0 s1
Alfabetos e a τ a b c
ε
linguagens
s0 {s0 , s1 , s2 } ∅ ∅
Autômatos s2
finitos
s1 ∅ {s1 } ∅
Autômatos finitos
c s2 ∅ {s1 } {s1 , s2 }
determinísticos
Operações com DFA’s
Fε (so ) = {s0 }
Autômatos finitos não
determinísticos a a
Equivalência entre {s0 } {s0 , s1 , s2 }
DFA’s e NFA’s
a
Linguagens e {s0 } {s0 , s1 , s2 }
gramáticas b, c
regulares
c
Linguagens b, c b c
livres de

contexto a, c b
∅ {s1 } {s1 , s2 }
Autômatos
com pilha e a, b, c
GLC’s b
a
Máquinas de
Turing
(637 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 4.64
Seja N = hΣ, S , s0 , δ, Fi um NFA-ε e M = hΣ, S 0 , s00 , δ0 , F 0 i o DFA obtido a partir
Autômatos
finitos
Autômatos finitos
determinísticos de N com o algoritmo 6. Seja, ainda, w ∈ Σ∗ e S w = {sw1 , sw2 , . . . , sw j } o
conjunto de vértices alcançados, no NFA-ε N , ao término do processamento
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s
de w. Portanto, o processamento de w no DFA M termina no estado S w .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(638 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
Indução no comprimento da cadeia w:
linguagens

Autômatos
finitos Base: Se |w| = 0, o processamento em N termina em um vértice em Fε (s0 ). Este é
Autômatos finitos
determinísticos o vértice inicial em M .
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(639 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
Indução no comprimento da cadeia w:
linguagens

Autômatos
finitos Hipótese: Suponha que o resultado é válido para todas as cadeias de
Autômatos finitos
determinísticos comprimento n.
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(640 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
Indução no comprimento da cadeia w:
linguagens

Autômatos
finitos Passo: Seja w = ua, tal que |w| = n + 1.
Autômatos finitos
determinísticos Seja S u = {su1 , su2 , . . . , suk } o conjunto de vértices finais obtido pelo
Operações com DFA’s
Autômatos finitos não processamento da cadeia u.
determinísticos
Equivalência entre Por hipótese de indução, o processamento de u em M termina no
DFA’s e NFA’s

Linguagens e
vértice S u .
gramáticas
regulares

Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(641 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
Indução no comprimento da cadeia w:
linguagens

Autômatos
finitos Passo: Processamento de ua em M termina em estados (conjunto S w ) que
Autômatos finitos
determinísticos podem ser alcançados, a partir de um estado em S u , pelo
Operações com DFA’s
Autômatos finitos não processamento de a.
determinísticos
k
S w é definido por S w = τ(sui , a).
Equivalência entre S
DFA’s e NFA’s

Linguagens e i=1
gramáticas Como S w é o estado alcançado a partir de S u , pelo processamento de
regulares
a, no DFA M, a prova fica completa.
Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(642 – 653 de 1593)
Equivalência entre DFA’s e NFA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Corolário 4.65


finitos
Autômatos finitos
determinísticos
Se M = hΣ, S 0 , s00 , δ0 , F 0 i é o DFA obtido a partir do NFA-ε N = hΣ, S , s0 , δ, Fi
Operações com DFA’s
Autômatos finitos não
com o algoritmo 6, então M e N são equivalentes.
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(643 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo
Exemplo 4.66
Introdução

Fundamentos a b
matemáticos

Alfabetos e a b
linguagens s0 s1 s2
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(644 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo
Exemplo 4.66
Introdução

Fundamentos a b
matemáticos

Alfabetos e a b
linguagens s0 s1 s2
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s a b
Autômatos finitos não
determinísticos

a b
{s0 , s1 } {s1 , s2 }
Equivalência entre
DFA’s e NFA’s
{s0 }
Linguagens e
gramáticas
regulares

Linguagens
a, b
livres de b a
contexto

Autômatos

com pilha e
GLC’s

Máquinas de
Turing
(645 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

Exemplo 4.67 (L(N) = a∗ ∪ a(ba)∗ )


H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
DFA’s e NFA’s

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(646 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

Exemplo 4.67 (L(N) = a∗ ∪ a(ba)∗ )


H. Longo

Introdução
NFA-ε original:
Fundamentos
matemáticos a
Alfabetos e s1 s2
linguagens
ε
Autômatos b
finitos
Autômatos finitos
s0 a
determinísticos

ε
Operações com DFA’s
Autômatos finitos não
determinísticos
Equivalência entre
s3
DFA’s e NFA’s

Linguagens e
gramáticas τ a b
regulares
s0 {s2 , s3 } ∅
Linguagens
livres de Fε (s0 ) = {s0 , s1 , s3 } s1 {s2 } ∅
contexto s2 ∅ {s1 }
Autômatos s3 {s3 } ∅
com pilha e
GLC’s

Máquinas de
Turing
(647 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

Exemplo 4.67 (L(N) = a∗ ∪ a(ba)∗ )


H. Longo

Introdução
DFA equivalente:
Fundamentos
matemáticos

Alfabetos e b a, b
linguagens a
Autômatos
a a b
finitos
Autômatos finitos
{s0 , s1 , s3 } {s2 , s3 } {s3 } ∅
determinísticos
Operações com DFA’s
Autômatos finitos não
determinísticos b
Equivalência entre
DFA’s e NFA’s
b
Linguagens e
gramáticas
{s1 }
regulares a
Linguagens
livres de
b a
contexto

Autômatos
com pilha e {s2 }
GLC’s

Máquinas de
Turing
(648 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 4.68


linguagens
a
Autômatos
finitos a
Autômatos finitos
determinísticos
Operações com DFA’s
b a, b
Autômatos finitos não
determinísticos
s0 s1 s2
Equivalência entre
DFA’s e NFA’s

Linguagens e ε
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(649 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Exemplo 4.68
Introdução

Fundamentos a, b
matemáticos

a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(650 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Exemplo 4.68
Introdução

Fundamentos a, b
matemáticos

a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(651 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Exemplo 4.68
Introdução

Fundamentos a, b
matemáticos

a b
{s0 , s1 }
Alfabetos e
linguagens ∅ {s0 } {s1 }
Autômatos
finitos
Autômatos finitos
determinísticos
Operações com DFA’s b
Autômatos finitos não b b a a, b
determinísticos
Equivalência entre
DFA’s e NFA’s
a
Linguagens e
gramáticas a
regulares {s2 } {s0 , s2 } {s1 , s2 } {s0 , s1 , s2 }
Linguagens
livres de
a b a
contexto
b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(652 – 653 de 1593)
Remoção de Não Determinismo
LFA 2018/2

H. Longo

Introdução Exemplo 4.68


Fundamentos
matemáticos a a, b
Alfabetos e
linguagens b
Autômatos
{s0 , s2 } a
{s2 } ∅
finitos
Autômatos finitos
determinísticos
Operações com DFA’s
Autômatos finitos não b
determinísticos
Equivalência entre
b b
DFA’s e NFA’s

Linguagens e a
gramáticas a
regulares
a
Linguagens {s1 } {s1 , s2 } {s0 , s1 , s2 }
livres de
contexto b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(653 – 653 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens e gramáticas regulares


finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(654 – 680 de 1593)
Gramáticas
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 5.1
Alfabetos e
linguagens Uma gramática é uma 4-upla G = (V, Σ, P, S ) onde:
Autômatos
finitos
V é um conjunto finito não vazio de símbolos, chamados de não-terminais;
Linguagens e
Σ é um conjunto finito não vazio de símbolos, chamados de terminais, tal que
gramáticas Σ ∩ V = ∅;
regulares
Gramáticas regulares
S é o símbolo (não terminal) inicial (S ∈ V ); e
Autômatos finitos e
conjuntos regulares
P é um conjunto de regras (de produção) da forma α → β, onde:
Autômatos finitos e
gramáticas regulares
α ∈ (V ∪ Σ)∗ V(V ∪ Σ)∗ ,
Pumping Lemma para
linguagens regulares
β ∈ (V ∪ Σ)∗ .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(655 – 680 de 1593)
Gramática linear à direita
LFA 2018/2

H. Longo
Definição 5.2
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à direita (também chamada de
Fundamentos
matemáticos gramática linear à direita) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → aB,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(656 – 680 de 1593)
Gramática linear à direita
LFA 2018/2

H. Longo
Definição 5.2
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à direita (também chamada de
Fundamentos
matemáticos gramática linear à direita) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → aB,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Exemplo 5.3
Linguagens
livres de L(a∗ bc∗ ).
contexto ( )
S → aS | bA
Autômatos G = (V = {A, S }, Σ = {a, b, c}, P, S ), onde: P = .
com pilha e A → cA | ε
GLC’s

Máquinas de
Turing
(657 – 680 de 1593)
Gramática linear à esquerda
LFA 2018/2

H. Longo
Definição 5.4
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à esquerda (também chamada de
Fundamentos
matemáticos gramática linear à esquerda) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → Ba,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(658 – 680 de 1593)
Gramática linear à esquerda
LFA 2018/2

H. Longo
Definição 5.4
Introdução
Uma gramática G = (V, Σ, P, S ) é regular à esquerda (também chamada de
Fundamentos
matemáticos gramática linear à esquerda) se toda regra de derivação está numa das
Alfabetos e seguintes formas:
linguagens
1 A → Ba,
Autômatos
finitos
2 A → a,
Linguagens e
3 A → ε;
gramáticas (
regulares A, B ∈ V,
onde
a ∈ Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Exemplo 5.5
Linguagens
livres de L(a∗ bc∗ ).
contexto ( )
S → S c | Ab
Autômatos G = (V = {A, S }, Σ = {a, b, c}, P, S ), onde: P = .
com pilha e A → Aa | ε
GLC’s

Máquinas de
Turing
(659 – 680 de 1593)
Gramática regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Uma gramática é regular se é uma gramática linear à direita ou à esquerda.


linguagens

Autômatos
Alguns autores não permitem regras de derivação vazias (A → ε) e assumem
finitos
que a cadeia vazia não pertence às linguagens regulares.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(660 – 680 de 1593)
Gramática regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Uma gramática é regular se é uma gramática linear à direita ou à esquerda.


linguagens

Autômatos
Alguns autores não permitem regras de derivação vazias (A → ε) e assumem
finitos
que a cadeia vazia não pertence às linguagens regulares.
Linguagens e
gramáticas Existe uma correspondência direta entre as regras de derivação de uma
regulares
Gramáticas regulares gramática regular à direita e as transições de um autômato finito não
Autômatos finitos e
conjuntos regulares determinístico, de modo que a gramática gere exatamente a linguagem que o
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
autômato reconhece.
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(661 – 680 de 1593)
Gramáticas regulares estendidas
LFA 2018/2

H. Longo Uma gramática regular estendida à direita é aquela em que todas as regras
Introdução
de derivação estão numa das formas:
Fundamentos
1 A → wB,
matemáticos 2 A → a,
Alfabetos e 3 A → ε;
linguagens

Autômatos 
 A, B ∈ V,
a ∈ Σ,
finitos

onde 

Linguagens e

 w ∈ Σ∗ .

gramáticas
regulares
Gramáticas regulares Uma gramática regular estendida à esquerda é aquela em que todas as
Autômatos finitos e
conjuntos regulares regras de derivação estão numa das formas:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
1 A → Bw,
linguagens regulares 2 A → a,
Linguagens
livres de
3 A → ε;
contexto 

 A, B ∈ V,
Autômatos
∈ Σ,

onde  a

com pilha e
GLC’s

 w ∈ Σ∗ .

Máquinas de
Turing
(662 – 680 de 1593)
Misturando derivações à esquerda e à direita
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos A mistura de regras de derivação à esquerda e à direita ainda gera uma
Alfabetos e gramática linear, mas não necessariamente uma gramática regular.
linguagens

Autômatos
Uma tal gramática não necessariamente gera uma linguagem regular!!!
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(663 – 680 de 1593)
Misturando derivações à esquerda e à direita
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos A mistura de regras de derivação à esquerda e à direita ainda gera uma
Alfabetos e gramática linear, mas não necessariamente uma gramática regular.
linguagens

Autômatos
Uma tal gramática não necessariamente gera uma linguagem regular!!!
finitos

Linguagens e
gramáticas Exemplo 5.6
regulares
S → aA | ε
( )
Gramáticas regulares
Autômatos finitos e
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde: P = .
conjuntos regulares
Autômatos finitos e
A → Sb
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
L(G) = {ai bi | i > 0}, a qual não é uma linguagem regular.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(664 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.7 (Notação utilizada)


matemáticos

Alfabetos e
→ : Definição de regra de derivação.
linguagens

Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(665 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.7 (Notação utilizada)


matemáticos

Alfabetos e
→ : Definição de regra de derivação.
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
linguagens

Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
Gramáticas regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(666 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.7 (Notação utilizada)


matemáticos

Alfabetos e
→ : Definição de regra de derivação.
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
linguagens

Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
Gramáticas regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Autômatos finitos e +
conjuntos regulares
Autômatos finitos e
=⇒ : Derivação usando uma ou mais regras de derivação.
gramáticas regulares n
Pumping Lemma para
linguagens regulares
=⇒ : Derivação de comprimento n:
n
Linguagens
livres de
v =⇒ w : w é derivado a partir de v usando n regras de derivação.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(667 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 5.8
Autômatos
finitos
A aplicação de A → w à variável A em uA gera a cadeia uw (em Au gera a
Linguagens e cadeia wu).
gramáticas
regulares Se (A → w) ∈ P, então uA → uw.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(668 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 5.8
Autômatos
finitos
A aplicação de A → w à variável A em uA gera a cadeia uw (em Au gera a
Linguagens e cadeia wu).
gramáticas
regulares Se (A → w) ∈ P, então uA → uw.
Gramáticas regulares

Autômatos finitos e
conjuntos regulares
u =⇒ v se u = v ou ∃ u1 , u2 , . . . , uk , k ≥ 0 tal que u → u1 → u2 ⇒ · · · → uk → v.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(669 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.9
Alfabetos e ( )
S → 0S | 1A
G = (V = {A, S }, Σ = {0, 1}, P, S ), onde: P =
linguagens
.
Autômatos A → 1A | ε
finitos

Linguagens e
gramáticas Expressão regular: 0∗ 1+ .
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
Derivação da cadeia 00011:
gramáticas regulares
Pumping Lemma para
linguagens regulares
S → 0S → 00S → 000S → 0001A → 00011A → 00011ε ≡ 00011.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(670 – 680 de 1593)
Linguagem Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
Uma linguagem é regular se pode ser gerada por uma gramática regular.
finitos
Uma linguagem regular pode ser gerada por gramática não regular.
Linguagens e
gramáticas
regulares
As formas sentenciais de uma gramática regular contêm no máximo uma
Gramáticas regulares variável (símbolo mais a direita na cadeia).
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(671 – 680 de 1593)
Gramática regular e linguagem regular
LFA 2018/2

H. Longo Teorema 5.10


Introdução Seja G = (V, Σ, P, S ) uma gramática linear à direita, então a linguagem L(G) é
Fundamentos regular.
matemáticos

Alfabetos e
linguagens Teorema 5.11
Se L é uma linguagem regular sobre o alfabeto Σ, então existe uma gramática
Autômatos
finitos

Linguagens e linear à direita G tal que L = L(G).


gramáticas
regulares
Gramáticas regulares
Autômatos finitos e Teorema 5.12
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Uma linguagem L é regular se e somente se existe uma gramática linear à
Pumping Lemma para
linguagens regulares esquerda G tal que L = L(G).
Linguagens
livres de
contexto Teorema 5.13
Autômatos
com pilha e Uma linguagem L é regular se e somente se existe uma gramática regular G
GLC’s
tal que L = L(G).
Máquinas de
Turing
(672 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo
Exemplo 5.14
Introdução A linguagem L = {a+ b∗ | a, b ∈ Σ} é regular, G1 não é regular e G2 é regular:
Fundamentos
matemáticos G1 = (V1 , Σ, P1 , S ), onde:
Alfabetos e
linguagens V1 = {S , A, B},
Autômatos
finitos
Σ = {a, b},
 
Linguagens e 
 S → AB 

P1 =  .
gramáticas
 
A → aA | a
 
regulares 
Gramáticas regulares
 B → bB | ε

 


Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares G2 = (V2 , Σ, P2 , S ), onde:
Pumping Lemma para
linguagens regulares

Linguagens
V2 = {S , B},
livres de
contexto Σ = {a, b},
( )
Autômatos S → aS | aB
com pilha e P2 = .
GLC’s B → bB | ε
Máquinas de
Turing
(673 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução Exemplo 5.15


Fundamentos
matemáticos G = ({S , A}, {a, b}, P, S ), onde:
Alfabetos e
S → abS A | ε
( )
linguagens
P= .
Autômatos
finitos
A → Aa | ε
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(674 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução Exemplo 5.15


Fundamentos
matemáticos G = ({S , A}, {a, b}, P, S ), onde:
Alfabetos e
S → abS A | ε
( )
linguagens
P= .
Autômatos
finitos
A → Aa | ε

A linguagem de G é dada pela expressão regular ε ∪ (ab)+ a∗ .


Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(675 – 680 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução Exemplo 5.15


Fundamentos
matemáticos G = ({S , A}, {a, b}, P, S ), onde:
Alfabetos e
S → abS A | ε
( )
linguagens
P= .
Autômatos
finitos
A → Aa | ε

A linguagem de G é dada pela expressão regular ε ∪ (ab)+ a∗ .


Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
Gramática regular equivalente: G1 = ({S , A, B}, {a, b}, P1 , S ), onde:
conjuntos regulares

S → aB | ε
Autômatos finitos e  
gramáticas regulares  
Pumping Lemma para
 
P1 =  .
 
B → bS | bA
linguagens regulares
 
 

Linguagens  A → aA | ε
 

livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(676 – 680 de 1593)
Gramática regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 5.16


linguagens

Autômatos
L = {w ∈ {a, b}∗ | |w| é par }.
finitos
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde:
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(677 – 680 de 1593)
Gramática regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 5.16


linguagens

Autômatos
L = {w ∈ {a, b}∗ | |w| é par }.
finitos
Gramática G = (V = {A, S }, Σ = {a, b}, P, S ), onde:
Linguagens e
gramáticas
S → aA | bA | ε
( )
regulares
Gramáticas regulares P= .
Autômatos finitos e
conjuntos regulares
A → aS | bS | a | b
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(678 – 680 de 1593)
Gramática regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.17
Fundamentos
matemáticos L = {a, b}∗ ∪ {a, c}∗ ∪ {b, c}∗ .
Alfabetos e
linguagens Gramática G = (V = {A, B, C, S }, Σ = {a, b, c}, P, S ), onde:
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(679 – 680 de 1593)
Gramática regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.17
Fundamentos
matemáticos L = {a, b}∗ ∪ {a, c}∗ ∪ {b, c}∗ .
Alfabetos e
linguagens Gramática G = (V = {A, B, C, S }, Σ = {a, b, c}, P, S ), onde:
Autômatos
S →ε
 
finitos  

 

S → aB | aC
Linguagens e


 


gramáticas


 


regulares
Gramáticas regulares



 S → bA | bC 



P= .
 
S → cA | cB
Autômatos finitos e
 
conjuntos regulares  

A → bA | cA | ε
Autômatos finitos e


 


gramáticas regulares

 

B → aB | cB | ε
Pumping Lemma para


 


linguagens regulares 
 

C → aC | bC | ε


 


Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(680 – 680 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens e gramáticas regulares


finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares Autômatos finitos e conjuntos regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(681 – 749 de 1593)
Conjuntos Regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Um conjunto regular sobre um alfabeto Σ é definido como:


linguagens

Autômatos Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.
finitos
Recursão: se X e Y são conjuntos regulares sobre Σ, então X ∪ Y , XY e X ∗
Linguagens e
gramáticas também são conjuntos regulares sobre Σ.
regulares
Gramáticas regulares
Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
Autômatos finitos e
conjuntos regulares conjuntos regulares básicos, com a aplicação da recursão um
Autômatos finitos e
gramáticas regulares número finito de vezes.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(682 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e

Todo autômato finito, com alfabeto Σ, aceita uma linguagem sobre Σ.


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(683 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e

Todo autômato finito, com alfabeto Σ, aceita uma linguagem sobre Σ.


linguagens

Autômatos
finitos A família de linguagens aceitas por autômatos consiste de conjuntos
Linguagens e regulares sobre Σ:
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(684 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e

Todo autômato finito, com alfabeto Σ, aceita uma linguagem sobre Σ.


linguagens

Autômatos
finitos A família de linguagens aceitas por autômatos consiste de conjuntos
Linguagens e regulares sobre Σ:
gramáticas
regulares 1 Todo conjunto regular é aceito por um NFA-ε.
Gramáticas regulares
Autômatos finitos e
2 Toda linguagem aceita por um autômato é um conjunto regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(685 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(686 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos Um conjunto regular sobre um alfabeto Σ é definido como:


finitos

Linguagens e Base: ∅, {ε} e {a}, para todo a ∈ Σ, são conjuntos regulares sobre Σ.
gramáticas
regulares Recursão: Se X e Y são conjuntos regulares sobre Σ, então X ∪ Y , XY e X ∗
também são conjuntos regulares sobre Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares Fecho: X é um conjunto regular sobre Σ se pode ser obtido, a partir dos
Pumping Lemma para
linguagens regulares conjuntos regulares básicos, com a aplicação da recursão um número
Linguagens
livres de
finito de vezes.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(687 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos Conjuntos regulares são construídos a partir dos conjuntos básicos usando
finitos
operações de união, concatenação e fecho de Kleene.
Linguagens e
gramáticas
regulares
Transições ε podem ser usadas para construir máquinas mais complexas a
Gramáticas regulares partir de outras máquinas já existentes.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(688 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos Base da definição de conjunto regular:


finitos

Linguagens e
gramáticas s0 sf
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e a sf
gramáticas regulares s0
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto ε sf
s0
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(689 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos L(M1 ) ∪ L(M2 ):


finitos

Linguagens e
gramáticas s0,M1 M1 s f,M1
regulares
Gramáticas regulares
ε ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e s0 sf
gramáticas regulares
Pumping Lemma para
linguagens regulares
ε ε
Linguagens s0,M2 M2 s f,M2
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(690 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos L(M1 )L(M2 ):


finitos

Linguagens e
s f,M1 ε s f,M2
gramáticas s0,M1 M1 s0,M2 M2
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(691 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo
Lema 5.18
Todo conjunto regular é aceito por um NFA-ε.
Introdução

Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos (L(M1 ))∗ :


finitos
ε
Linguagens e
gramáticas
regulares
Gramáticas regulares
s0 s0,M1 M1 s f,M1 sf
ε ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para

ε
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(692 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos A técnica usada na demonstração do lema 5.18 pode ser usada para
Alfabetos e
linguagens
construir um NFA-ε que aceite (a ∪ b)∗ ba.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(693 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
1 Máquinas que aceitam a e b:
Autômatos
a s f,1 b s f,2
finitos
s0,1 s0,2
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(694 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
2 Máquina que aceita ba:

ε
Autômatos
b s f,2 a s f,1
finitos
s0,2 s0,1
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(695 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
3 Máquina que aceita a ∪ b:
Autômatos
a s f,1
finitos
s0,1
Linguagens e ε ε
gramáticas
regulares
Gramáticas regulares
s0,3 s f,3
Autômatos finitos e
conjuntos regulares
ε s f,2 ε
Autômatos finitos e
gramáticas regulares
s0,2
Pumping Lemma para b
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(696 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba.
Alfabetos e
linguagens
4 Máquina que aceita (a ∪ b)∗ :
Autômatos

ε
finitos

Linguagens e a
gramáticas s0,1 s f,1
regulares ε ε
Gramáticas regulares
ε s f,3 ε s f,4
Autômatos finitos e
conjuntos regulares
s0,4 s0,3
Autômatos finitos e
gramáticas regulares
ε s f,2 ε
Pumping Lemma para
linguagens regulares
s0,2 ε
b
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(697 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA-ε que aceita (a ∪ b)∗ ba:
Alfabetos e
linguagens ε
a s f,1
Autômatos s0,1
ε ε
finitos ε ε s f,3 ε s f,4 ε b s f,2 ε a s f,1
s0,5 s0,4 s0,3 s0,2 s0,1
Linguagens e ε s f,2 ε
s0,2 ε
gramáticas b
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(698 – 749 de 1593)
Linguagens e conjuntos regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.19
Fundamentos
matemáticos NFA que aceita (a ∪ b)∗ ba:
Alfabetos e
linguagens a, b
Autômatos
finitos
b a s f,6
Linguagens e
s0,6
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(699 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.20


matemáticos

Alfabetos e Uma linguagem L, sobre um alfabeto Σ, é regular se L é:


linguagens 1 definida por um conjunto regular (expressão) sobre Σ;
Autômatos
finitos
2 aceita por um DFA, NFA ou NFA-ε; ou
Linguagens e
3 gerada por uma gramática regular.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(700 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.20


matemáticos

Alfabetos e Uma linguagem L, sobre um alfabeto Σ, é regular se L é:


linguagens 1 definida por um conjunto regular (expressão) sobre Σ;
Autômatos
finitos
2 aceita por um DFA, NFA ou NFA-ε; ou
Linguagens e
3 gerada por uma gramática regular.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e Uma família de linguagens é fechada sobre uma operação se a aplicação da
conjuntos regulares
Autômatos finitos e
gramáticas regulares
operação a algum membro da família produz um membro da própria família.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(701 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.20


matemáticos

Alfabetos e Uma linguagem L, sobre um alfabeto Σ, é regular se L é:


linguagens 1 definida por um conjunto regular (expressão) sobre Σ;
Autômatos
finitos
2 aceita por um DFA, NFA ou NFA-ε; ou
Linguagens e
3 gerada por uma gramática regular.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e Uma família de linguagens é fechada sobre uma operação se a aplicação da
conjuntos regulares
Autômatos finitos e
gramáticas regulares
operação a algum membro da família produz um membro da própria família.
Pumping Lemma para
linguagens regulares Formulações equivalentes de linguagens regulares podem ser usadas para
Linguagens provar propriedades de fecho da família de linguagens regulares.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(702 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.21
Alfabetos e Se L1 e L2 são duas linguagens regulares, então L1 ∪ L2 , L1 L2 e L∗1 são
linguagens
linguagens regulares.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(703 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.21
Alfabetos e Se L1 e L2 são duas linguagens regulares, então L1 ∪ L2 , L1 L2 e L∗1 são
linguagens
linguagens regulares.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
regulares
Gramáticas regulares A definição recursiva de conjuntos regulares estabelece o fecho para essas
Autômatos finitos e
conjuntos regulares operações. Além disso, essas linguagens são aceitas por NFA-ε (veja o
Autômatos finitos e
gramáticas regulares teorema correspondente).
Pumping Lemma para
linguagens regulares

Linguagens

livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(704 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.22
Alfabetos e
linguagens Se L é uma linguagem regular, então a linguagem L é regular.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(705 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.22
Alfabetos e
linguagens Se L é uma linguagem regular, então a linguagem L é regular.
Autômatos
finitos

Linguagens e
Demonstração.
gramáticas
regulares Se L é regular sobre o alfabeto Σ, então L = Σ∗ − L também é regular. Um
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
DFA que aceita a linguagem L pode ser construído a partir de outro que
Autômatos finitos e
gramáticas regulares
aceita a linguagem L.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(706 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Teorema 5.23


matemáticos

Alfabetos e
Se L1 e L2 são duas linguagens regulares, então a linguagem L1 ∩ L2 é
linguagens
regular.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(707 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos Teorema 5.23


matemáticos

Alfabetos e
Se L1 e L2 são duas linguagens regulares, então a linguagem L1 ∩ L2 é
linguagens
regular.
Autômatos
finitos

Linguagens e Demonstração.
gramáticas
regulares
Gramáticas regulares Pela lei de DeMorgan L1 ∩ L2 = L1 ∪ L2 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e O lado direito da igualdade é regular já que é construído a partir de L1 e de
gramáticas regulares
Pumping Lemma para
linguagens regulares
L2 usando as operações de união e complementação.
Linguagens
livres de

contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(708 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(709 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
L : cadeias sobre {a, b} que contêm aa e não contêm bb.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(710 – 749 de 1593)
Fecho de linguagens regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.24
Autômatos
finitos
L1 = (a ∪ b)∗ aa(a ∪ b)∗ : cadeias que contém aa.
Linguagens e L2 = (a ∪ b)∗ bb(a ∪ b)∗ : cadeias que contém bb.
gramáticas
regulares
Gramáticas regulares
L : cadeias sobre {a, b} que contêm aa e não contêm bb.
Autômatos finitos e
conjuntos regulares L = L1 ∩ L2 é regular.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(711 – 749 de 1593)
Caracterização de conjuntos regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Teorema 5.25 (Kleene)


finitos

Linguagens e Uma linguagem L é aceita por um DFA com alfabeto Σ se, e somente se, L é
gramáticas
regulares um conjunto regular sobre Σ.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(712 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2

H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(713 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2

H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos L regular ⇒ L é reconhecida por algum DFA.
Linguagens e
gramáticas
regulares
Conversão de DFA numa expressão regular equivalente:
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
1 conversão de DFA em GNFA.
Autômatos finitos e
gramáticas regulares 2 conversão de GNFA em expressão regular.
Pumping Lemma para
linguagens regulares

Linguagens GNFA : Generalized Nondeterministic Finite Automaton.


livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(714 – 749 de 1593)
Equivalência com Autômato Finito
LFA 2018/2

H. Longo
Lema 5.26
Introdução Se uma linguagem L, sobre um alfabeto Σ, é regular, então alguma
Fundamentos
matemáticos
expressão regular R a descreve.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos Conversão de DFA numa expressão regular equivalente.
Linguagens e
gramáticas
k-DFA : autômato finito determinístico com k estados.
regulares `-GNFA : autômato finito não determinístico generalizado com ` estados.
Gramáticas regulares
Autômatos finitos e

(k + 2)-GNFA (k + 1)-GNFA
conjuntos regulares
Autômatos finitos e k-DFA
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto
Expressão
Autômatos
Regular
2-GNFA 3-GNFA
com pilha e
GLC’s

Máquinas de
Turing
(715 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(716 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(717 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(718 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares apenas um estado final;
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(719 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares apenas um estado final;
Autômatos finitos e
conjuntos regulares transições dos demais estados para o estado final;
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(720 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares apenas um estado final;
Autômatos finitos e
conjuntos regulares transições dos demais estados para o estado final;
Autômatos finitos e
gramáticas regulares sem transição do estado inicial (final) para o próprio;
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(721 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares apenas um estado final;
Autômatos finitos e
conjuntos regulares transições dos demais estados para o estado final;
Autômatos finitos e
gramáticas regulares sem transição do estado inicial (final) para o próprio;
Pumping Lemma para
linguagens regulares transições entre todos os pares de estados (exceto o inicial e o final); e
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(722 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.27


matemáticos

Alfabetos e Um GNFA é um NFA onde:


linguagens
função de transição δ aceita um par de estados como parâmetros e tem como
Autômatos
finitos resultado uma expressão regular;
Linguagens e transições do estado inicial para todos os demais;
gramáticas
regulares
sem transições dos demais estados para o estado inicial;
Gramáticas regulares apenas um estado final;
Autômatos finitos e
conjuntos regulares transições dos demais estados para o estado final;
Autômatos finitos e
gramáticas regulares sem transição do estado inicial (final) para o próprio;
Pumping Lemma para
linguagens regulares transições entre todos os pares de estados (exceto o inicial e o final); e
Linguagens transições de cada estado para o próprio (exceto o inicial e o final).
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(723 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.28


matemáticos

Alfabetos e
Um GNFA é definido por uma quíntupla hΣ, S , sini , δ, s f im i, onde:
linguagens

Autômatos Σ: o alfabeto de entrada;


finitos
S ,∅: o conjunto finito de estados;
Linguagens e
gramáticas sini ∈ S : estado inicial;
regulares
Gramáticas regulares
δ : (S − {sini }) × (S − {s f im }) → R∗ : a função de transição que associa um par
Autômatos finitos e
conjuntos regulares de estados a uma expressão regular;
Autômatos finitos e
gramáticas regulares R∗ : conjunto de todas as expressões
regulares sobre o alfabeto Σ;
Pumping Lemma para
linguagens regulares

Linguagens
livres de
s f im : estado final.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(724 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.29


matemáticos
Alfabeto Σ.
Alfabetos e
linguagens
Cadeia w = w1 w2 . . . wk , onde cada wi ∈ Σ∗ .
Autômatos
finitos

Linguagens e
GNFA G = hΣ, S , sini , δ, s f im i.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(725 – 749 de 1593)
NFA Generalizado – GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos Definição 5.29


matemáticos
Alfabeto Σ.
Alfabetos e
linguagens
Cadeia w = w1 w2 . . . wk , onde cada wi ∈ Σ∗ .
Autômatos
finitos

Linguagens e
GNFA G = hΣ, S , sini , δ, s f im i.
gramáticas
regulares G reconhece a cadeia w se existe uma seqüência de estados s0 , s1 , . . . , sk tal
Gramáticas regulares
Autômatos finitos e que:
conjuntos regulares
Autômatos finitos e
gramáticas regulares s0 = sini é o estado inicial,
Pumping Lemma para
linguagens regulares
sk = s f im é o estado final,
wi ∈ L(Ri ), para cada i, onde Ri = δ(si−1 , si ).
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(726 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens

Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(727 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens

Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(728 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens

Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos

Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(729 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens

Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos

Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e União de múltiplas transicões entre estados:
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(si , a) = s j e δ(si , b) = s j ⇒ δ(si , s j ) = a ∪ b.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(730 – 749 de 1593)
Conversão de DFA em GNFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos DFA = hΣ, S , s0 , δ1 , Fi.
Alfabetos e
linguagens

Autômatos
GNFA = hΣ, S , sini , δ, s f im i.
Novo estado sini , com transição δ(sini , s0 ) = ε.
finitos

Linguagens e
gramáticas
regulares
Novo estado s f im , com transições δ(s, s f im ) = ε, ∀ s ∈ F .
Gramáticas regulares
Autômatos finitos e União de múltiplas transicões entre estados:
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(si , a) = s j e δ(si , b) = s j ⇒ δ(si , s j ) = a ∪ b.
Pumping Lemma para

δ(si , a) , s j , ∀ a ∈ Σ ⇒ δ(si , s j ) = ∅.
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(731 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução
Algoritmo 7: Converte(G,R)
Fundamentos
matemáticos Entrada: GNFA G = hΣ, S , sini , δ, s f im i.
Alfabetos e Saída: Expressão regular R
linguagens
1 k ← |S |;
Autômatos 2 se (k = 2) então
finitos
3 retorna R;
Linguagens e 4 senão
gramáticas
5 sr ← s ∈ S , tal que s , sini e s , s f im .;
regulares
Gramáticas regulares
6 S 0 ← S − {sr };
Autômatos finitos e 7 δ0 (si , s j ) ← (R1 )(R2 )∗ (R3 ) ∪ (R4 ), ∀ si ∈ S 0 − {sini } e s j ∈ S 0 − {s f im }, onde:
conjuntos regulares
 R1 = δ(si , sr )

Autômatos finitos e

 R2 = δ(sr , sr )
gramáticas regulares




Pumping Lemma para

 R3 = δ(sr , s j )
linguagens regulares



R4 = δ(si , s j ).


Linguagens
livres de
contexto
8 Converte(G0 = hΣ, S 0 , sini , δ0 , s f im i,R);
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(732 – 749 de 1593)
Expressão regular e autômato finito
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Resumo das operações de exclusão de um vértice:
linguagens
r j, j
Autômatos
finitos
ri, j r j,k ri, j r j,k
Linguagens e i j k i j k
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares ri, j r j,k ri, j (r j, j )∗ r j,k
Autômatos finitos e
gramáticas regulares
i k i k
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(733 – 749 de 1593)
Expressão regular e autômato finito
LFA 2018/2

H. Longo

Introdução
Resumo das operações de exclusão de um vértice:
Fundamentos
matemáticos ri,k
Alfabetos e
linguagens

Autômatos i k
finitos

Linguagens e
gramáticas
regulares r j, j
Gramáticas regulares
Autômatos finitos e
ri, j r j,k
conjuntos regulares
Autômatos finitos e j
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens (ri,k ) ∪ (ri, j (r j, j )∗ r j,k )


livres de
contexto
i k
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(734 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução Lema 5.30


Fundamentos
matemáticos Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Alfabetos e algoritmo 7, então G e G0 são equivalentes.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(735 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução Lema 5.30


Fundamentos
matemáticos Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Alfabetos e algoritmo 7, então G e G0 são equivalentes.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Base: k = 2 ⇒ R = δ(sini , s f im ).
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(736 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução Lema 5.30


Fundamentos
matemáticos Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Alfabetos e algoritmo 7, então G e G0 são equivalentes.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Passo 1: Suponha que G aceita uma cadeia w:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
∃ sini ≡ s0 , s1 , s2 , s3 , . . . , sq ≡ s f im
linguagens regulares
sr , s1 , s2 , s3 , . . . , sq−1 ⇒ G0 aceita w
sr = s p , 1 ≤ p ≤ q − 1 ⇒ R0 = δ0 (si , s j ) descreve w (G0 aceita w).
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(737 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução Lema 5.30


Fundamentos
matemáticos Seja G um GNFA e G0 o GNFA obtido a partir de G em uma iteração do
Alfabetos e algoritmo 7, então G e G0 são equivalentes.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas Indução no número k de estados de G:
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares Passo 2: Suponha que G0 aceita uma cadeia w:
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
δ0 (si , s j ) descreve coleção de cadeias reconhecidas entre si e s j em
linguagens regulares
G, passando ou não por sr .
Linguagens
livres de
contexto
G e G0 são equivalentes.

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(738 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b(a
b(a
b) b)∗∗ε
)∪∪b) ε
regulares
Gramáticas regulares
sini s0 s1 s f im
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(739 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(740 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(741 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(742 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(743 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 5.31
Autômatos
finitos
a a a,
∪b
Linguagens e
gramáticas
ε ε(a)
a∗∗b(ab∪∪b)
(b(a ∗∗
b)
b(a
b(a b)∗∗ε
)∪∪b) ε
regulares sini s0 s1 s f im
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(744 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo
Exemplo 5.32
Introdução

Fundamentos aa ∪ b
matemáticos
a
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∗∪ b)∗ ab ∪ bb)∗ ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa
Alfabetos e sini s0 s1 s f im
linguagens

Autômatos a
finitos

Linguagens e
gramáticas b ba ∪ a
regulares b
a
(ba ∪ a)(aa ∪ b)∗ ∪ ε
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de s2
contexto

Autômatos
com pilha e (ba ∪ a)(aa ∪ b)∗ ab ∪ bb
bb
GLC’s

Máquinas de
Turing
(745 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Exemplo 5.32
Introdução

Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗

linguagens
sini s0 s1 s f im
Autômatos a
finitos

Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens s2
livres de
contexto

Autômatos (ba ∪ a)(aa ∪ b)∗ ab ∪ bb


bb
com pilha e
GLC’s

Máquinas de
Turing
(746 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Exemplo 5.32
Introdução

Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗

linguagens
sini s0 s1 s f im
Autômatos a
finitos

Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens s2
livres de
contexto

Autômatos (ba ∪ a)(aa ∪ b)∗ ab ∪ bb


bb
com pilha e
GLC’s

Máquinas de
Turing
(747 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Exemplo 5.32
Introdução

Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗

linguagens
sini s0 s1 s f im
Autômatos a
finitos

Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens s2
livres de
contexto

Autômatos (ba ∪ a)(aa ∪ b)∗ ab ∪ bb


bb
com pilha e
GLC’s

Máquinas de
Turing
(748 – 749 de 1593)
Conversão de GNFA em expressão regular
LFA 2018/2

H. Longo

Exemplo 5.32
Introdução

Fundamentos aa ∪ b
matemáticos a
Alfabetos e
∗ ∗
ε ∪ b) ) ∪ (a(aa ∪ b) ab ∪ b)((ba
(a(aa a a(aa ∪ b)∪ b) ab ∪ bb) ((ba ∪ a)(aa ∪ b)∗ ∪εε)
∪ a)(aa ∗ ∗ ∗

linguagens
sini s0 s1 s f im
Autômatos a
finitos

Linguagens e
gramáticas b ba ∪ a
regulares b
a
Gramáticas regulares
a(aa ∪ b)∗ ab ∪ b (ba ∪ a)(aa ∪ b)∗ ∪ ε
ε
Autômatos finitos e
conjuntos regulares b ab
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens s2
livres de
contexto

Autômatos (ba ∪ a)(aa ∪ b)∗ ab ∪ bb


bb
com pilha e
GLC’s

Máquinas de
Turing
(749 – 749 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens e gramáticas regulares


finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares Autômatos finitos e gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(750 – 786 de 1593)
Gramática Regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Uma gramática G = (V, Σ, P, S ) é regular se é uma GLC e toda regra de
Alfabetos e
linguagens derivação está numa das seguintes formas:
Autômatos 1 A → aB
finitos
2 A→a
A → ε,
Linguagens e
3
gramáticas
regulares
Gramáticas regulares onde A, B ∈ V e a ∈ Σ.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
Uma derivação é terminada por uma regra da forma A → a ou A → ε.
gramáticas regulares
Pumping Lemma para
linguagens regulares
A linguagem gerada por uma gramática regular é chamada regular.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(751 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(752 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA
gramáticas
regulares A →bA | b
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(753 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(754 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(755 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(756 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(757 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(758 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(759 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.33


matemáticos

Alfabetos e
linguagens
Linguagem a+ b+ .
Autômatos
finitos Gramática G: NFA N :
Linguagens e S →aS | aA a b
gramáticas
regulares A →bA | b
a b
Gramáticas regulares
Autômatos finitos e
S A Z
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares Derivação Processamento Cadeia
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(760 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 5.33
matemáticos

Alfabetos e Linguagem a+ b+ .
linguagens

Autômatos Gramática G: NFA N :


finitos

Linguagens e
S →aS | aA a b
gramáticas A →bA | b
regulares a b
Gramáticas regulares S A Z
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
Derivação Processamento Cadeia
S ⇒ aS [S , aabb] 7→ [S , abb] a
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(761 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 5.33
Fundamentos

Linguagem a+ b+ .
matemáticos

Alfabetos e
linguagens

Autômatos Gramática G: NFA N :


finitos
S →aS | aA a b
Linguagens e
A →bA | b
gramáticas a b
regulares
Gramáticas regulares
S A Z
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Derivação Processamento Cadeia
linguagens regulares
S ⇒ aS [S , aabb] 7→ [S , abb] a
Linguagens ⇒ aaA 7→ [A, bb] aa
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(762 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução Exemplo 5.33


Fundamentos
matemáticos Linguagem a+ b+ .
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S →aS | aA a b
Linguagens e A →bA | b
gramáticas
a b
regulares S A Z
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares Derivação Processamento Cadeia
Pumping Lemma para
linguagens regulares S ⇒ aS [S , aabb] 7→ [S , abb] a
Linguagens ⇒ aaA 7→ [A, bb] aa
livres de ⇒ aabA 7→ [A, b] aab
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(763 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução Exemplo 5.33


Fundamentos
matemáticos Linguagem a+ b+ .
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S →aS | aA a b
Linguagens e A →bA | b
a b
gramáticas
regulares
S A Z
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares Derivação Processamento Cadeia
Pumping Lemma para
linguagens regulares S ⇒ aS [S , aabb] 7→ [S , abb] a
Linguagens ⇒ aaA 7→ [A, bb] aa
livres de ⇒ aabA 7→ [A, b] aab
contexto
⇒ aabb 7→ [Z, ε] aabb
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(764 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
O diagrama de estados de um NFA N pode ser construído diretamente a
Autômatos
finitos partir das regras de derivação de uma gramática G:
Linguagens e Estados de N são as variáveis de G e, possivelmente, um estado final adicional.
gramáticas
regulares No exemplo 5.33 as transições δ(S , a) = S , δ(S , a) = A e δ(A, b) = A de N
Gramáticas regulares
Autômatos finitos e
correspondem às regras S → aS , S → aA e A → bA de G.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(765 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.34
Alfabetos e
linguagens Se G = (V, Σ, P, S ) é uma gramática regular, então o NFA N = hΣ, Q, q0 , δ, Fi,
Autômatos definido como segue, é tal que L(N) = L(G):
finitos (
V ∪ {Z}, se (A → a) ∈ P, onde Z < V.
Linguagens e 1 Q=
gramáticas V, caso contrário.
regulares
Gramáticas regulares
2 δ(A, a) = B, sempre que A → aB ∈ P.
Autômatos finitos e
conjuntos regulares δ(A, a)
( = Z , sempre que A → a ∈ P.
Autômatos finitos e
{A | A → ε ∈ P} ∪ {Z}, se Z ∈ Q.
F=
gramáticas regulares
3
Pumping Lemma para
linguagens regulares {A | A → ε ∈ P}, caso contrário.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(766 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos 1 L(G) ⊆ L(N)
Alfabetos e
linguagens A construção das transições de N a partir das regras de derivação de G permite
Autômatos que toda derivação em G seja mapeada para um processamento em N .

A derivação de uma cadeia de terminais tem a forma S =⇒ ε, S =⇒ wC =⇒ wa
finitos

Linguagens e ∗ ∗
gramáticas ou S =⇒ wC =⇒ w, onde a derivação S =⇒ wC consiste de regras da forma
regulares
Gramáticas regulares
S → aB.
Autômatos finitos e
conjuntos regulares
Se ε ∈ L(G), então S ∈ F e ε ∈ L(M).
Autômatos finitos e
gramáticas regulares
Existe um processamento em N que processa a cadeia w e termina no estado
Pumping Lemma para C , sempre que wC é uma forma sentencial de G.
linguagens regulares
Prova por indução (Exercício).
Linguagens
livres de
contexto 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(767 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos 1 L(G) ⊆ L(N)
Alfabetos e
linguagens A derivação de uma cadeia não nula é encerrada pela aplicação de uma regra
Autômatos C → a ou C → ε. ∗
finitos
Em uma derivação da forma S =⇒ wC =⇒ wa, a aplicação da regra final
Linguagens e
gramáticas
corresponde à transição δ(C, a) = Z , levando N para um estado final.

regulares Uma derivação da forma S =⇒ wC =⇒ w é encerrada por uma ε-regra.
Gramáticas regulares
Autômatos finitos e Como C → ε ∈ P, C é um estado final em N .
conjuntos regulares
Autômatos finitos e A aceitação de w por N é dada pelo processamento que corresponde à
gramáticas regulares ∗
Pumping Lemma para
linguagens regulares
derivação S =⇒ wC .
Linguagens
livres de
contexto 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(768 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos 2 L(N) ⊆ L(G)
Alfabetos e
O processamento de w = ua ∈ L(M) tem a forma [S , w] 7−→[B, ε], onde B , Z ,

linguagens

ou [S , w] 7−→[A, a] 7−→[Z, ε].


Autômatos ∗
finitos

Linguagens e No primeiro caso, B é o lado esquerdo de uma ε-regra de G. A cadeia wB pode


gramáticas
regulares
ser derivada pela aplicação de regras que correspondam às transições. A
Gramáticas regulares geração de w é completada pela aplicação de uma ε-regra.
Autômatos finitos e
conjuntos regulares A derivação de uA pode ser construída a partir de regras que correspondem as
transições no processamento [S , w] 7−→[A, a]. A cadeia w é obtida ao encerrar a
Autômatos finitos e ∗
gramáticas regulares
Pumping Lemma para
linguagens regulares
derivação com a regra A → a.
Linguagens
livres de Portanto, toda cadeia aceita por N pertence à linguagem de G.
contexto 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(769 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.35


matemáticos

Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens

Autômatos Gramática G: NFA N : Gramática G:


finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(770 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.35


matemáticos

Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens

Autômatos Gramática G: NFA N : Gramática G:


finitos
S → aS | bB | a
Linguagens e
gramáticas B → bB | ε
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(771 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.35


matemáticos

Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens

Autômatos Gramática G: NFA N : Gramática G:


finitos
S → aS | bB | a b
Linguagens e
gramáticas B → bB | ε
regulares
a b
B
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e S
gramáticas regulares
Pumping Lemma para
linguagens regulares
a
Linguagens
Z
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(772 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.35


matemáticos

Alfabetos e
Linguagem a∗ (a ∪ b+ ).
linguagens

Autômatos Gramática G: NFA N : Gramática G:


finitos
S → aS | bB | a b S → aS | bB | aZ
Linguagens e
gramáticas B → bB | ε B → bB | ε
regulares
a b
B Z→ε
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e S
gramáticas regulares
Pumping Lemma para
linguagens regulares
a
Linguagens
Z
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(773 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(774 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos
Uma gramática G construída a partir de um NFA N , pode ser transformada
Linguagens e
gramáticas em um autômato equivalente:
regulares
Gramáticas regulares
N −→ G −→ N 0 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(775 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Construção de uma gramática regular a partir de um NFA:
Alfabetos e
linguagens Transição δ(A, a) = B produz a regra A → aB.
Autômatos Se C é um estado final, a regra C → ε é produzida.
finitos
Uma gramática G construída a partir de um NFA N , pode ser transformada
Linguagens e
gramáticas em um autômato equivalente:
regulares
Gramáticas regulares
N −→ G −→ N 0 .
Autômatos finitos e
conjuntos regulares Uma gramática regular pode ser convertida em um NFA N , o qual pode ser
transformada em uma gramática G0 .
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
G −→ N −→ G0 .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(776 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(777 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(778 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
A conversão de autômato para gramática regular garante que todo conjunto
Autômatos finitos e
conjuntos regulares
regular é gerado por alguma gramática regular.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(779 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conclusão das técnicas de conversão:
Alfabetos e
linguagens As linguagens geradas por gramáticas regulares são exatamente aquelas
Autômatos aceitas por autômatos finitos.
finitos
A linguagem gerada por uma gramática regular é um conjunto regular
Linguagens e
gramáticas (conseqüência dos teoremas 5.34 e 5.25).
regulares
Gramáticas regulares
A conversão de autômato para gramática regular garante que todo conjunto
Autômatos finitos e
conjuntos regulares
regular é gerado por alguma gramática regular.
Autômatos finitos e
gramáticas regulares
Caracterização de conjuntos regulares: linguagens geradas por gramáticas
Pumping Lemma para
linguagens regulares
regulares.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(780 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(781 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e S → bS | cS | aB | ε
gramáticas
regulares B → aB | cS | bC | ε
Gramáticas regulares C → aB | bS | ε
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(782 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.36
Alfabetos e
linguagens
Conjunto de cadeias sobre {a, b, c} que não contém abc.
Autômatos
finitos Gramática G: NFA N :
Linguagens e S → bS | cS | aB | ε b, c a
gramáticas
B → aB | cS | bC | ε a b
regulares
Gramáticas regulares C → aB | bS | ε S B C
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
c a
gramáticas regulares
Pumping Lemma para
b
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(783 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(784 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S → aA | bB
Linguagens e A → aS | bC
gramáticas
regulares
B → bS | aC | ε
Gramáticas regulares C → aB | bA
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(785 – 786 de 1593)
Gramáticas regulares e autômatos
LFA 2018/2

H. Longo

Introdução
Exemplo 5.37
Fundamentos
matemáticos Cadeias sobre {a, b} com nr. par de a’s e ímpar de b’s.
Alfabetos e
linguagens
Gramática G: NFA N :
Autômatos
finitos S → aA | bB b
Linguagens e A → aS | bC S B
gramáticas
B → bS | aC | ε
regulares b
Gramáticas regulares C → aB | bA
Autômatos finitos e
conjuntos regulares
a a a a
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
b
linguagens regulares
A C
Linguagens
livres de b
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(786 – 786 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens e gramáticas regulares


finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares Pumping Lemma para linguagens regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(787 – 860 de 1593)
Uma linguagem regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
L1 = {ai bi |6 i 6 n}, para um n fixo.
Alfabetos e Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
linguagens
número de b’s.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(788 – 860 de 1593)
Uma linguagem regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
L1 = {ai bi |6 i 6 n}, para um n fixo.
Alfabetos e Estados ak ’s contam o número de a’s e estados bk ’s garantem um igual
linguagens
número de b’s.
Autômatos
finitos
a a a a
Linguagens e M9 : a0 a1 a2 an−1 an
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares b b b b
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares
b0 b1 bn−2 bn−1
Linguagens b b b
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(789 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(790 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(791 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos Suponha que L2 é aceita pelo DFA M .
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(792 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos Suponha que L2 é aceita pelo DFA M .
finitos
si é o estado de M após processar a cadeia ai (δ(s0 , ai ) = si ).
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(793 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos Suponha que L2 é aceita pelo DFA M .
finitos
si é o estado de M após processar a cadeia ai (δ(s0 , ai ) = si ).
Linguagens e
gramáticas ∀ i, j > 0, com i , j, ai bi ∈ L2 e a j bi < L2 .
regulares
Gramáticas regulares
δ(s0 , ai bi ) , δ(s0 , a j bi ).
Autômatos finitos e δ(s0 , ai bi ) é estado final e δ(s0 , a j bi ) não é final.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(794 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos Suponha que L2 é aceita pelo DFA M .
finitos
si é o estado de M após processar a cadeia ai (δ(s0 , ai ) = si ).
Linguagens e
gramáticas ∀ i, j > 0, com i , j, ai bi ∈ L2 e a j bi < L2 .
regulares
Gramáticas regulares
δ(s0 , ai bi ) , δ(s0 , a j bi ).
Autômatos finitos e δ(s0 , ai bi ) é estado final e δ(s0 , a j bi ) não é final.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(s0 , ai bi ) = δ(δ(s0 , ai ), bi ) = δ(si , bi ) e δ(s0 , a j bi ) = δ(δ(s0 , a j ), bi ) = δ(s j , bi ).
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(795 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos L2 = {ai bi | i > 0}.


matemáticos
Qualquer autômato determinístico construído para aceitar L2 tem um número
Alfabetos e
linguagens infinito de estados:
Autômatos Suponha que L2 é aceita pelo DFA M .
finitos
si é o estado de M após processar a cadeia ai (δ(s0 , ai ) = si ).
Linguagens e
gramáticas ∀ i, j > 0, com i , j, ai bi ∈ L2 e a j bi < L2 .
regulares
Gramáticas regulares
δ(s0 , ai bi ) , δ(s0 , a j bi ).
Autômatos finitos e δ(s0 , ai bi ) é estado final e δ(s0 , a j bi ) não é final.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
δ(s0 , ai bi ) = δ(δ(s0 , ai ), bi ) = δ(si , bi ) e δ(s0 , a j bi ) = δ(δ(s0 , a j ), bi ) = δ(s j , bi ).
Pumping Lemma para
linguagens regulares
si , s j uma vez que δ(si , bi ) , δ(s j , bi ).
Linguagens Estados si e s j são distintos para todos valores i , j.
livres de
contexto
M deve conter um número infinito de estados correspondentes a s1 , s2 , . . . .
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(796 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Teorema 5.38
Alfabetos e
linguagens A linguagem L2 = {ai bi | i > 0} não é regular.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(797 – 860 de 1593)
Uma linguagem não regular
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Teorema 5.38
Alfabetos e
linguagens A linguagem L2 = {ai bi | i > 0} não é regular.
Autômatos
finitos

Linguagens e Pode-se mostrar que uma linguagem é regular construindo-se uma DFA que a
gramáticas
regulares aceite.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Para provar que uma linguagem não é regular deve-se provar que não existe
Autômatos finitos e
gramáticas regulares
DFA que a aceite.
Pumping Lemma para
linguagens regulares
Argumentação usada antes de enunciar o teorema 5.38
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(798 – 860 de 1593)
Indistinguibilidade de cadeias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 5.39
Alfabetos e Duas cadeias u, v ∈ Σ∗ são distinguíveis em relação à linguagem L se existir
linguagens

Autômatos
alguma cadeia w ∈ Σ∗ tal que uw ∈ L e vw < L.
finitos

Linguagens e
gramáticas Exemplo 5.40
regulares
Z
a e aa não são distinguíveis em relação à linguagem L1 = {an | n ∈ + },
Z
Gramáticas regulares

porque aak e aaak pertencem à linguagem L1 , para qualquer k ∈ + .


Autômatos finitos e
conjuntos regulares

a e aa são distinguíveis em relação à linguagem L2 = {an bn | n ∈ Z+ }, porque


Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
ab ∈ L2 enquanto aab < L2 .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(799 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.41 (Myhill-Nerode)
Seja L uma linguagem sobre o alfabeto Σ. Se existe um conjunto S ⊆ Σ∗ que
Alfabetos e
linguagens

Autômatos satisfaz as seguintes propriedades:


finitos
1 |S | é infinita, e
Linguagens e
gramáticas
2 se u, v ∈ S e u , v, então u e v são distinguíveis em relação à L;
regulares
Gramáticas regulares então L não é regular.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(800 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Teorema 5.41 (Myhill-Nerode)
Seja L uma linguagem sobre o alfabeto Σ. Se existe um conjunto S ⊆ Σ∗ que
Alfabetos e
linguagens

Autômatos satisfaz as seguintes propriedades:


finitos
1 |S | é infinita, e
Linguagens e
gramáticas
2 se u, v ∈ S e u , v, então u e v são distinguíveis em relação à L;
regulares
Gramáticas regulares então L não é regular.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Demonstração.
linguagens regulares

Linguagens
Demonstração também similar à demonstração do teorema 5.38. 
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(801 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.42
Alfabetos e A linguagem L = {ai bi | i > 0} não é regular.
N
linguagens

Autômatos
Seja S = {an | n ∈ }. Este conjunto é infinito porque contém uma cadeia para
finitos cada número natural. Agora, considere quaisquer cadeias an , am ∈ S tais que
Linguagens e n , m, então an bn ∈ L e am bn < L. Logo, an e am são distinguíveis em relação a
gramáticas
regulares L. Assim, S é um conjunto infinito de cadeias distinguíveis em relação a L.
Gramáticas regulares
Autômatos finitos e
Portanto, pelo Teorema de Myhill-Nerode, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(802 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.42
Alfabetos e A linguagem L = {ai bi | i > 0} não é regular.
N
linguagens

Autômatos
Seja S = {an | n ∈ }. Este conjunto é infinito porque contém uma cadeia para
finitos cada número natural. Agora, considere quaisquer cadeias an , am ∈ S tais que
Linguagens e n , m, então an bn ∈ L e am bn < L. Logo, an e am são distinguíveis em relação a
gramáticas
regulares L. Assim, S é um conjunto infinito de cadeias distinguíveis em relação a L.
Gramáticas regulares
Autômatos finitos e
Portanto, pelo Teorema de Myhill-Nerode, L não é regular.
conjuntos regulares
Autômatos finitos e O conjunto L de palíndromos sobre {a, b} não é regular.
gramáticas regulares
Pumping Lemma para
linguagens regulares
S = {ak b | k > 0} ⊂ Σ∗ ⇒ |S | = ∞.
Linguagens
u = ai b ∈ S , v = a j b ∈ S e w = ai ∈ Σ∗ ⇒ uw ∈ L e vw < L, ∀ i , j.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(803 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(804 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(805 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Regras T ⇒ (A) ⇒ (T ) e T → b, geram (b), ((b)), (((b))), . . .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
ui = (i b e vi =)i satisfazem as condições do teorema 5.41.
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(806 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Exemplo 5.43
Fundamentos
matemáticos
Gramáticas regulares não são adequadas para definir linguagens de
Alfabetos e
linguagens programação que contém expressões aritméticas/booleanas.
Autômatos
Gramática Derivação
finitos S ⇒T
S →A
⇒ (A)
Linguagens e
gramáticas A→T |A+T
⇒ (T )
regulares T → b | (A)
Gramáticas regulares ⇒ (b)
Regras T ⇒ (A) ⇒ (T ) e T → b, geram (b), ((b)), (((b))), . . .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
ui = (i b e vi =)i satisfazem as condições do teorema 5.41.
linguagens regulares

Linguagens
Argumento similar pode ser usado para mostrar que PASCAL, C, ADA, . . .
livres de
contexto
não são regulares.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(807 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(808 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e Sejam L1 = a∗ b∗ e L2 = {ai bi | i > 0}.


gramáticas
regulares L2 é livre de contexto já que é gerado pela gramática S → aS b | ε.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares L1 ∩ L 2 = L2 .
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(809 – 860 de 1593)
Linguagens não regulares
LFA 2018/2

H. Longo

Introdução
Teorema 5.44
Fundamentos Seja L1 uma linguagem regular e L2 uma linguagem livre de contexto. A
matemáticos
linguagem L1 ∩ L2 não é necessariamente regular.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e Sejam L1 = a∗ b∗ e L2 = {ai bi | i > 0}.


gramáticas
regulares L2 é livre de contexto já que é gerado pela gramática S → aS b | ε.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares L1 ∩ L 2 = L2 .
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de Exemplo 5.45
contexto

Autômatos L = {ai b j | i, j > 0 e i , j} não é regular, pois L ∩ a∗ b∗ = {ai bi | i > 0} não é regular.
com pilha e
GLC’s

Máquinas de
Turing
(810 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(811 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(812 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Processamento da cadeia w = aabb (|w| > 4):
Autômatos finitos e
gramáticas regulares
[s0 , aabb] 7−→[s1 , abb] 7−→[s2 , bb] 7−→[s3 , b] 7−→[s3 , ε]
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(813 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Pumping: aceitação de cadeias com repetição de subcadeias.
matemáticos
Considere o seguinte DFA com 4 estados:
Alfabetos e
linguagens b b b
Autômatos a b
finitos a
s0 s1 s2 s3
Linguagens e
gramáticas
regulares
a a
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Processamento da cadeia w = aabb (|w| > 4):
Autômatos finitos e
gramáticas regulares
[s0 , aabb] 7−→[s1 , abb] 7−→[s2 , bb] 7−→[s3 , b] 7−→[s3 , ε]
Pumping Lemma para
linguagens regulares
Processamento da cadeia w = abbab (|w| > 4):
Linguagens
livres de [s0 , abbab] 7−→[s1 , bbab] 7−→[s1 , bab] 7−→[s1 , ab] 7−→[s2 , b] 7−→[s3 , ε]
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(814 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução Caso geral


Fundamentos
matemáticos
Seja L uma linguagem regular infinita (contém um número infinito de
Alfabetos e cadeias).
linguagens
L é aceita por um DFA M = hΣ, S , s0 , δ, Fi, com k estados.
Autômatos
finitos Se w ∈ L, |w| = n > k, então pelo menos um estado do DFA é repetido no
Linguagens e
gramáticas
processamento de w:
regulares w = w1 . . . wi . . . w j . . . wn .
[s0 , w1 . . . wi . . . w j . . . wn ] 7−→ · · · 7−→
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares [sq , wi . . . w j . . . wn ] 7−→ · · · 7−→
Pumping Lemma para
linguagens regulares
[sq , w j . . . wn ] 7−→ · · · 7−→
Linguagens
livres de [s f −1 , wn ] 7−→
contexto
[s f , ε], s f ∈ F .
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(815 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Lema 5.46
matemáticos
Seja G o diagrama de estados de um DFA com k estados. Qualquer caminho de
Alfabetos e
linguagens comprimento k em G contém um ciclo.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(816 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
Lema 5.46
matemáticos
Seja G o diagrama de estados de um DFA com k estados. Qualquer caminho de
Alfabetos e
linguagens comprimento k em G contém um ciclo.
Autômatos
finitos

Linguagens e
Demonstração.
gramáticas
regulares Um caminho de comprimento k contém k + 1 vértices.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Como existem apenas k vértices em G, deve existir um vértice si que ocorre
Autômatos finitos e
gramáticas regulares
em pelo menos duas posições do caminho.
Pumping Lemma para
linguagens regulares O subcaminho da primeira ocorrência de si para a segunda produz o ciclo.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(817 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Corolário 5.47
Alfabetos e Seja G o diagrama de estados de um DFA com k estados e p um caminho de
linguagens
comprimento k ou maior. O caminho p pode ser decomposto em subcaminhos q, r
e s, tal que p = qrs, o comprimento de qr é menor ou igual a k e r é um ciclo.
Autômatos
finitos

Linguagens e
gramáticas
regulares w = w1 . . . wi . . . w j . . . wn .
Gramáticas regulares
Autômatos finitos e
conjuntos regulares w1 wi−1 wi w j−1 wj wn−1 wn
Autômatos finitos e s0 ··· sq ··· sq ··· s f −1 sf
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
q r s
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(818 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
finitos
Seja L uma linguagem infinita regular. Existe um inteiro m (tamanho crítico ou
Linguagens e
gramáticas pumping length), tal que toda cadeia z ∈ L, com comprimento |z| > m, pode ser
escrita como z = uvw, com |uv| 6 m, |v| > 0 e uvi w ∈ L, ∀ i > 0.
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(819 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
Introdução

Fundamentos
Seja L uma linguagem regular que é aceita por um DFA M com k estados. Seja
matemáticos
z ∈ L, com |z| > k. Então, z por ser escrita como z = uvw, com |uv| 6 k, |v| > 0 e
Alfabetos e
linguagens uvi w ∈ L, ∀ i > 0.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(820 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo
Teorema 5.48 (Pumping Lemma para Linguagens Regulares)
Introdução

Fundamentos
Seja L uma linguagem regular que é aceita por um DFA M com k estados. Seja
matemáticos
z ∈ L, com |z| > k. Então, z por ser escrita como z = uvw, com |uv| 6 k, |v| > 0 e
Alfabetos e
linguagens uvi w ∈ L, ∀ i > 0.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
Seja z ∈ L tal que n = |z| > k. O processamento de z em M gera um caminho
Gramáticas regulares de comprimento n em M .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e Este caminho pode ser quebrado em subcaminhos q, r e s, onde r é um ciclo
gramáticas regulares
Pumping Lemma para
linguagens regulares
no diagrama de estados (corolário 5.47).
Linguagens A decomposição de z em u, v e w consiste das cadeias processadas nos
livres de
contexto subcaminhos q, r e s, respectivamente.
Autômatos
com pilha e 
GLC’s

Máquinas de
Turing
(821 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução
Pumping: aceitação de cadeias com repetição de subcadeias.
Fundamentos
matemáticos z = uvw = ababbabab, com u = a, v = bab e w = ab.
Alfabetos e uv2 w = a(bab)2 ab
linguagens

Autômatos b a
finitos

Linguagens e a
gramáticas s0 s1
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares b
Autômatos finitos e
gramáticas regulares
a b
Pumping Lemma para
linguagens regulares

Linguagens
livres de s2 s3
contexto a, b
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(822 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Como provar que uma linguagem L não é regular?


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(823 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Como provar que uma linguagem L não é regular?


linguagens
1 Suponha que L é regular.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(824 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Como provar que uma linguagem L não é regular?


linguagens
1 Suponha que L é regular.
Autômatos
finitos
2 Use o Pumping Lemma para garantir a existência de k, tal que toda cadeia z,
Linguagens e com |z| > k, satisfaz as condições do lema.
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(825 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Como provar que uma linguagem L não é regular?


linguagens
1 Suponha que L é regular.
Autômatos
finitos
2 Use o Pumping Lemma para garantir a existência de k, tal que toda cadeia z,
Linguagens e com |z| > k, satisfaz as condições do lema.
gramáticas 3 Encontre uma cadeia z0 ∈ L, com |z| > k, que não satisfaça as condições do
regulares
Gramáticas regulares lema.
Análise individual das possibilidades de divisão de z0 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(826 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Como provar que uma linguagem L não é regular?


linguagens
1 Suponha que L é regular.
Autômatos
finitos
2 Use o Pumping Lemma para garantir a existência de k, tal que toda cadeia z,
Linguagens e com |z| > k, satisfaz as condições do lema.
gramáticas 3 Encontre uma cadeia z0 ∈ L, com |z| > k, que não satisfaça as condições do
regulares
Gramáticas regulares lema.
Análise individual das possibilidades de divisão de z0 .
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares 4 A existência de z0 contradiz o Pumping Lemma. Logo, L não é regular.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(827 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.49


matemáticos

Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(828 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.49


matemáticos

Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens

Autômatos
finitos
Suponha que L é regular.
Linguagens e L é aceito por algum DFA M .
gramáticas
regulares
Seja k o número de estados de M .
Gramáticas regulares
Autômatos finitos e Pelo Pumping Lemma, toda cadeia z ∈ L, com |z| > k, pode ser decomposta
em subcadeias u, v e w, com |uv| 6 k, v , ε e uvi w ∈ L ∀ i > 0
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(829 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.49


matemáticos

Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens

Autômatos
finitos Considere qualquer cadeia z de comprimento k2 .
Linguagens e O Pumping Lemma requer a decomposição de z em subcadeias u, v e w, com
gramáticas
regulares 0 < |v| 6 k:
Gramáticas regulares |uv2 w| = |uvw| + |v|
= k2 + |v|
Autômatos finitos e
conjuntos regulares

6 k2 + k
Autômatos finitos e
gramáticas regulares

< k2 + 2.k + 1
Pumping Lemma para
linguagens regulares

Linguagens = (k + 1)2 .
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(830 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 5.49


matemáticos

Alfabetos e
L = {z ∈ {a, b}∗ | |z| é um quadrado perfeito}.
linguagens

Como k2 < |uv2 w| < (k + 1)2 , então |uv2 w| não é um quadrado perfeito.
Autômatos
finitos

Linguagens e
gramáticas
Não existe decomposição possível de z que satisfaça as condições do lema.
regulares
Gramáticas regulares
Portanto, L não é regular.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(831 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(832 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas L é aceito por algum DFA M com k estados.
regulares
Gramáticas regulares
Autômatos finitos e
Pelo Pumping Lemma, z = an ∈ L, com n > k e primo, pode ser decomposta
conjuntos regulares
Autômatos finitos e
em z = an = uvw, com v , ε e uvi w ∈ L, ∀ i > 0
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(833 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos

Linguagens e
Se z0 = uvn+1 w ∈ L, então |z0 | = |uvn+1 w| é primo. Mas:
gramáticas
regulares
Gramáticas regulares
|uvn+1 w| = |uvvn w|
Autômatos finitos e
conjuntos regulares = |uvw| + |vn |
Autômatos finitos e
gramáticas regulares = n + n.|v|
= n·(1 + |v|).
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(834 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 5.50
Alfabetos e
linguagens L = {ai | i é primo}.
Autômatos
finitos

Linguagens e
Como |uvn+1 w| = n·(1 + |v|), então |uvn+1 w| não é primo.
gramáticas
regulares Não existe decomposição possível de an que satisfaça as condições do lema.
Gramáticas regulares
Autômatos finitos e Portanto, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(835 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(836 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens

Autômatos Suponha que L é regular.


finitos
L é aceito por algum DFA M com k estados.
Linguagens e
gramáticas
regulares
Seja z = ak bk . Qualquer decomposição de z em uvw, satisfazendo as
Gramáticas regulares condições do Pumping Lemma, deve ter a seguinte forma:
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares u v w
ai a j ak−i− j bk ,
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto onde i + j 6 k e j > 0.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(837 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução
Exemplo 5.51
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens

Autômatos Portanto, uv2 w = ai a j a j ak−i− j bk = ak a j bk .


finitos

Linguagens e
Como uv2 w < L, não existe decomposição possível de z que satisfaça as
gramáticas
regulares
condições do lema.
Gramáticas regulares
Autômatos finitos e Portanto, L não é regular.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(838 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(839 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens

Autômatos
Suponha que L é regular.
finitos
k é o pumping length dado pelo lema.
Linguagens e
gramáticas Seja w = 0k 1k :
regulares
Gramáticas regulares z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i > 0.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(840 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos L = {0n 1n | n > 0}.
Alfabetos e
linguagens

Autômatos
Contradições:
finitos a) v consiste somente de 0’s.
Linguagens e A cadeia uvvw tem mais 0’s do que 1’s e não pertence a L.
gramáticas
regulares b) v consiste somente de 1’s.
Gramáticas regulares
Autômatos finitos e A cadeia uvvw tem mais 1’s do que 0’s e não pertence a L.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
c) v consiste de 0’s e 1’s.
Pumping Lemma para
linguagens regulares
A cadeia uvvw pode ter o mesmo número de 0’s e 1’s, mas com ocorrência de 1’s
Linguagens
antes de 0’s.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(841 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(842 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas k é o pumping length dado pelo lema.
regulares
Gramáticas regulares Seja w = 0k 1k :
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
z ∈ L e |z| > k ⇒ z = uvw e uvi w ∈ L, ∀ i > 0.
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(843 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
L = {z ∈ {0, 1}∗ | w tem igual número de 0’s e 1’s}.
Autômatos
finitos
Contradição????
Linguagens e
gramáticas
a) u = w = ε e v = 0k 1k .
regulares A cadeia uvi w sempre tem o mesmo número de 0’s e 1’s!!!
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
b) Se |uv| 6 k, então v deve consistir só de 0’s.
Autômatos finitos e
gramáticas regulares
A cadeia uvvw tem mais 0’s do que 1’s.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(844 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(845 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos
Suponha que L é regular.
Linguagens e
gramáticas L é aceito por algum DFA M com k estados.
regulares
Gramáticas regulares Pelo Pumping Lemma, toda cadeia z ∈ L, com |z| > k, pode ser decomposta
em z = uvw, com |uv| 6 k, v , ε e uvi w ∈ L, ∀ i > 0
Autômatos finitos e
conjuntos regulares
Autômatos finitos e

Seja z = abk ck . Qualquer decomposição de z em uvw, satisfazendo as


gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
condições do Pumping Lemma, deve ter uma das seguintes formas:
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(846 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos 1 a < v:
Linguagens e
gramáticas
u v w
regulares
Gramáticas regulares
ab b j bk−i− j ck ,
i

onde i + j 6 k − 1 e j > 0.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Portanto, uv0 w = abi bk−i− j ck = abk− j ck .
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(847 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos 2 a ∈ v:
Linguagens e
gramáticas
u v w
regulares
Gramáticas regulares
ε ab bk−i ck ,
i

Autômatos finitos e
conjuntos regulares onde i 6 k − 1.
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
Portanto, uv0 w = bk−i ck .
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(848 – 860 de 1593)
Pumping Lemma
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 5.52
Alfabetos e
linguagens
L = {ai b j c j | i, j > 0}.
Autômatos
finitos
Portanto, uv0 w < L.
Linguagens e
gramáticas
regulares
Logo, não existe decomposição possível de z que satisfaça as condições do
Gramáticas regulares lema.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e Portanto, L não é regular.
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(849 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Teorema 5.53
Autômatos
finitos
Seja M um DFA com k estados:
Linguagens e
gramáticas
regulares
1 L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
Gramáticas regulares
Autômatos finitos e
2 |L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(850 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(851 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos ⇐ Condição óbvia.
Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(852 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
L(M) , ∅ se, e somente se, M aceita uma cadeia z com |z| < k.
linguagens
1
Autômatos
finitos ⇐ Condição óbvia.
Linguagens e ⇒ Seja um DFA M , tal que L(M) , ∅, e z ∈ L(M) tal que |z| é mínimo.
gramáticas
regulares Suponha que |z| > k. Pelo Pumping Lemma, z = uvw e uvi w ∈ L(M), ∀ i > 0.
Gramáticas regulares Logo uv0 w = uw ∈ L(M) contradiz a minimalidade de |z|.
Portanto, |z| < k.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(853 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(854 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos ⇐ Assuma que M aceita uma cadeia z com k 6 |z| < 2k.
Linguagens e Então z = uvw e u, v e w satisfazem as condições do Pumping Lemma.
gramáticas
regulares
Portanto, uvi w ∈ L(M), ∀ i > 0.
Gramáticas regulares Logo, |L(M)| = ∞.
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(855 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Demonstração.
|L(M)| = ∞ se, e somente se, M aceita uma cadeia z com k 6 |z| < 2k.
linguagens
2
Autômatos
finitos ⇒ Assuma que |L(M)| = ∞.
Linguagens e O número de cadeias de cardinalidade menor que k é finito.
gramáticas
regulares
Assim, suponha que z ∈ L(M), com |z| > 2k é de comprimento mínimo.
Gramáticas regulares Pelo Pumping Lemma, z = uvw, |v| 6 k e uv0 w = uw ∈ L(M).
Autômatos finitos e
conjuntos regulares Logo k 6 |uv| < 2k contradiz a minimalidade de |z|.
Autômatos finitos e
gramáticas regulares
Portanto, |z| < 2k.
Pumping Lemma para 
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(856 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Corolário 5.54
Autômatos
finitos Seja M um DFA. Existe um procedimento que determina se:
Linguagens e
gramáticas
1 L(M) é vazia,
regulares
Gramáticas regulares
2 L(M) é finita, ou
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
3 L(M) é infinita.
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(857 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Procedimento para determinar a cardinalidade da linguagem de um DFA


linguagens
M = hΣ, S , s0 , δ, Fi:
Autômatos
finitos Seja k = |S | e j = |Σ|.
Linguagens e ( jk − 1)
gramáticas é o número de cadeias com comprimento menor que k.
regulares ( j − 1)
Gramáticas regulares O teorema 5.53 determina se L(M) = ∅ ao testar cada uma dessas cadeias.
Autômatos finitos e
conjuntos regulares Testar todas as cadeias de comprimento entre k e 2k − 1 responde se a
Autômatos finitos e
gramáticas regulares linguagem é finita ou infinita.
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(858 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Corolário 5.55
matemáticos
Sejam M1 e M2 dois DFA’s. Existe um procedimento que determina se M1 e M2
Alfabetos e
linguagens são equivalentes.
Autômatos
finitos

Linguagens e
gramáticas
regulares
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
Autômatos finitos e
gramáticas regulares
Pumping Lemma para
linguagens regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(859 – 860 de 1593)
Cardinalidade da linguagem de um DFA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Corolário 5.55
matemáticos
Sejam M1 e M2 dois DFA’s. Existe um procedimento que determina se M1 e M2
Alfabetos e
linguagens são equivalentes.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares A linguagem L = (L(M1 ) ∩ L(M2 ) ∪ (L(M1 ) ∩ L(M2 )) é regular.
Gramáticas regulares
Autômatos finitos e
conjuntos regulares
L é vazia se, e somente se, L(M1 ) e L(M2 ) são idênticas.
Autômatos finitos e
gramáticas regulares Pelo corolário 5.54 existe um procedimento para determinar se L é vazia, ou
Pumping Lemma para
linguagens regulares
seja, se L(M1 ) e L(M2 ) são idênticas.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
(860 – 860 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens livres de contexto


finitos

Linguagens e
gramáticas
regulares

Linguagens
Gramáticas livres de contexto
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(861 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Definição 6.1 (GLC)


Fundamentos
matemáticos Quádrupla G = (V, Σ, P, S ), onde:
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(862 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Definição 6.1 (GLC)


Fundamentos
matemáticos Quádrupla G = (V, Σ, P, S ), onde:
Alfabetos e V : Conjunto finito de variáveis.
linguagens
Letras maiúsculas.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(863 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Definição 6.1 (GLC)


Fundamentos
matemáticos Quádrupla G = (V, Σ, P, S ), onde:
Alfabetos e V : Conjunto finito de variáveis.
linguagens
Letras maiúsculas.
Autômatos
finitos Σ : Conjunto finito de símbolos (terminais).
Linguagens e
gramáticas
a, b, c, · · · ∈ Σ.
regulares . . . , u, v, w, x, y, z ∈ (V ∪ Σ)∗ .
Linguagens
livres de
Σ ∩ V = ∅.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(864 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Definição 6.1 (GLC)


Fundamentos
matemáticos Quádrupla G = (V, Σ, P, S ), onde:
Alfabetos e V : Conjunto finito de variáveis.
linguagens
Letras maiúsculas.
Autômatos
finitos Σ : Conjunto finito de símbolos (terminais).
Linguagens e
gramáticas
a, b, c, · · · ∈ Σ.
regulares . . . , u, v, w, x, y, z ∈ (V ∪ Σ)∗ .
Linguagens
livres de
Σ ∩ V = ∅.
contexto
Gramáticas livres de P : Conjunto finito de regras de derivação.
contexto
Derivações A → w ≡ (A, w) ∈ V × (V ∪ Σ)∗ .
A → ε (derivação vazia)
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(865 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Definição 6.1 (GLC)


Fundamentos
matemáticos Quádrupla G = (V, Σ, P, S ), onde:
Alfabetos e V : Conjunto finito de variáveis.
linguagens
Letras maiúsculas.
Autômatos
finitos Σ : Conjunto finito de símbolos (terminais).
Linguagens e
gramáticas
a, b, c, · · · ∈ Σ.
regulares . . . , u, v, w, x, y, z ∈ (V ∪ Σ)∗ .
Linguagens
livres de
Σ ∩ V = ∅.
contexto
Gramáticas livres de P : Conjunto finito de regras de derivação.
contexto
Derivações A → w ≡ (A, w) ∈ V × (V ∪ Σ)∗ .
A → ε (derivação vazia)
Ambiguidade
Formas normais

Autômatos
com pilha e S ∈ V : Variável inicial.
GLC’s

Máquinas de
Turing

(866 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 6.2 (GLC)
Autômatos
finitos Significado da expressão “livre de contexto”???
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(867 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Definição 6.2 (GLC)
Autômatos
finitos Significado da expressão “livre de contexto”???
Linguagens e
gramáticas
Para tais linguagens, cujas produções são da forma A → w, a variável A
regulares deriva w sem depender (livre) de qualquer análise dos símbolos que
Linguagens
livres de
antecedem ou seguem A (contexto).
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(868 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Revisão
Autômatos
finitos A aplicação de A → w à variável A em uAv gera a cadeia uwv.
Linguagens e
gramáticas Se (A → w) ∈ P, então uAv ⇒ uwv.
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(869 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Revisão
Autômatos
finitos A aplicação de A → w à variável A em uAv gera a cadeia uwv.
Linguagens e
gramáticas Se (A → w) ∈ P, então uAv ⇒ uwv.
regulares ∗
Linguagens
u =⇒ v se u = v ou ∃ u1 , u2 , . . . , uk , k ≥ 0 tal que u ⇒ u1 ⇒ u2 ⇒ · · · ⇒ uk ⇒ v.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(870 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Revisão
matemáticos

Alfabetos e
→ : Definição de regra de derivação.
linguagens

Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(871 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Revisão
matemáticos

Alfabetos e
→ : Definição de regra de derivação.
linguagens
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(872 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Revisão
matemáticos

Alfabetos e
→ : Definição de regra de derivação.
linguagens
Regra de derivação pertence ao conjunto V × (V ∪ Σ)∗ .
Autômatos
finitos ⇒ : Aplicação de regra de derivação.
Linguagens e
gramáticas Aplicação transforma uma cadeia em outra e pertence ao conjunto
regulares
(V ∪ Σ)+ × (V ∪ Σ)∗ .
Linguagens +
livres de
contexto
=⇒ : Derivação usando uma ou mais regras de derivação.
n
=⇒ : Derivação de comprimento n:
Gramáticas livres de
contexto
Derivações
n
Ambiguidade
Formas normais
v =⇒ w : w é derivado a partir de v usando n regras de derivação.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(873 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.3
Alfabetos e
linguagens  

 A → 0A1 

Autômatos
G1 = (V = {A, B}, Σ = {0, 1, #}, P, A), onde: P = 
 
A → B
 
finitos 


 B → # 


Linguagens e
gramáticas
regulares

Linguagens Derivação da cadeia 000#111:


livres de
contexto
Gramáticas livres de
contexto A ⇒ 0A1 ⇒ 00A11 ⇒ 000A111 ⇒ 000B111 ⇒ 000#111
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(874 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(875 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(876 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas Recursão: Se u = xAy é derivável a partir de v e A → w ∈ P, então a cadeia
regulares

Linguagens
xwy é derivável a partir de v.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(877 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.4
Alfabetos e
linguagens Seja G = (V, Σ, P, S ) uma GLC e v ∈ (V ∪ Σ)∗ . O conjunto de cadeias
Autômatos deriváveis a partir de v é definido como:
finitos
Base: v é derivável a partir de v.
Linguagens e
gramáticas Recursão: Se u = xAy é derivável a partir de v e A → w ∈ P, então a cadeia
regulares

Linguagens
xwy é derivável a partir de v.
livres de Fecho: As cadeias deriváveis a partir de v são exatamente as cadeias
contexto
Gramáticas livres de
contexto
construídas a partir de v pela aplicação da recursão um número
Derivações
Ambiguidade
finito de vezes.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(878 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:

Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(879 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:

Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.

Sentença: w ∈ Σ∗ tal que existe uma derivação S =⇒ w em G.
regulares

Linguagens
livres de Formas sentenciais que só contém símbolos terminais.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(880 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.5
Alfabetos e
linguagens
Seja G = (V, Σ, P, S ) uma GLC:

Autômatos Forma Sentencial: w ∈ (V ∪ Σ)∗ tal que existe uma derivação S =⇒ w em G.
finitos
Sequências de símbolos deriváveis a partir do símbolo
Linguagens e
gramáticas inicial.

Sentença: w ∈ Σ∗ tal que existe uma derivação S =⇒ w em G.
regulares

Linguagens
livres de Formas sentenciais que só contém símbolos terminais.
contexto ∗
Gramáticas livres de
contexto
Linguagem: L(G) = {w ∈ Σ∗ | S =⇒ w}.
Derivações
Ambiguidade
Conjunto de sentenças geras pela gramática.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(881 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(882 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos
Permite gerar qualquer número de cópias da subcadeia u,
Linguagens e
gramáticas seguido de A e igual número de v’s.
regulares
É necessária uma regra não recursiva para parar o
Linguagens
livres de
processo de derivação.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(883 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.6
Alfabetos e
linguagens Recursão nas regras de derivação de uma GLC G = (V, Σ, P, S ):
Autômatos Recursão Direta: A → uAv.
finitos
Permite gerar qualquer número de cópias da subcadeia u,
Linguagens e
gramáticas seguido de A e igual número de v’s.
regulares
É necessária uma regra não recursiva para parar o
Linguagens
livres de
processo de derivação.
+
Recursão Indireta: A ⇒ w =⇒ uAv, onde A não ocorre em w.
contexto
Gramáticas livres de
contexto +
Derivações Variável Recursiva: A =⇒ uAv.
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(884 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.7


Fundamentos
matemáticos Gramática G que gera a linguagem composta de cadeias com número
Alfabetos e positivo par de a’s:
linguagens

Autômatos
finitos G = (V, Σ, P, S )
Linguagens e
gramáticas
regulares
V = {S , A}
Linguagens
livres de Σ = {a, b}
contexto
S → AA ,
( )
Gramáticas livres de
contexto
P=
Derivações
Ambiguidade
A → AAA | bA | Ab | a
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(885 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.7


Fundamentos
matemáticos S ⇒ AA S ⇒ AA S ⇒ AA S ⇒ AA
Alfabetos e ⇒ aA ⇒ AAAA ⇒ Aa ⇒ aA
linguagens ⇒ aAAA ⇒ aAAA ⇒ AAAa ⇒ aAAA
Autômatos ⇒ abAAA ⇒ abAAA ⇒ AAbAa ⇒ aAAa
finitos
⇒ abaAA ⇒ abaAA ⇒ AAbaa ⇒ abAAa
Linguagens e ⇒ ababAA ⇒ ababAA ⇒ AbAbaa ⇒ abAbAa
gramáticas
regulares ⇒ ababaA ⇒ ababaA ⇒ Ababaa ⇒ ababAa
Linguagens ⇒ ababaa ⇒ ababaa ⇒ ababaa ⇒ ababaa
livres de (esq) (esq) (dir)
contexto
Gramáticas livres de
contexto
Derivações

S → AA ,
Ambiguidade
( )
Formas normais P=
A → AAA | bA | Ab | a
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(886 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exercícios
Autômatos Construir gramática G tal que:
finitos
1 L = {an bm | n ≥ 0 e m ≥ 1}.
Linguagens e
gramáticas 2 L = {ai b j ci | i ≥ 0 e j ≥ 1}.
regulares

Linguagens
3 L = {w | w ∈ {0, 1}+ e não tem 1’s consecutivos}.
livres de
contexto
4 L = {w | w ∈ {0, 1, 2}+ e todos os 0’s sejam consecutivos}.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(887 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Lema 6.8
n
Alfabetos e
linguagens Seja G uma GLC e v =⇒ w uma derivação em G, onde
Autômatos
finitos
v = w1 A1 w2 A2 . . .wk Ak wk+1 ,
Linguagens e
gramáticas
regulares com wi ∈ Σ∗ . Então existem cadeias pi ∈ (Σ ∪ V)∗ tais que:
ti
Linguagens
livres de
1 Ai =⇒ pi ;
contexto 2 w = w1 p1 w2 p2 . . .wk pk wk+1 ; e
Gramáticas livres de
contexto
k
ti = n .
P
Derivações 3
Ambiguidade i=1
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(888 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
0
Base: Consiste de derivações da forma v =⇒ w. Neste caso, w = v e
Alfabetos e
linguagens

Autômatos cada Ai é igual ao correspondente pi . As derivações têm a forma


finitos 0
Linguagens e
Ai =⇒ pi .
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(889 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
0
Base: Consiste de derivações da forma v =⇒ w. Neste caso, w = v e
Alfabetos e
linguagens

Autômatos cada Ai é igual ao correspondente pi . As derivações têm a forma


finitos 0
Linguagens e
Ai =⇒ pi .
gramáticas n
regulares
Hipótese: Suponha que todas as derivações da forma v =⇒ w podem ser
Linguagens
livres de decompostas em derivações a partir de Ai , as variáveis de v, as
contexto
Gramáticas livres de
quais juntas formam uma derivação de w a partir de v de
contexto
Derivações
comprimento n.
Ambiguidade
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(890 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e n+1
linguagens Passo: Seja v =⇒ w uma derivação em G com
Autômatos
finitos
v = w1 A1 w2 A2 . . .wk Ak wk+1 ,
Linguagens e
gramáticas
regulares
com wi ∈ Σ∗ .
Linguagens n
livres de
contexto
Essa derivação pode ser escrita como v =⇒ u =⇒ w. Isto reduz a
Gramáticas livres de
contexto
derivação original a uma derivação de comprimento n, a qual está
Derivações
Ambiguidade
na forma correta (pela aplicação de uma derivação simples e por
Formas normais
hipótese de indução).
Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(891 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e
linguagens
Passo: A derivação v =⇒ u transforma uma das variáveis de v (A j ) com a
Autômatos
regra
finitos
A j → u1 B1 u2 B2 . . .um Bm um+1 ,
Linguagens e
gramáticas
regulares onde cada ui ∈ Σ∗ .
Linguagens
livres de A cadeia u é obtida a partir de v pela substituição de A j pelo lado
contexto
Gramáticas livres de
direito de sua regra de derivação. Neste caso u é escrito como:
contexto
Derivações
Ambiguidade
Formas normais
u = w1 A1 . . .A j−1 w j u1 B1 u2 B2 . . .um Bm um+1 w j+1 A j+1 . . .wk Ak wk+1 .
Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(892 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e Passo: Como w é derivável a partir de u usando n aplicações de regras de
linguagens
derivação. A hipótese indutiva garante que existem cadeias
p1 , . . . , p j−1 q1 , . . . , qm e p j+1 , . . . , pk que satisfazem:
Autômatos
finitos
ti
Linguagens e
gramáticas
1 Ai =⇒ pi para i = 1, . . . , j − 1, j + 1, . . . , k;
si
regulares
Bi =⇒ qi para i = 1, . . . , m;
Linguagens
livres de
2 w = w1 p1 w2 . . .p j−1 w j u1 q1 u2 . . .um qm um+1 w j+1 p j+1 . . .wk pk wk+1 ;
contexto j−1 k m
ti + ti + si = n.
P P P
Gramáticas livres de 3
contexto
Derivações
i=1 i= j+1 i=1
Ambiguidade
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(893 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Demonstração.
Fundamentos
matemáticos Indução no comprimento da derivação de w a partir de v:
Alfabetos e
linguagens
Passo: Combinando-se a regra A j → u1 B1 u2 B2 . . .um Bm um+1 com as

Autômatos derivações Bi =⇒ qi , obtem-se a derivação
finitos

A j =⇒ u1 q1 u2 q2 . . .um qm um+1 = p j
Linguagens e
gramáticas
regulares

Linguagens
livres de
cujo comprimento é a soma dos comprimentos das derivações a
contexto
Gramáticas livres de
partir dos Bi ’s mais 1.
contexto

Derivações
Ambiguidade
As derivações Ai =⇒ pi , i = 1, . . . , k, fornecem a decomposição
Formas normais
desejada da derivação de w a partir de v.
Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(894 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Interpretação do Lema 6.8:


linguagens
Flexibilidade e modularidade das derivações em GLC’s.
Autômatos
finitos Qualquer derivação complexa pode ser quebrada em subderivações das
Linguagens e variáveis que a constitue.
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(895 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Interpretação do Lema 6.8:


linguagens
Flexibilidade e modularidade das derivações em GLC’s.
Autômatos
finitos Qualquer derivação complexa pode ser quebrada em subderivações das
Linguagens e variáveis que a constitue.
gramáticas
regulares
Modularidade explorada no projeto de linguagens complexas:
Linguagens
livres de Uso de variáveis para definir subconjuntos menores da linguagem.
contexto
Gramáticas livres de
Combinação das sublinguagens através de regras adicionais na gramática.
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(896 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(897 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(898 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(899 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(900 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações B → b : remove a variável B.
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(901 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.9
matemáticos
V = {S , B}



Alfabetos e
 Σ = {a,


( b}
linguagens

G = (V, Σ, P, S ), onde: 

)
Autômatos  S → aS a | aBa
 P =

finitos


B → bB | b

Linguagens e
gramáticas
regulares S → aS a : gera igual número de a’s em cada lado da cadeia.
Linguagens
livres de
S → aBa : elimina recursão e garante presença de a na cadeia.
contexto
Gramáticas livres de
B → bB : gera qualquer número de b’s.
contexto
Derivações B → b : remove a variável B.
Ambiguidade
Formas normais
L(G) = {an bm an | n > 0, m > 0}.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(902 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0, m > 0}.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(903 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0, m > 0}.
linguagens
= {S , A}

Autômatos

 V
 Σ = {a,


finitos
( b, c, d}

G = (V, Σ, P, S ), onde: 

S → aS dd | A ,
Linguagens e
)

gramáticas
=

 P


regulares
A → bAc | bc

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(904 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.10
Alfabetos e L(G) = {an bm cm d2n | n ≥ 0,
m > 0}.
linguagens
= {S , A}

Autômatos

 V
 Σ
= {a,


finitos
( b, c, d}

G = (V, Σ, P, S ), onde: 

S → aS dd | A ,
Linguagens e
)

gramáticas
=

 P


regulares
A → bAc | bc

Linguagens
livres de Derivações da variável S gera a’s e d’s.
contexto
Gramáticas livres de
contexto
Derivações da variável A gera b’s e c’s.
Derivações
Ambiguidade A → bc : elimina recursão e garante presença de bc na cadeia.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(905 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.11
Autômatos L(G) = {w ∈ {a, b}∗ | w = wR }.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(906 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.11
Autômatos L(G) = {w ∈ {a, b}∗ | w = wR }.
finitos
V = {S , A}

Linguagens e


 Σ = {a,


( b}
gramáticas 
G = (V, Σ, P, S ), onde: 

regulares
ε ,
)
 S → a | b |
 P =
Linguagens



livres de
S → aS a | bS b

contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(907 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 6.12
Autômatos
finitos L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(908 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Exemplo 6.12
Autômatos
finitos L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
V = {S }

Linguagens e 
gramáticas

G = (V, Σ, P, S ), onde:  Σ = {a, b}


regulares

 P = {S → aS b | aS bb | ε}

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(909 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(910 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos 

G1 = (V1 , Σ, P1 , S ), onde:   S → AB ,

  
Linguagens e

 

= A → aA | a ,

 
gramáticas P
  
regulares


 1  

  B → bB | ε

 


Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(911 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.13
matemáticos
Linguagem gerada pela expressão regular a+ b∗ :
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos 

G1 = (V1 , Σ, P1 , S ), onde:  S → AB , 

  
Linguagens e

 
= ,
  
→ |

gramáticas P A aA a
  
regulares


 1  

  B → bB | ε 

 

Linguagens
livres de
V2 = {S , B}

contexto 

 Σ = {a,
Gramáticas livres de


( b}

G2 = (V2 , Σ, P2 , S ), onde: 
contexto

S → aS | aB ,
Derivações
)
=


Ambiguidade  P2
B → bB | ε


Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(912 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(913 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens

V1 = {S , A, B}

Autômatos 

finitos
Σ = {a, b}





G1 = (V1 , Σ, P1 , S ), onde:  S → aS | bA , 
Linguagens e

  
gramáticas

 
P1 =  A → aA | bB , 

 
 

regulares 



Linguagens

  B → aB | ε

 


livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(914 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução
Exemplo 6.14
Fundamentos
matemáticos Linguagem gerada pela expressão regular a∗ ba∗ ba∗ (cadeias que contêm dois
Alfabetos e b’s):
linguagens

V1 = {S , A, B}

Autômatos 

finitos
Σ = {a, b}





G1 = (V1 , Σ, P1 , S ), onde:  S → aS | bA , 
Linguagens e

  
gramáticas

 
P1 =  A → aA | bB , 

 
 

regulares 



Linguagens

  B → aB | ε

 


livres de
contexto
V2 = {S , A}

Gramáticas livres de


 Σ = {a,
contexto


( b}

G2 = (V2 , Σ, P2 , S ), onde: 
Derivações

S → AbAbA ,
Ambiguidade
)
 P2 =


Formas normais 
A → aA | ε


Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(915 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Exemplo 6.15
Introdução

Fundamentos Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(916 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Exemplo 6.15
Introdução

Fundamentos Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :


matemáticos
V1 = {S , A, B, C, D}

Alfabetos e 

Σ = {a, b}
linguagens





S → aS | bA ,
Autômatos


  
  
finitos   
G1 = (V1 , Σ, P1 , S ), onde:  A → bA | aB | B ,

 
 


 

Linguagens e
 
= B → aB | bC ,

  
P
  
gramáticas 
 1  

→ bC | D ,
regulares  
 








 C 



Linguagens 
  D → aD | ε
 

livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(917 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Exemplo 6.15
Introdução

Fundamentos Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :


matemáticos
V1 = {S , A, B, C, D}

Alfabetos e 

Σ = {a, b}
linguagens





S → aS | bA ,
Autômatos


  
  
finitos   
G1 = (V1 , Σ, P1 , S ), onde:  A → bA | aB | B ,

 
 


 

Linguagens e
 
= B → aB | bC ,

  
P
  
gramáticas 
 1  

→ bC | D ,
regulares  
 








 C 



Linguagens 
  D → aD | ε
 

livres de
contexto
= {S , A, B}

Gramáticas livres de
contexto

 V2
Σ = {a, b}


Derivações 

Ambiguidade

G2 = (V2 , Σ, P2 , S ), onde:  S → ABABA ,

  
Formas normais 
 

=  A → aA | ε ,

  
P2
  
Autômatos 
 
com pilha e

  
  B → bB | b
 

GLC’s

Máquinas de
Turing

(918 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(919 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos 

G1 = (V1 , Σ, P1 , S ), onde:   S → aS | S a | bA ,

  
Linguagens e

 

= A → bA | Ab | Bb ,

 
gramáticas P
  
regulares


 1  

  B → aB | ε

 


Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(920 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.16
matemáticos
Linguagem gerada pela expressão regular a∗ b+ a∗ b+ a∗ :
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos 

G1 = (V1 , Σ, P1 , S ), onde:  S → aS | S a | bA , 

  
Linguagens e

 
= ,
  
→ | |

gramáticas P A bA Ab Bb
  
regulares


 1  

  B → aB | ε

 


Linguagens
livres de
V2 = {S , A}

contexto 

 Σ = {a,
Gramáticas livres de


( b}

G2 = (V2 , Σ, P2 , S ), onde: 
contexto

S → aS | bAbA ,
Derivações
)
=


Ambiguidade  P2
A → bA | Aa | ε


Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(921 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.17


matemáticos

Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(922 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.17


matemáticos

Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens
V = {S , O}

Autômatos 

 Σ = {a,

finitos

( b}

G = (V, Σ, P, S ), onde: 

S → aO | bO | ε ,
Linguagens e
)
 P =


gramáticas 

O → aS | bS
regulares

Linguagens
livres de S : formas sentenciais com número par de terminais.
contexto
Gramáticas livres de
O : formas sentenciais com número ímpar de terminais.
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(923 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.17


matemáticos

Alfabetos e Linguagem cujas cadeias são de comprimento par (alfabeto {a, b}):
linguagens
V = {S , O}

Autômatos 

 Σ = {a,

finitos

( b}

G = (V, Σ, P, S ), onde: 

S → aO | bO | ε ,
Linguagens e
)
 P =


gramáticas 

O → aS | bS
regulares

Linguagens
livres de S : formas sentenciais com número par de terminais.
contexto
Gramáticas livres de
O : formas sentenciais com número ímpar de terminais.
contexto
Derivações
Exercício: Linguagens, sobre o alfabeto {a, b}, cujas cadeias são de
Ambiguidade comprimento múltiplo de 3, 4, 5, . . . .
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(924 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(925 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos


G1 = (V1 , Σ, P1 , S ), onde:  S → aS | bA | ε , 

  
Linguagens e

 
= ,
  
→ | |

P A aA bS bB
gramáticas   
regulares


 1  

  B → aB | ε

 


Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(926 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.18
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contém número par de b’s:
Alfabetos e

V1 = {S , A, B}
linguagens 


Autômatos
Σ = {a, b}



finitos


G1 = (V1 , Σ, P1 , S ), onde:  S → aS | bA | ε , 

  
Linguagens e

 
= ,
  
→ | |

P A aA bS bB
gramáticas   
regulares


 1  

  B → aB | ε

 


Linguagens
livres de
V2 = {S , A}

contexto 

 Σ = {a,
Gramáticas livres de


( b}

G2 = (V2 , Σ, P2 , S ), onde: 
contexto

S → aS | bA | ε ,
Derivações
)
=


Ambiguidade 
 P2
A → aA | bS
Formas normais


Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(927 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.19


Fundamentos
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contêm número par de a’s e de b’s:
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(928 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.19


Fundamentos
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contêm número par de a’s e de b’s:
Alfabetos e
linguagens Variável Significado
Autômatos
S Nr. par de a’s e nr. par de b’s
finitos A Nr. par de a’s e nr. ímpar de b’s
B Nr. ímpar de a’s e nr. par de b’s
Linguagens e
gramáticas C Nr. ímpar de a’s e nr. ímpar de b’s
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(929 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.19


Fundamentos
matemáticos
Linguagem, sobre {a, b}, cujas cadeias contêm número par de a’s e de b’s:
Alfabetos e
linguagens Variável Significado
Autômatos
S Nr. par de a’s e nr. par de b’s
finitos A Nr. par de a’s e nr. ímpar de b’s
B Nr. ímpar de a’s e nr. par de b’s
Linguagens e
gramáticas C Nr. ímpar de a’s e nr. ímpar de b’s
regulares

= {S , A, B, C}
Linguagens

livres de

 V
Σ =

{a,
 b}

contexto



S → aB | bA | ε ,
Gramáticas livres de


 
G = (V, Σ, P, S ), onde: 
contexto 
 
 

 A → aC | bS ,
Derivações


 


=
Ambiguidade

  
P
 
B → aS | bC ,
Formas normais


  

 

 


  
Autômatos 
  C → aA | bB
 

com pilha e
GLC’s

Máquinas de
Turing

(930 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.20


matemáticos

Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(931 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.20


matemáticos

Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens
V = {S , A, B}

Autômatos


Σ = {a, b, c}


finitos 


G = (V, Σ, P, S ), onde:  S → bS | cS | aA | ε , 

  
Linguagens e 
 
gramáticas
P =  ε ,
  
→ | | |

A aA cS bB
  
regulares 

 

  B → aA | bS | ε

 


Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(932 – 933 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.20


matemáticos

Alfabetos e
Linguagem, sobre {a, b, c}, cujas cadeias não contêm abc:
linguagens
V = {S , A, B}

Autômatos


Σ = {a, b, c}


finitos 


G = (V, Σ, P, S ), onde:  S → bS | cS | aA | ε , 

  
Linguagens e 
 
gramáticas
P =  ε ,
  
→ | | |

A aA cS bB
  
regulares 

 

  B → aA | bS | ε

 


Linguagens
livres de
contexto
Gramáticas livres de
Máximo de uma variável em cada forma sentencial:
contexto
Derivações A: ocorre quando o terminal prévio é um a;
Ambiguidade
Formas normais
B: ocorre somente precedida por ab (não pode gerar um c).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(933 – 933 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens livres de contexto


finitos

Linguagens e
gramáticas
regulares

Linguagens
Derivações
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(934 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos

Seja G = (V, Σ, P, S ) uma gramática e L uma linguagem.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(935 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos

Seja G = (V, Σ, P, S ) uma gramática e L uma linguagem.


matemáticos

Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(936 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos

Seja G = (V, Σ, P, S ) uma gramática e L uma linguagem.


matemáticos

Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos

Linguagens e
gramáticas
regulares
2 L(G) ⊆ L.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(937 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos

Seja G = (V, Σ, P, S ) uma gramática e L uma linguagem.


matemáticos

Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos ∗

Linguagens e
Se w ∈ L então S =⇒ w.
gramáticas Toda cadeia da linguagem L é derivável na gramática G.
regulares
2 L(G) ⊆ L.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(938 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos

Seja G = (V, Σ, P, S ) uma gramática e L uma linguagem.


matemáticos

Alfabetos e
linguagens Como provar que L(G) = L?
Autômatos 1 L ⊆ L(G).
finitos ∗

Linguagens e
Se w ∈ L então S =⇒ w.
gramáticas Toda cadeia da linguagem L é derivável na gramática G.
regulares
2 L(G) ⊆ L.
Linguagens ∗
livres de Se S =⇒ w então w ∈ L.
contexto
Gramáticas livres de
Toda cadeia de terminais derivável na gramática G deve ter a forma especificada
contexto
Derivações
pela linguagem L.
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(939 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo
Exemplo 6.21
V = {S , B}

Introdução


 Σ = {a,


( b, c}

G = (V, Σ, P, S ), onde: 
Fundamentos

ε ,
)
matemáticos  S → abS cB |
 P = B → bB | b



Alfabetos e 
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(940 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo
Exemplo 6.21
V = {S , B}

Introdução


 Σ = {a,


( b, c}

G = (V, Σ, P, S ), onde: 
Fundamentos

ε ,
)
matemáticos  S → abS cB |
 P = B → bB | b



Alfabetos e 
linguagens

Autômatos L(G) = {(ab)n (cbmn )n | n ≥ 0, mn > 0}.


finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(941 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo
Exemplo 6.21
V = {S , B}

Introdução


 Σ = {a,


( b, c}

G = (V, Σ, P, S ), onde: 
Fundamentos

ε ,
)
matemáticos  S → abS cB |
 P = B → bB | b



Alfabetos e 
linguagens

Autômatos L(G) = {(ab)n (cbmn )n | n ≥ 0, mn > 0}.


finitos
mn indica que número de b’s em cada ocorrência da variável B pode ser
Linguagens e
gramáticas diferente:
regulares

Linguagens
livres de
contexto S ⇒ abS cB
Gramáticas livres de
contexto ⇒ ababS cBcB
Derivações
Ambiguidade
⇒ ababcBcB
Formas normais
⇒ ababcbcB
Autômatos ⇒ ababcbcbB
com pilha e
GLC’s ⇒ ababcbcbb
Máquinas de
Turing

(942 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.22


Fundamentos
matemáticos
Dada a gramática G, definida por {S → aS a | bS b | ε}, então
Alfabetos e
L(G) = {xxR | x ∈ {a, b}∗ }.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(943 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.22


Fundamentos
matemáticos
Dada a gramática G, definida por {S → aS a | bS b | ε}, então
Alfabetos e
L(G) = {xxR | x ∈ {a, b}∗ }.
linguagens

Autômatos
finitos Lema 6.23

Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(944 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.22


Fundamentos
matemáticos
Dada a gramática G, definida por {S → aS a | bS b | ε}, então
Alfabetos e
L(G) = {xxR | x ∈ {a, b}∗ }.
linguagens

Autômatos
finitos Lema 6.23

Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G

Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G

contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(945 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.22


Fundamentos
matemáticos
Dada a gramática G, definida por {S → aS a | bS b | ε}, então
Alfabetos e
L(G) = {xxR | x ∈ {a, b}∗ }.
linguagens

Autômatos
finitos Lema 6.23

Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G

Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G

contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações ∗
Ambiguidade 3 Se S =⇒ α, então ou α = xxR ou α = xS xR , para algum x ∈ {a, b}∗ .
Formas normais G

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(946 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução Exemplo 6.22


Fundamentos
matemáticos
Dada a gramática G, definida por {S → aS a | bS b | ε}, então
Alfabetos e
L(G) = {xxR | x ∈ {a, b}∗ }.
linguagens

Autômatos
finitos Lema 6.23

Linguagens e
gramáticas S =⇒ z se e somente se z = xxR , para algum x ∈ {a, b}∗ .
regulares G

Linguagens 1 Se S =⇒ z, então z = xxR , para algum x ∈ {a, b}∗ .
livres de G

contexto
Gramáticas livres de
2 Se z = xxR para algum x ∈ {a, b}∗ , então S =⇒ z.
G
contexto
Derivações ∗
Ambiguidade 3 Se S =⇒ α, então ou α = xxR ou α = xS xR , para algum x ∈ {a, b}∗ .
Formas normais G

Autômatos Seja X = {xxR | x ∈ {a, b}∗ } ∪ {xS xR | x ∈ {a, b}∗ }. Se S =⇒ α, então α ∈ X .
com pilha e G
GLC’s

Máquinas de
Turing

(947 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações

Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(948 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:

Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações

Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(949 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:

Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e n
gramáticas H.I.: Propriedade vale para n: Se S =⇒ α, então α ∈ X .
regulares G

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações

Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(950 – 984 de 1593)


Gramática Livre de Contexto
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Demonstração.
Alfabetos e
linguagens Prova por indução no número n de passos da derivação de α:

Base: Para n = 0, tem-se S =⇒ S e S = εS εR .
Autômatos
finitos
G
Linguagens e n
gramáticas H.I.: Propriedade vale para n: Se S =⇒ α, então α ∈ X .
regulares G

Linguagens
Passo: Propriedade vale para n + 1:
livres de
contexto
Exercício!
Gramáticas livres de
contexto
Derivações

Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(951 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Exemplo 6.24
Introdução

S → AAS B | AAB ,

Fundamentos 

matemáticos
L = {a2n b4n | n > 0} e G :  A → a,


Alfabetos e 

linguagens
 B → bbbb
Autômatos
finitos

Linguagens e {a2n b4n | n > 0} ⊆ L(G)


gramáticas
regulares Opção 1: Construir uma derivação para cada cadeia de L.
Linguagens
livres de L contém um número infinito de cadeias!!!
contexto
Gramáticas livres de
contexto
Opção 2: Construir um esquema de derivação:
Derivações
Ambiguidade
Padrão que pode ser seguido para construir uma derivação de
Formas normais
qualquer cadeia em L.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(952 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Exemplo 6.24
Introdução

S → AAS B | AAB ,

Fundamentos 

matemáticos
L = {a2n b4n | n > 0} e G :  A → a,


Alfabetos e 

linguagens
 B → bbbb
Autômatos
finitos

Linguagens e {a2n b4n | n > 0} ⊆ L(G)


gramáticas
regulares
Derivação Regra usada
Linguagens n−1
livres de S =⇒ n−1
(AA) S B n−1
S → AAS B
contexto =⇒ (AA)n Bn S → AAB
Gramáticas livres de
2n
contexto
Derivações
=⇒ (aa)n Bn A→a
n
Ambiguidade
Formas normais
=⇒ (aa)n (bbbb)n B → bbbb
= (a)2n (b)4n
Autômatos
com pilha e = a2n b4n
GLC’s

Máquinas de
Turing

(953 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
A derivação de uma cadeia é resultado da aplicação de um número finito de
Linguagens
produções.
livres de
contexto
Pode indicar que a prova por indução é adequada neste caso.
Gramáticas livres de O que exatamente precisa ser provado? Relação entre a’s e b’s nas cadeias de
contexto
Derivações terminais deriváveis em G.
Ambiguidade
Formas normais n x (u): número de ocorrências do símbolo x na cadeia u.
Autômatos
com pilha e
2·na (u) = nb (u)
GLC’s

Máquinas de
Turing

(954 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
2·na (u) = nb (u)
Linguagens
Relação não válida para qualquer cadeia derivável em G.
livres de Ex.: S =⇒ AAS B =⇒ aAS B.
contexto
Gramáticas livres de
contexto
Derivações
Qual a relação entre terminais e não terminais?
Ambiguidade
Formas normais
nA (u): Nr. de a’s que a variável A gera.
Autômatos
nB (u): Nr. de b’s que a variável B gera.
com pilha e
GLC’s

Máquinas de
Turing

(955 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
1 2·(na (u) + nA (u)) = nb (u) + 4·nB (u).
Linguagens 2 na (u) + nA (u) > 1.
livres de
contexto
Gramáticas livres de
3 Os a’s e A’s numa forma sentencial precedem o S que precede os b’s e B’s.
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(956 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Objetivo: provar que essas relações são válidas para qualquer cadeia
Linguagens
derivável a partir de S .
livres de
contexto
Gramáticas livres de
Indução no comprimento da derivação.
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(957 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Base: Todas as cadeias que podem ser obtidas a partir de S com a aplicação de
Linguagens
apenas uma regra de derivação.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(958 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Hipótese Indutiva: Relações são válidas para todas as cadeias deriváveis com no
Linguagens
máximo n aplicações de regras de derivação.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(959 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Passo Indutivo: w é uma cadeia derivável a partir de S em n + 1 passos.
n+1 n
Linguagens S =⇒ w ≡ S =⇒ u =⇒ w.
livres de
contexto Para todo v ∈ (V ∪ Σ)∗ :
j(v) = 2·(na (v) + nA (v)) e
Gramáticas livres de
contexto

k(v) = nb (v) + 4·nB (v).


Derivações
Ambiguidade
Formas normais
j(u)
Autômatos
Por hipótese de indução, j(u) = k(u) e 2 > 1.
com pilha e
GLC’s

Máquinas de
Turing

(960 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Passo Indutivo: Efeito de uma regra adicional numa variável da cadeia u:
Linguagens
livres de Regra j(w) k(w) j(w)/2
contexto S → AAS B j(u) + 4 k(u) + 4 j(u)/2 + 2
Gramáticas livres de
contexto
S → AAB j(u) + 4 k(u) + 4 j(u)/2 + 2
Derivações A→a j(u) k(u) j(u)/2
Ambiguidade
B → bbbb j(u) k(u) j(u)/2
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(961 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Passo Indutivo: Como j(u) = k(u), então j(w) = k(w).
Linguagens
j(w)/2 > 1 segue da hipótese indutiva de que j(u)/2 > 1.
livres de
contexto
Ordem dos símbolos é preservada: uma regra de derivação
Gramáticas livres de
contexto
troca um S por uma sequência de variáveis na ordem
Derivações
Ambiguidade
desejada ou uma variável por terminais correspondentes.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(962 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução 

 S → AAS B | AAB
Fundamentos
L = {a2n b4n | n > 0} e G :  A → a,


matemáticos


 B → bbbb
Alfabetos e
linguagens

Autômatos

L(G) ⊆ {a2n b4n | n > 0}


finitos

Linguagens e
gramáticas
regulares
Passo Indutivo: Relações são válidas para qualquer cadeia derivável em G.
Linguagens
Como não existe variáveis numa cadeia w ∈ L(G), as três
livres de
contexto
condições implicam que L(G) ⊆ {a2n b4n | n > 0}.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(963 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(964 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos

Alfabetos e
linguagens

Autômatos {an bn | n > 0} ⊆ L(G)


finitos

Linguagens e Derivação Regra usada


gramáticas
n−1
regulares
S =⇒ an−1 S bn−1 S → aS b
Linguagens
livres de =⇒ an bn S → ab
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(965 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos
Exemplo 6.25
L = {an bn | n > 0} e G : {S → aS b | ab}
matemáticos

Alfabetos e
linguagens

Autômatos {an bn | n > 0} ⊆ L(G)


finitos

Linguagens e Derivação Regra usada


gramáticas
n−1
regulares
S =⇒ an−1 S bn−1 S → aS b
Linguagens
livres de =⇒ an bn S → ab
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
L(G) ⊆ {an bn | n > 0}
Formas normais
Exercício.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(966 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.26
Autômatos
finitos
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Linguagens e 
 

gramáticas 
regulares

 C → aC | ε
 


Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(967 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo
S → aS | bB | ε ,
 

 

L = a (a ba ba ) e G :  B → aB | bS | bC ,
Introdução ∗ ∗ ∗ ∗ ∗

 

 

Fundamentos  C → aC | ε
 

matemáticos

Alfabetos e
linguagens

Autômatos
a∗ (a∗ ba∗ ba∗ )∗ ⊆ L(G)
finitos
Uma cadeia em a∗ (a∗ ba∗ ba∗ )∗ tem a forma
Linguagens e
gramáticas
regulares
an1 ban2 ban3 . . .an2k ban2k+1 , k ≥ 0.
Linguagens
livres de
contexto Qualquer cadeia em a∗ pode ser derivada usando as regras S → aS e S → ε.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(968 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo
S → aS | bB | ε ,
 

 

L = a (a ba ba ) e G :  B → aB | bS | bC ,
Introdução ∗ ∗ ∗ ∗ ∗

 

 

Fundamentos  C → aC | ε
 

matemáticos

Alfabetos e
linguagens

Autômatos
a∗ (a∗ ba∗ ba∗ )∗ ⊆ L(G)
finitos
Derivação Regra usada
Linguagens e n1
gramáticas S =⇒ an1 S S → aS
regulares =⇒ an1 bB S → bB
n2
Linguagens =⇒ an1 ban2 B B → aB
livres de
contexto
=⇒ an1 ban2 bS B → bS
Gramáticas livres de ..
contexto
.
Derivações n2k
Ambiguidade =⇒ an1 ban2 ban3 . . .an2k B B → aB
Formas normais
=⇒ an1 ban2 ban3 . . .an2k bC B → bC
n2k+1
Autômatos
com pilha e
=⇒ an1 ban2 ban3 . . .an2k ban2k+1 C C → aC
n2k+1
GLC’s =⇒ an1 ban2 ban3 . . .an2k ban2k+1 C→ε
Máquinas de
Turing

(969 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Fundamentos

 

matemáticos  

 C → aC | ε
 

Alfabetos e
linguagens

Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
gramáticas L contém cadeias com número par de b’s.
regulares

Linguagens
nb (u) + nB (u) é par para toda cadeia u derivável a partir de S .
livres de n x (u): número de ocorrências do símbolo x na cadeia u.
contexto
Gramáticas livres de
contexto Prova por indução no comprimento das derivações.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(970 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Fundamentos

 

matemáticos  

 C → aC | ε
 

Alfabetos e
linguagens

Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
S =⇒ aS

gramáticas 
regulares

S =⇒ bB

Base: Derivações de comprimento um: 

Linguagens 
livres de
 S =⇒ ε

contexto
Gramáticas livres de
contexto
nb (u) + nB (u) é par para todas essas cadeias.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(971 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Fundamentos

 

matemáticos  

 C → aC | ε
 

Alfabetos e
linguagens

Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Hipótese Indutiva: nb (u) + nB (u) é par para as cadeias u que podem ser derivadas
Linguagens e
gramáticas
regulares
a partir de S com a aplicação de n regras de derivação.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(972 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Fundamentos

 

matemáticos  

 C → aC | ε
 

Alfabetos e
linguagens

Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
w é uma cadeia derivável a partir de S em n + 1 passos.
Linguagens e
gramáticas Passo Indutivo:
regulares n+1 n

Linguagens
S =⇒ w ≡ S =⇒ u =⇒ w.
livres de
contexto Por hipótese de indução nb (u) + nB (u) é par.
Gramáticas livres de
contexto Aplicação de uma regra de derivação a uma variável de u não
Derivações
Ambiguidade muda a paridade!
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(973 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
S → aS | bB | ε ,
 

 

L = a∗ (a∗ ba∗ ba∗ )∗ e G :  B → aB | bS | bC ,
Fundamentos

 

matemáticos  

 C → aC | ε
 

Alfabetos e
linguagens

Autômatos
finitos L(G) ⊆ L(a∗ (a∗ ba∗ ba∗ )∗ )
Linguagens e
gramáticas Passo Indutivo:
regulares Regra nb (w) + nB (w)
Linguagens
S → aS nb (u) + nB (u)
livres de S → bB nb (u) + nB (u) + 2
contexto S →ε nb (u) + nB (u)
nb (u) + nB (u)
Gramáticas livres de
contexto B → aB
Derivações B → bS nb (u) + nB (u)
nb (u) + nB (u)
Ambiguidade
Formas normais
B → bC
C → aC nb (u) + nB (u)
Autômatos
com pilha e
C→ε nb (u) + nB (u)
GLC’s

Máquinas de
Turing

(974 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(975 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
na (u) ≤ nb (u)
livres de
contexto
Número de b’s numa cadeia de terminais depende do número de b’s e de B’s
Gramáticas livres de
contexto
nos passos intermediários da derivação.
Derivações
Ambiguidade Cada B gera dois b’s e um A gera no máximo um a.
Formas normais

Autômatos
na (u) + nA (u) ≤ nb (u) + 2·nB (u), para toda forma sentencial u em G.
com pilha e
GLC’s
Prova por indução no comprimento da derivação.
Máquinas de
Turing

(976 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
na (u) ≤ nb (u)
livres de
contexto
Base:
Gramáticas livres de
Regra na (u) + nA (u) nb (u) + 2·nB (u)
contexto
Derivações
S =⇒ aAS B 2 2
Ambiguidade S =⇒ ε 0 0
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(977 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
na (u) ≤ nb (u)
livres de
contexto
Hipótese Indutiva: na (u) + nA (u) ≤ nb (u) + 2·nB (u), para toda cadeia u derivável a
Gramáticas livres de
contexto
partir de S em no máximo n passos.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(978 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
na (u) ≤ nb (u)
livres de
contexto
Passo Indutivo: w é uma cadeia derivável a partir de S em n + 1 passos.
n+1 n
S =⇒ w ≡ S =⇒ u =⇒ w.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
Por hipótese de indução na (u) + nA (u) ≤ nb (u) + 2·nB (u).
Autômatos Aplicação de uma regra de derivação a uma variável de u
com pilha e
GLC’s
preserva a desigualdade!
Máquinas de
Turing

(979 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.27
Fundamentos Número de a’s nas cadeias de L(G) é menor ou igual ao de b’s:
matemáticos

S → aAS B | ε ,
Alfabetos e
 
linguagens

 

A → ad | d ,
 
G: 
 
Autômatos  

finitos

 B → bb 

Linguagens e
gramáticas
regulares

Linguagens
na (u) ≤ nb (u)
livres de
contexto
Passo Indutivo:
Gramáticas livres de
Regra na (w) + nA (w) nb (w) + 2·nB (w)
contexto
S =⇒ aAS B na (u) + nA (u) + 2 nb (u) + 2·nB (u) + 2
S =⇒ ε na (u) + nA (u) nb (u) + 2·nB (u)
Derivações
Ambiguidade
Formas normais B =⇒ bb na (u) + nA (u) nb (u) + 2·nB (u)
Autômatos A =⇒ ad na (u) + nA (u) nb (u) + 2·nB (u)
com pilha e A =⇒ d na (u) + nA (u) − 1 nb (u) + 2·nB (u)
GLC’s

Máquinas de
Turing

(980 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.28
Fundamentos

S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(981 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.28
Fundamentos

S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos

Linguagens e L(G) ⊆ {an bm cm d2n | n ≥ 0, m > 0}


gramáticas
regulares Numa derivação, S é removido pela aplicação da regra S → A.
Linguagens
livres de Presença de um A garante que um b será gerado.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(982 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.28
Fundamentos

S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos

Linguagens e L(G) ⊆ {an bm cm d2n | n ≥ 0, m > 0}


gramáticas
regulares Para toda forma sentencial u de G:
Linguagens
livres de
contexto 1 2·na (u) = nd (u)
Gramáticas livres de
contexto
Derivações
2 nb (u) = nc (u)
nS (u) + nA (u) + nb (u) > 0
Ambiguidade
Formas normais
3

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(983 – 984 de 1593)


Linguagens e Derivações
LFA 2018/2

H. Longo

Introdução
Exemplo 6.28
Fundamentos

S → aS dd | A ,
matemáticos
( )
Alfabetos e L= {an bm cm d2n | n ≥ 0, m > 0} e G :
linguagens A → bAc | bc
Autômatos
finitos

Linguagens e L(G) ⊆ {an bm cm d2n | n ≥ 0, m > 0}


gramáticas
regulares Essas igualdades garantem a correta relação numérica dos símbolos
Linguagens terminais.
livres de
contexto
Gramáticas livres de
Descrição da linguagem deve garantir que:
contexto
Derivações
Os a’s (se ocorrerem) devem preceder os b’s.
Ambiguidade
Os b’s (se ocorrerem) devem preceder os c’s.
Formas normais
Os c’s (se ocorrerem) devem preceder os d’s.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(984 – 984 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens livres de contexto


finitos

Linguagens e
gramáticas
regulares

Linguagens
Ambiguidade
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(985 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(986 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Definição 6.30


finitos

Linguagens e
Derivação mais à esquerda: a variável mais à esquerda é a única a ser
gramáticas
regulares
expandida a cada passo.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(987 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
⇐= Claramente, se existe uma derivação mais à esquerda de w a partir de S ,
gramáticas
regulares
então w ∈ L(G).

Linguagens =⇒ w ∈ L(G) ⇒ S =⇒ w (derivação mais à esquerda).
livres de L
contexto
Gramáticas livres de
contexto

Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(988 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Se w ∈ L(G), então existe pelo menos uma derivação de w (não
gramáticas
regulares
necessariamente mais à esquerda):
Linguagens
livres de S ⇒ w1 ⇒ w2 ⇒ w3 ⇒ · · · ⇒ wn = w.
contexto
Gramáticas livres de

Seja wk = u1 Au2 Bu3 a primeira forma sentencial na derivação na qual não é


contexto
Derivações
Ambiguidade
Formas normais feita a derivação mais à esquerda.
Autômatos
com pilha e 
GLC’s

Máquinas de
Turing

(989 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
A aplicação da regra de derivação B → v, no passo k + 1, gera:
gramáticas
regulares
wk = u1 Au2 Bu3 ⇒ u1 Au2 vu3 = wk+1 .
Linguagens
livres de
contexto
Gramáticas livres de
Suponha que a substituição de A, na derivação original, ocorre no passo j + 1.
contexto
Derivações Logo, uso da regra de derivação A → p gera:
Ambiguidade
Formas normais

Autômatos w j = u1 Aq ⇒ u1 pq = w j+1 .
com pilha e
GLC’s

Máquinas de 
Turing

(990 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
As regras de derivação aplicadas nos passos k + 2 até j transformam u2 vu3
gramáticas
regulares
em q.
Linguagens A derivação é completada com a subderivação:
livres de
contexto

Gramáticas livres de
contexto w j+1 =⇒ wn = w.
Derivações
Ambiguidade
Formas normais
Uma derivação de w, que é mais à esquerda para as k + 1 primeiras
Autômatos
com pilha e aplicações de regras de derivação, pode ser agora obtida (os k primeiros
GLC’s
passos já eram mais à esquerda).
Máquinas de
Turing

(991 – 1034 de 1593)
Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Derivação original.


finitos

Linguagens e
k
S =⇒ wk = u1 Au2 Bu3 (u1 , u2 ∈ Σ∗ e u3 ∈ (Σ ∪ V)∗ )
gramáticas
regulares

Linguagens
livres de
=⇒ wk+1 = u1 Au2 vu3 (Regra B → v, v ∈ (Σ ∪ V)∗ )
contexto j−(k+1) ∗
Gramáticas livres de
contexto
=⇒ w j = u1 Aq (Derivação u2 vu3 =⇒ q, q ∈ (Σ ∪ V)∗ )
=⇒ w j+1 = u1 pq (Regra A → p, p ∈ Σ∗ )
Derivações
Ambiguidade
Formas normais
n−( j+1) ∗
Autômatos
com pilha e
=⇒ wn (Derivação w j+1 =⇒ wn )
GLC’s

Máquinas de 
Turing

(992 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Derivação mais à esquerda.


finitos

Linguagens e
gramáticas k
regulares S =⇒ wk = u1 Au2 Bu3 (u1 , u2 ∈ Σ∗ e u3 ∈ (Σ ∪ V)∗ )
Linguagens
livres de
=⇒ wk+1 = u1 pu2 Bu3 (Regra A → p, p ∈ Σ∗ )
=⇒ wk+2 = u1 pu2 vu3
contexto
Gramáticas livres de (Regra B → v, v ∈ (Σ ∪ V)∗ )
contexto
Derivações j+1−(k+2) ∗
Ambiguidade =⇒ w j+1 = u1 pq (Derivação u2 vu3 =⇒ q, q ∈ (Σ ∪ V)∗ )
Formas normais
n−( j+1) ∗
Autômatos
com pilha e
=⇒ wn (Derivação w j+1 =⇒ wn )
GLC’s

Máquinas de 
Turing

(993 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo Teorema 6.29


Introdução
Seja G = (V, Σ, P, S ) uma GLC e w uma cadeia qualquer. w ∈ L(G) se e
Fundamentos somente se existe uma derivação mais à esquerda de w a partir de S .
matemáticos

Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Se o comprimento de uma derivação é n, então com no máximo n utilizações
gramáticas
regulares
do procedimento descrito qualquer derivação torna-se mais à esquerda.
Linguagens
livres de

contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(994 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo
O Teorema 6.29 não garante que qualquer forma sentencial pode ser gerada
Introdução
por uma derivação mais à esquerda.
Fundamentos
matemáticos
A garantia é válida apenas para cadeias de símbolos terminais.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(995 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo
O Teorema 6.29 não garante que qualquer forma sentencial pode ser gerada
Introdução
por uma derivação mais à esquerda.
Fundamentos
matemáticos
A garantia é válida apenas para cadeias de símbolos terminais.
Alfabetos e
linguagens

Autômatos Exemplo 6.31


finitos

Linguagens e
gramáticas
regulares S → AB
Linguagens
livres de
A → aA | ε
B → bB | ε
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
Forma sentencial A é gerada por: S ⇒ AB ⇒ A.
GLC’s
Não existe derivação mais à esquerda para A.
Máquinas de
Turing

(996 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(997 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos Há a garantia de que, dada uma cadeia da linguagem de uma gramática, existe
Alfabetos e apenas uma derivação mais à esquerda?
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(998 – 1034 de 1593)


Derivação à esquerda
LFA 2018/2

H. Longo
Uso apenas da derivação mais à esquerda elimina várias possibilidades de
Introdução
derivação de uma cadeia.
Fundamentos
matemáticos Há a garantia de que, dada uma cadeia da linguagem de uma gramática, existe
Alfabetos e apenas uma derivação mais à esquerda?
linguagens

Autômatos
finitos Exemplo 6.32
Linguagens e
gramáticas
S ⇒ AA S ⇒ AA
regulares ⇒ aA ⇒ AAAA
⇒ aAAA ⇒ aAAA
Linguagens
livres de ⇒ abAAA ⇒ abAAA
contexto ⇒ abaAA ⇒ abaAA
Gramáticas livres de
contexto
⇒ ababAA ⇒ ababAA
Derivações ⇒ ababaA ⇒ ababaA
Ambiguidade
⇒ ababaa ⇒ ababaa
Formas normais

S → AA ,
( )
Autômatos
com pilha e P=
GLC’s
A → AAA | bA | Ab | a

Máquinas de
Turing

(999 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Definição 6.33
Fundamentos
matemáticos Uma gramática GLC é ambígua se existe uma cadeia w ∈ L(G) para a qual
Alfabetos e existem duas derivações mais à esquerda distintas.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1000 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Definição 6.33
Fundamentos
matemáticos Uma gramática GLC é ambígua se existe uma cadeia w ∈ L(G) para a qual
Alfabetos e existem duas derivações mais à esquerda distintas.
linguagens

Autômatos
finitos
Exemplo 6.34
Linguagens e
gramáticas G = ({S }, {a}, P, S ), onde: P = {S → aS | S a | a}.
regulares

Linguagens
G é ambígua, pois aa pode ser derivado à esquerda de duas formas:
livres de
contexto

Gramáticas livres de S ⇒ aS S ⇒ S a
contexto
Derivações
⇒ aa ⇒ aa
Ambiguidade
Formas normais

Autômatos Gramática não ambígua equivalente a G : {S → aS | a}.


com pilha e
GLC’s

Máquinas de
Turing

(1001 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Ambiguidade é uma propriedade de gramáticas e não de linguagens.


linguagens

Autômatos Quando uma gramática é ambígua, em geral, é possível construir outra


finitos
gramática não ambígua equivalente.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1002 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Ambiguidade é uma propriedade de gramáticas e não de linguagens.


linguagens

Autômatos Quando uma gramática é ambígua, em geral, é possível construir outra


finitos
gramática não ambígua equivalente.
Linguagens e
gramáticas Existem linguagens livres de contexto que só podem ser geradas por
regulares
gramáticas ambíguas.
Linguagens
livres de LLC inerentemente ambígua.
contexto
Gramáticas livres de
Exemplo: L = {an bn cm dm | n > 1, m > 1} ∪ {an bm cm dn | n > 1, m > 1},
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1003 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS | S b | a}.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1004 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS | S b | a}.
Fundamentos
matemáticos S ⇒ bS S ⇒ Sb
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b

Autômatos
⇒ bab ⇒ bab
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1005 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS
| S b | a}.
Fundamentos
matemáticos S ⇒ bS ⇒ S b
S
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b
Autômatos
⇒ bab ⇒ bab
finitos
Gramáticas não ambíguas equivalentes a G:
Linguagens e
gramáticas
S → bS | aA , S → bS | A ,
regulares
( ) ( )
G1 : G2 :
Linguagens
livres de A → bA | ε A → Ab | a
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1006 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo
Exemplo 6.35
Introdução
G = ({S }, {a, b}, P, S ), onde P = {S → bS
| S b | a}.
Fundamentos
matemáticos S ⇒ bS ⇒ S b
S
Alfabetos e
linguagens
G é ambígua, pois: ⇒ bS b ⇒ bS b
Autômatos
⇒ bab ⇒ bab
finitos
Gramáticas não ambíguas equivalentes a G:
Linguagens e
gramáticas
S → bS | aA , S → bS | A ,
regulares
( ) ( )
G1 : G2 :
Linguagens
livres de A → bA | ε A → Ab | a
contexto
Gramáticas livres de
contexto
Derivações
Derivação mais à esquerda, em G1 , da cadeia bn abm :
Ambiguidade
n m
S =⇒ bn S =⇒ bn aA =⇒ bn abm A =⇒ bn abm .
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1007 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1008 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1009 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.

Autômatos
finitos
S ⇒ aS b S ⇒ aS bb
Linguagens e G é ambígua, pois: ⇒ aaS bbb ⇒ aaS bbb
gramáticas
regulares
⇒ aabbb ⇒ aabbb
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1010 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.36
Fundamentos
matemáticos
G = ({S }, {a, b}, P, S ), onde P = {S → aS b | aS bb | ε}.
Alfabetos e
linguagens L(G) = {an bm | 0 ≤ n ≤ m ≤ 2n}.

Autômatos
finitos
S ⇒ aS b S ⇒ aS bb
Linguagens e G é ambígua, pois: ⇒ aaS bbb ⇒ aaS bbb
gramáticas
regulares
⇒ aabbb ⇒ aabbb
Linguagens Gramáticas não ambígua equivalente a G:
livres de
contexto
S → aS b | A | ε ,
( )
Gramáticas livres de
contexto
G1 :
Derivações
Ambiguidade
A → aAbb | abb
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1011 – 1034 de 1593)


Árvore de Derivação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 6.37
Alfabetos e
linguagens ∗

Autômatos
Seja G = (V, Σ, P, S ) uma GLC e S =⇒ w uma derivação em G. A Árvore de

finitos
Derivação, AD, de S =⇒ w pode ser construída como segue:
Linguagens e
gramáticas
1 Inicie AD com a raiz S .
regulares 2 Se A → x1 x2 . . .xn , com xi ∈ (V ∪ Σ), é a regra de derivação aplicada à cadeia
Linguagens
livres de
uAv, então acrescente x1 , x2 , . . ., xn como filhos de A em AD.
contexto 3 Se A → ε é a regra de derivação aplicada à cadeia uAv, então acrescente ε
Gramáticas livres de
contexto como único filho de A em AD.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1012 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação)


Introdução S
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1013 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1014 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1015 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1016 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1017 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1018 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1019 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1020 – 1034 de 1593)


Derivação como uma árvore
LFA 2018/2

H. Longo Exemplo 6.38 (Derivação) Exemplo 6.38 (Árvore de derivação)


Introdução S ⇒ AA S
Fundamentos
matemáticos
⇒ aA
Alfabetos e
⇒ aAAA A A
linguagens
⇒ abAAA
Autômatos
⇒ abaAA a
finitos
⇒ ababAA
A A A
Linguagens e
gramáticas
⇒ ababaA
regulares
⇒ ababaa b A b A a
Linguagens
livres de
contexto
Gramáticas livres de
contexto
a a
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1021 – 1034 de 1593)


Árvore de Derivação
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens A ordem das folhas independe da derivação a partir da qual a árvore foi
Autômatos
finitos
gerada.
Linguagens e Derivações distintas podem gerar a mesma árvore de derivação.
gramáticas
regulares
Uma árvore de derivação pode ser usada para gerar diversas derivações que
Linguagens
livres de geram a mesma cadeia.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1022 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Há uma correspondência natural (um para um) entre derivações mais a
Alfabetos e esquerda e árvores de derivação.
linguagens
Definição recursiva de árvore de derivação especifica a construção de uma
Autômatos
finitos árvore a partir de uma derivação mais esquerda.
Linguagens e
Apenas uma derivação mais à esquerda de uma cadeia w pode ser extraída de
gramáticas uma árvore de derivação de w.
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1023 – 1034 de 1593)


Ambiguidade
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Há uma correspondência natural (um para um) entre derivações mais a
Alfabetos e esquerda e árvores de derivação.
linguagens
Definição recursiva de árvore de derivação especifica a construção de uma
Autômatos
finitos árvore a partir de uma derivação mais esquerda.
Linguagens e
Apenas uma derivação mais à esquerda de uma cadeia w pode ser extraída de
gramáticas uma árvore de derivação de w.
regulares

Linguagens
livres de
contexto
Definição 6.39
Gramáticas livres de
contexto Uma gramática G é ambígua se existe uma cadeia w em L(G) cujos símbolos são
Derivações
Ambiguidade as folhas de duas árvores de derivação distintas.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1024 – 1034 de 1593)


Uma gramática regular pode ser ambígua? (Marcos V. R. Oliveira – LFA-2018/1)

LFA 2018/2

H. Longo

Introdução Exemplo 6.40


Fundamentos
matemáticos
Uma gramática regular ambígua é G = (V = {S , A, B}, Σ = {a}, P, S ), com
 
Alfabetos e 
 S → aA | aB 

P= A→ε
linguagens
 
.
 
 

Autômatos  B→ε
 

finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1025 – 1034 de 1593)


Uma gramática regular pode ser ambígua? (Marcos V. R. Oliveira – LFA-2018/1)

LFA 2018/2

H. Longo

Introdução Exemplo 6.40


Fundamentos
matemáticos
Uma gramática regular ambígua é G = (V = {S , A, B}, Σ = {a}, P, S ), com
 
Alfabetos e 
 S → aA | aB 

P= A→ε
linguagens
 
.
 
 

Autômatos  B→ε
 

finitos

Linguagens e
gramáticas
regulares
Toda gramática regular G = (V, Σ, P, S ) que contém uma regra de derivação da
forma A → aB (com A, B ∈ V e a ∈ Σ) que seja alcançável a partir do símbolo
Linguagens
livres de
contexto
Gramáticas livres de
inicial S , possui uma gramática regular ambígua equivalente.
contexto
Derivações
Ambiguidade
Para construir uma tal gramática basta inserir um novo símbolo não terminal
Formas normais X e adicionar a regra A → aX e replicar as regras do B, com a substituição do
Autômatos
com pilha e
B pelo X .
GLC’s

Máquinas de
Turing

(1026 – 1034 de 1593)


Uma gramática regular pode ser ambígua? (Marcos V. R. Oliveira – LFA-2018/1)

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 6.41
Alfabetos e
 
linguagens

 S → aS | bA 

G = (V = {S , A, B}, Σ = {a, b}, P, S ), com P =  A → bA | aB | ε
 
.
 
Autômatos  

finitos  B → aB | ε
 

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1027 – 1034 de 1593)


Uma gramática regular pode ser ambígua? (Marcos V. R. Oliveira – LFA-2018/1)

LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 6.41
Alfabetos e
 
linguagens

 S → aS | bA 

G = (V = {S , A, B}, Σ = {a, b}, P, S ), com P =  ε
 
A → bA | aB | .
 
Autômatos  

finitos  B → aB | ε
 

Linguagens e
Gramática
 ambígua equivalente é  G1 = (V1 = {S , A, B, X}, Σ = {a, b}, P1 , S ),
gramáticas
regulares

 S → aS | bA 

Linguagens
 A → bA | aB | aX | ε 


 

livres de
com P = 
 
.

contexto
B → aB | ε
 

Gramáticas livres de 
 

contexto
Derivações
 X → aX | ε

 


Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1028 – 1034 de 1593)


Ambiguidade – Resumo
LFA 2018/2

H. Longo

Introdução

Fundamentos
Derivação ambígua: uma mesma cadeia tem mais de uma árvore de
matemáticos
derivação.
Alfabetos e
linguagens Gramática ambígua: gera uma cadeia por derivação ambígua.
Autômatos A cadeia tem duas árvores de derivação.
finitos
Duas derivações podem diferir na ordem em que variáveis são substituídas.
Linguagens e
gramáticas
regulares
Uma cadeia w é derivada ambiguamente se possui duas ou mais derivações
Linguagens
à esquerda.
livres de
contexto Uma gramática é ambígua se gera alguma cadeia ambiguamente.
Gramáticas livres de
contexto LLC inerentemente ambígua: só pode ser gerada por uma gramática
Derivações
Ambiguidade ambígua.
Ex.: L = {0i 1 j 2k | i = j ou j = k}.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1029 – 1034 de 1593)


Detecção de ambiguidade
LFA 2018/2

H. Longo

Introdução Não há algoritmo para decidir se uma GLC G = (V, Σ, P, S ) arbitrária é


Fundamentos ambígua!
matemáticos
+
Alfabetos e Contudo, se um símbolo A ∈ V é recursivo à esquerda (A =⇒ Aα, |α| > 0) e
linguagens +

Autômatos
recursivo à direita (A =⇒ βA, |β| > 0), então G é ambígua, desde que G seja
finitos “reduzida”, ou seja, não possua símbolos redundantes.
Linguagens e ∗
gramáticas Exemplo: A =⇒ βAα.
regulares

Linguagens
livres de
A A
contexto
Gramáticas livres de
contexto
Derivações β A A α
Ambiguidade
Formas normais

Autômatos
com pilha e A α β A
GLC’s

Máquinas de
Turing

(1030 – 1034 de 1593)


Detecção de ambiguidade
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Gramática de operadores


linguagens

Autômatos Falta de precedência entre os operadores (por exemplo, entre + e ∗).


finitos

Linguagens e
Falta de agrupamento em sequências de operadores (por exemplo, E + E + E
gramáticas
regulares
pode significar E + (E + E) ou (E + E) + E .
Linguagens Solução: introduzir mais variáveis, cada uma representando um tipo de
livres de
contexto expressão.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1031 – 1034 de 1593)


Remoção de ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1032 – 1034 de 1593)


Remoção de ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos

Alfabetos e
linguagens
1 Forçar maior precedência para o símbolo ∗:
Autômatos
finitos
E →E+E |T
Linguagens e
gramáticas T → T ∗ T | (E) | id
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1033 – 1034 de 1593)


Remoção de ambiguidade
LFA 2018/2

H. Longo

Introdução
Exemplo 6.42
Fundamentos G = ({E}, {+, ∗, (, ), id}, {E → E + E | E ∗ E | (E) | id}, E).
matemáticos

Alfabetos e
linguagens
1 Forçar maior precedência para o símbolo ∗:
Autômatos
finitos
E →E+E |T
Linguagens e
gramáticas T → T ∗ T | (E) | id
regulares

Linguagens
livres de
2 Eliminar recursões à direita:
contexto
Gramáticas livres de
contexto
Derivações
E → E+T |T
Ambiguidade
Formas normais T → T ∗ id | T ∗ (E) | (E) | id
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1034 – 1034 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Linguagens livres de contexto


finitos

Linguagens e
gramáticas
regulares

Linguagens
Formas normais
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1035 – 1206 de 1593)


Transformações em GLC ’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Objetivo das transformações é tornar uma GLC mais simples ou prepará-la
matemáticos para alguma aplicação posterior
Alfabetos e
linguagens Qualquer que seja a transformação efetuada numa gramática, a linguagem
Autômatos gerada deve ser sempre a mesma.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1036 – 1206 de 1593)


Transformações em GLC ’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
Objetivo das transformações é tornar uma GLC mais simples ou prepará-la
matemáticos para alguma aplicação posterior
Alfabetos e
linguagens Qualquer que seja a transformação efetuada numa gramática, a linguagem
Autômatos gerada deve ser sempre a mesma.
finitos

Linguagens e
Transformações:
gramáticas 1 Eliminação de recursão na variável inicial.
regulares

Linguagens
2 Eliminação de derivações vazias.
livres de 3 Contração.
contexto
Gramáticas livres de
4 Eliminação de símbolos inúteis.
contexto
Derivações
5 Eliminação de regras de derivação simples (unitárias).
Ambiguidade
Formas normais
6 Eliminação de recursão à esquerda (e à direita).
Autômatos
7 Fatoração.
com pilha e
GLC’s

Máquinas de
Turing

(1037 – 1206 de 1593)


Eliminação de recursão na variável inicial
LFA 2018/2

H. Longo

Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens

Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares

Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(1038 – 1206 de 1593)


Eliminação de recursão na variável inicial
LFA 2018/2

H. Longo

Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens

Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares

Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
Se a variável S não ocorre no lado direito de nenhuma regra de derivação,
então G = G0 .
contexto
Derivações
Ambiguidade
Formas normais Se S é uma variável recursiva, então G0 = (V ∪ {S 0 }, Σ, P ∪ {S 0 → S }, S 0 ).
Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(1039 – 1206 de 1593)


Eliminação de recursão na variável inicial
LFA 2018/2

H. Longo

Introdução
Lema 6.43
Fundamentos
matemáticos Seja G = (V, Σ, P, S ) uma gramática livre de contexto. Existe uma gramática
Alfabetos e G0 = (V 0 , Σ, P0 , S 0 ), que satisfaz:
linguagens

Autômatos
1 L(G) = L(G0 ),
finitos 2 As regras de derivação em P0 são da forma A → w, onde A ∈ V 0 e
Linguagens e w ∈ ((V 0 − {S 0 }) ∪ Σ)∗ .
gramáticas
regulares

Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
L(G) = L(G0 )
contexto ∗ ∗
Derivações S =⇒ u ≡ S 0 =⇒
0
S =⇒
0
u.
Ambiguidade G G G
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(1040 – 1206 de 1593)


Eliminação de recursão na variável inicial
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.44
Autômatos
finitos
G : S → aS | AB | AC G0 : S 0 → S
Linguagens e
A → aA | ε S → aS | AB | AC
gramáticas
regulares
B → bB | bS A → aA | ε
Linguagens
C → cC | ε B → bB | bS
livres de
contexto
C → cC | ε
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1041 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Definição 6.45 (ε-regra)


Fundamentos
matemáticos Regra de derivação cujo lado direito contém somente a cadeia vazia, ou seja,
Alfabetos e A → ε.
linguagens

Definição 6.46 (ε-Variáveis)


Autômatos
finitos

Linguagens e
gramáticas
Conjunto de variáveis que derivam, direta ou indiretamente, a cadeia vazia:

regulares
Vε = {A ∈ V | A =⇒ ε}.
Linguagens
livres de
contexto
Gramáticas livres de
Definição 6.47 (GLC ε-livre)
contexto
Derivações
Ambiguidade
GLC que não possui ε-regras ou possui S → ε como uma única ε-regra, onde
Formas normais S é o símbolo inicial da gramática e S não aparece do lado direito de
Autômatos
com pilha e
nenhuma regra de derivação.
GLC’s

Máquinas de
Turing

(1042 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1043 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1044 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos

Linguagens e
gramáticas
regulares
Derivação à esquerda de aaaa gera quatro B’s, os quais são removidos com a
Linguagens
regra B → ε.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1045 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.48
S → S aB | aB ,
( )
Alfabetos e
linguagens G = ({S , B}, {a, b}, P, S ), onde P =
Autômatos
B → bB | ε
L(G) = (a+ b∗ )+ .
finitos

Linguagens e
gramáticas
regulares
Derivação à esquerda de aaaa gera quatro B’s, os quais são removidos com a
Linguagens
regra B → ε.
livres de
contexto Gramática equivalente sem ε-regras:
( )
Gramáticas livres de
S → S aB | S a | aB | a
G1 = ({S , B}, {a, b}, P, S ), onde P =
contexto
Derivações
Ambiguidade
B → bB | b
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1046 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Algoritmo 8: Busca ε-variáveis
Alfabetos e Entrada: GLC (V, Σ, P, S ).
linguagens
Saída: Conjunto de ε-variáveis.
Autômatos
finitos 1 Vε ← {A | (A → ε) ∈ P};
2 repita
Linguagens e
gramáticas
3 AUX ← Vε ;
regulares 4 para cada (A ∈ V) faça
Linguagens
5 se (∃ A → w e w ∈ AUX ∗ ) então
livres de 6 Vε ← Vε ∪ {A};
contexto
Gramáticas livres de
contexto 7 até (AUX = Vε );
Derivações
Ambiguidade 8 retorna (Vε );
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1047 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.49
Fundamentos
S → ACA ,
matemáticos
 

 

A → aAa | B | C ,
 
Alfabetos e

 

G = ({S , A, B, C}, {a, b, c}, P, S ), onde P = 
linguagens

 

B → bB | b ,
 

Autômatos 
 

C → cC | ε
finitos


 


Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1048 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.49
Fundamentos
S → ACA ,
matemáticos
 

 

A → aAa | B | C ,
 
Alfabetos e

 

G = ({S , A, B, C}, {a, b, c}, P, S ), onde P = 
linguagens

 

B → bB | b ,
 

Autômatos 
 

C → cC | ε
finitos


 


Linguagens e
gramáticas
regulares

Linguagens Iteração Vε AUX


livres de
contexto 0 {C}
Gramáticas livres de
contexto
1 {A, C} {C}
Derivações 2 {S , A, C} {A, C}
{S , A, C} {S , A, C}
Ambiguidade
Formas normais 3
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1049 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1050 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
1 Toda variável em Vε deriva a cadeia vazia:
gramáticas
regulares Indução no número de iterações do algoritmo.
Linguagens
livres de
Hipótese Indutiva:
contexto Após n iterações todas as variáveis em Vε são ε-variáveis.
Gramáticas livres de
contexto
Derivações Passo Indutivo:
Provar que qualquer variável adicionada no passo n + 1 também é uma
Ambiguidade
Formas normais

Autômatos ε-variável.
com pilha e
GLC’s

Máquinas de
Turing

(1051 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Passo Indutivo:
gramáticas
regulares
Se A é essa variável, então existe a regra de derivação A → A1 A2 . . . Ak , em
Linguagens que cada Ai ∈ AUX na iteração n + 1.
livres de

contexto
Gramáticas livres de
Por hipótese de indução, Ai =⇒ ε para i = 1, 2, . . . , k. Portanto:
contexto
Derivações
∗ ∗ ∗ ∗
Ambiguidade
Formas normais
A =⇒ A1 A2 . . . Ak =⇒ A2 . . . Ak =⇒ A3 . . . Ak =⇒ Ak =⇒ ε.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1052 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
2 Toda ε-variável é inserida no conjunto Vε :
gramáticas
regulares Indução no comprimento da derivação mínima de ε a partir de uma variável A.
Linguagens
livres de
Base:
1
contexto Se A =⇒ ε, então A é inserido em Vε no passo 1.
Gramáticas livres de
contexto
Derivações Hipótese Indutiva:
Toda variável, cuja derivação mínima de ε é de comprimento máximo n, é
Ambiguidade
Formas normais

Autômatos inserida no conjunto Vε até a iteração n.


com pilha e
GLC’s

Máquinas de
Turing

(1053 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Passo Indutivo:
gramáticas
regulares
Seja A uma variável que deriva ε em n + 1 passos:
Linguagens n
livres de
contexto
A =⇒ A1 A2 . . . Ak =⇒ ε.
Gramáticas livres de
contexto
Derivações Por H.I., cada Ai deriva ε com derivação mínima de comprimento n ou menor
e é inserida em Vε antes da iteração n + 1.
Ambiguidade
Formas normais

Autômatos
com pilha e 
GLC’s

Máquinas de
Turing

(1054 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Lema 6.50
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 8 gera o conjunto de
matemáticos
ε-variáveis de G.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Passo Indutivo:
gramáticas
regulares
Se m ≤ n é a primeira iteração na qual todos os Ai ’s já foram inseridos em Vε ,
Linguagens então na iteração m + 1 a regra A → A1 A2 . . . Ak força a variável A a ser
livres de
contexto inserida em Vε .
Gramáticas livres de
contexto
Derivações

Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1055 – 1206 de 1593)


Contração
LFA 2018/2

H. Longo

Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1056 – 1206 de 1593)


Contração
LFA 2018/2

H. Longo

Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos

Linguagens e Demonstração.
gramáticas
regulares ⇒ L(G) ⊆ L(G0 ) uma vez que toda regra de derivação de G também pertence à
Linguagens
livres de
G0 .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(1057 – 1206 de 1593)


Contração
LFA 2018/2

H. Longo

Introdução
Lema 6.51
Fundamentos
matemáticos ∗
Seja G = (V, Σ, P, S ) uma GLC . Se A =⇒ w, então a gramática
Alfabetos e G
linguagens
G0 = (V, Σ, P ∪ {A → w}, S ) é equivalente a G.
Autômatos
finitos

Linguagens e Demonstração.
gramáticas
regulares ⇒ L(G) ⊆ L(G0 ) uma vez que toda regra de derivação de G também pertence à
Linguagens
livres de
G0 .
contexto
Gramáticas livres de ⇐ L(G0 ) ⊆ L(G), pois a aplicaçao da regra de derivação A → w em uma
contexto ∗
Derivações
Ambiguidade
deriação em G0 pode ser simulada em G pela derivação A =⇒ w.
G
Formas normais

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(1058 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.52
Alfabetos e
linguagens
Uma gramática sem ε-variáveis é não contraível, já que nenhuma regra de
Autômatos derivação pode diminuir o tamanho de qualquer forma sentencial.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1059 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 6.52
Alfabetos e
linguagens
Uma gramática sem ε-variáveis é não contraível, já que nenhuma regra de
Autômatos derivação pode diminuir o tamanho de qualquer forma sentencial.
finitos

Linguagens e
gramáticas
regulares
Se G = (V, Σ, P, S ) é uma GLC e ε ∈ L(G), então não existe uma gramática
Linguagens
não contraível equivalente.
livres de
contexto
Se S → ε é única ε-regra de G, então todas as derivações em G (com
Gramáticas livres de
contexto
exceção de S ⇒ ε) são não contraíveis.
Derivações
Ambiguidade
Gramática essencialmente não contraível.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1060 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.53
( (
Autômatos S → AS a S → AS a | S a
finitos G1 : ≡ G2 :
Linguagens e
A → aA | ε A → aA | a
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1061 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 6.53
( (
Autômatos S → AS a S → AS a | S a
finitos G1 : ≡ G2 :
Linguagens e
A → aA | ε A → aA | a
gramáticas
regulares ( (
S → AS Aa S → AS Aa | S Aa | AS a | S a
Linguagens G3 : ≡ G4 :
livres de A → aA | ε A → aA | a
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1062 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Teorema 6.54
Autômatos
finitos
Seja G = (V, Σ, P, S ) uma GLC . Existe um algoritmo para construir uma
gramática G L = (VL , Σ, PL , S L ) que satisfaz:
Linguagens e
gramáticas 1 L(G) = L(G L ),
regulares
2 S L não é variável recursiva, e
Linguagens
livres de 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1063 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
Demonstração.
matemáticos

Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1064 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
Demonstração.
matemáticos

Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos

Linguagens e 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .


gramáticas
regulares Regras de derivação de G L :
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1065 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
Demonstração.
matemáticos

Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos

Linguagens e 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .


gramáticas
regulares Regras de derivação de G L :
Linguagens 1 Se ε ∈ L(G) então (S L → ε) ∈ PL .
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1066 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
Demonstração.
matemáticos

Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos

Linguagens e 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .


gramáticas
regulares Regras de derivação de G L :
Linguagens 1 Se ε ∈ L(G) então (S L → ε) ∈ PL .
livres de 2 Se (A → w) ∈ P e w = w1 A1 w2 A2 . . .wk Ak wk+1 , onde A1 , A2 , . . ., Ak são ε-variáveis,
contexto
Gramáticas livres de então (A → w1 w2 . . .wk wk+1 ) ∈ PL .
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1067 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos
Demonstração.
matemáticos

Alfabetos e
2 S L não é variável recursiva.
linguagens É suficiente usar a técnica apresentada no lema 6.43. VL = V ou VL = V ∪ {S L }
Autômatos (se necessário mudar a variável inicial).
finitos

Linguagens e 3 (A → ε) ∈ P se, e somente se, ε ∈ L(G) e A = S L .


gramáticas
regulares Regras de derivação de G L :
Linguagens 1 Se ε ∈ L(G) então (S L → ε) ∈ PL .
livres de 2 Se (A → w) ∈ P e w = w1 A1 w2 A2 . . .wk Ak wk+1 , onde A1 , A2 , . . ., Ak são ε-variáveis,
contexto
Gramáticas livres de então (A → w1 w2 . . .wk wk+1 ) ∈ PL .
(A → ε) ∈ PL somente se ε ∈ L(G) e A = S L .
contexto
Derivações
3
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1068 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1069 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1070 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1071 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares Mostrar que toda cadeia não vazia, derivável em G a partir de uma variável A,
Linguagens também é derivável em G L a partir de A.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1072 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução

Fundamentos Demonstração.
matemáticos

Alfabetos e
1 L(G L ) ⊆ L(G).
linguagens
As derivações em G L usam as regras de G e aquelas criadas pela condição 3
Autômatos
finitos
do teorema, as quais são deriváveis em G.
Linguagens e
2 L(G) ⊆ L(G L ).
gramáticas
regulares Mostrar que toda cadeia não vazia, derivável em G a partir de uma variável A,
Linguagens também é derivável em G L a partir de A.
n ∗
livres de
contexto Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Gramáticas livres de
contexto
Derivações
Indução em n.
Ambiguidade
Formas normais 
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1073 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Base:
Autômatos Se n = 1, então (A → w) ∈ P e, como w , ε, (A → w) ∈ PL .
finitos

Linguagens e
gramáticas
Hipótese Indutiva:
regulares Toda cadeia de terminais derivável a partir de A em G, em no máximo n
Linguagens
livres de
passos, também é derivável em G L .
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1074 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Passo Indutivo:
n+1
Autômatos Seja A =⇒ w uma derivação de uma cadeia de terminais. Então:
finitos G

Linguagens e
n
gramáticas
regulares A =⇒ w1 A1 w2 A2 . . .wk Ak wk+1 =⇒ w,
G
Linguagens

onde Ai ∈ V e wi ∈ Σ∗ . Logo, w pode ser reescrito como:


livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
w = w1 p1 w2 p2 . . .wk pk wk+1 ,
Formas normais

Autômatos
com pilha e
onde Ai deriva pi em no máximo n passos.
GLC’s 
Máquinas de
Turing

(1075 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Demonstração.
n ∗
Fundamentos
matemáticos Se A =⇒ w, com w ∈ Σ+ , então A =⇒ w.
G GL
Alfabetos e
linguagens Passo Indutivo:

Autômatos Por H.I. Ai =⇒ pi , para cada pi ∈ Σ+ . Se pi = ε, então algum A j é uma
finitos GL

Linguagens e ε-variável e uma nova regra de derivação é gerada a partir de


gramáticas
regulares

Linguagens
A → w1 A1 w2 A2 . . .wk Ak wk+1 ,
livres de
contexto
Gramáticas livres de
contexto
na qual cada variável que deriva a cadeia vazia é excluída.
Derivações
Ambiguidade
Para se derivar w em G L , primeiro aplica-se essa nova regra e então
Formas normais
deriva-se cada pi usando-se as derivações fornecidas pela H.I.
Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1076 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Exemplo 6.55


Fundamentos 
matemáticos 

 S → ACA

Alfabetos e 
 A → aAa | B | C
G: 
linguagens

Autômatos


 B → bB | b
C → cC | ε
finitos



Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1077 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Exemplo 6.55


Fundamentos 
matemáticos 

 S → ACA

Alfabetos e 
 A → aAa | B | C
G: 
linguagens

Autômatos


 B → bB | b
C → cC | ε
finitos



Linguagens e
gramáticas
regulares
Vε = {S , A, C}
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1078 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Exemplo 6.55


Fundamentos
S → ACA | CA | AA | AC | A | C | ε
 
matemáticos 

 S → ACA 


 
Alfabetos e 
 A → aAa | B | C 
 A → aAa | aa | B | C
G:  GL : 
linguagens
 
Autômatos


 B → bB | b 

 B → bB | b
C → cC | ε
finitos
 
C → cC | c

 

Linguagens e
gramáticas
regulares
Vε = {S , A, C}
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1079 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Exemplo 6.55


Fundamentos
S → ACA | CA | AA | AC | A | C | ε
 
matemáticos 

 S → ACA 


 
Alfabetos e 
 A → aAa | B | C 
 A → aAa | aa | B | C
G:  GL : 
linguagens
 
Autômatos


 B → bB | b 

 B → bB | b
C → cC | ε
finitos
 
C → cC | c

 

Linguagens e
gramáticas
regulares
Vε = {S , A, C}
Linguagens Derivação da cadeia vazia:
G : S ⇒ ACA ⇒ CCA ⇒ CA ⇒ A ⇒ C ⇒ ε
livres de
contexto
Gramáticas livres de
contexto
GL : S ⇒ ε
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1080 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução Exemplo 6.55


Fundamentos
S → ACA | CA | AA | AC | A | C | ε
 
matemáticos 

 S → ACA 


 
Alfabetos e 
 A → aAa | B | C 
 A → aAa | aa | B | C
G:  GL : 
linguagens
 
Autômatos


 B → bB | b 

 B → bB | b
C → cC | ε
finitos
 
C → cC | c

 

Linguagens e
gramáticas
regulares
Vε = {S , A, C}
Linguagens Derivação da cadeia vazia:
G : S ⇒ ACA ⇒ CCA ⇒ CA ⇒ A ⇒ C ⇒ ε
livres de
contexto
Gramáticas livres de
contexto
GL : S ⇒ ε
Derivações
Ambiguidade Derivação da cadeia aba:
Formas normais
G : S ⇒ ACA ⇒ aAaCA ⇒ aBaCA ⇒ abaCA ⇒ abaA ⇒ abaC ⇒ aba
Autômatos
com pilha e G L : S ⇒ A ⇒ aAa ⇒ aBa ⇒ aba
GLC’s

Máquinas de
Turing

(1081 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.56
Fundamentos 
matemáticos 
 S → ABC
A → aA | ε
Alfabetos e



linguagens

G: 

Autômatos


 B → bB | ε
C → cC | ε
finitos



Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1082 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.56
Fundamentos 
matemáticos 
 S → ABC
A → aA | ε
Alfabetos e



linguagens

G: 

Autômatos


 B → bB | ε
C → cC | ε
finitos



Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1083 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.56
Fundamentos 
matemáticos 
 S → ABC
A → aA | ε
Alfabetos e



linguagens

G: 

Autômatos


 B → bB | ε
C → cC | ε
finitos



Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares

Linguagens Vε = {S , A, B, C}
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1084 – 1206 de 1593)


Eliminação de derivações vazias
LFA 2018/2

H. Longo

Introdução
Exemplo 6.56
Fundamentos 
matemáticos 
 S → ABC
A → aA | ε
Alfabetos e



linguagens

G: 

Autômatos


 B → bB | ε
C → cC | ε
finitos



Linguagens e
gramáticas L(G) = a∗ b∗ c∗
regulares

Linguagens Vε = {S , A, B, C}
livres de
S → ABC | AB | BC | AC | A | B | C | ε

contexto 

Gramáticas livres de


contexto  A → aA | a


Derivações GL : 
Ambiguidade



 B → bB | b
Formas normais
 C → cC | c

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1085 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 6.57
Alfabetos e Regras de derivação simples são da forma A → B, onde A, B ∈ V .
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1086 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 6.57
Alfabetos e Regras de derivação simples são da forma A → B, onde A, B ∈ V .
linguagens

Autômatos
finitos Observações
Linguagens e
gramáticas A aplicação de uma regra A → B não aumenta forma sentecial derivada ou
regulares
acrescenta terminais à mesma.
Linguagens
livres de
contexto
A remoção de regras simples requer a adição de novas regras que permitam
Gramáticas livres de
contexto
a geração das mesmas cadeias.
Derivações
Ambiguidade Uma regra simples apenas renomeia uma variável.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1087 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.58


matemáticos
A → aA | a | B ,
( )
Alfabetos e
linguagens Considere as regras
B → bB | b | C
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1088 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.58


matemáticos
A → aA | a | B ,
( )
Alfabetos e
linguagens Considere as regras
B → bB | b | C
Autômatos
finitos A regra A → B indica que qualquer cadeia derivável a partir de B também é
Linguagens e
gramáticas
derivável a partir de A.
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1089 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.58


matemáticos
A → aA | a | B ,
( )
Alfabetos e
linguagens Considere as regras
B → bB | b | C
Autômatos
finitos A regra A → B indica que qualquer cadeia derivável a partir de B também é
Linguagens e
gramáticas
derivável a partir de A.
regulares
Eliminação de A → B: acrescentar A → w para cada regra B → w:
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1090 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 6.58


matemáticos
A → aA | a | B ,
( )
Alfabetos e
linguagens Considere as regras
B → bB | b | C
Autômatos
finitos A regra A → B indica que qualquer cadeia derivável a partir de B também é
Linguagens e
gramáticas
derivável a partir de A.
regulares
Eliminação de A → B: acrescentar A → w para cada regra B → w:
Linguagens
livres de
A → aA | a | bB | b | C ,
( )
contexto
Gramáticas livres de
contexto
Derivações
B → bB | b | C
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1091 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Definição 6.59
linguagens ∗
Autômatos
Uma derivação A =⇒ C constituída apenas de regras de derivação simples é
finitos
chamada de cadeia de derivação.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1092 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Definição 6.59
linguagens ∗
Autômatos
Uma derivação A =⇒ C constituída apenas de regras de derivação simples é
finitos
chamada de cadeia de derivação.
Linguagens e
gramáticas
regulares
Dúvida?
Linguagens
livres de Como determinar as variáveis que podem ser derivadas, com uma cadeia de
contexto
Gramáticas livres de
contexto
derivação, a partir de uma dada variável?
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1093 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
Algoritmo 9: Cadeia de derivação
matemáticos
Entrada: GLC (V, Σ, P, S ) essencialmente não contraível e A ∈ V .
Alfabetos e
Saída: Conjunto de variáveis de cadeias de derivação de A.
linguagens

Autômatos
1 CADEIA(A) ← {A};
finitos 2 AUX ← ∅;
Linguagens e
3 repita
gramáticas 4 NOV AS ← CADEIA(A) − AUX ;
regulares 5 AUX ← CADEIA(A);
Linguagens 6 para cada (B ∈ NOV AS ) faça
livres de 7 para cada (B → C) faça
contexto
8 CADEIA(A) ← CADEIA(A) ∪ {C};
Gramáticas livres de
contexto
Derivações
Ambiguidade 9 até (AUX = CADEIA(A));
Formas normais
10 retorna (CADEIA(A));
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1094 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Lema 6.60


linguagens

Autômatos
Dada uma GLC essencialmente não contraível, o algoritmo 9 gera o conjunto
finitos de variáveis que podem ser derivadas, com cadeias de derivação, a partir de
Linguagens e
gramáticas
uma dada variável.
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1095 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Lema 6.60


linguagens

Autômatos
Dada uma GLC essencialmente não contraível, o algoritmo 9 gera o conjunto
finitos de variáveis que podem ser derivadas, com cadeias de derivação, a partir de
Linguagens e
gramáticas
uma dada variável.
regulares

Linguagens
livres de
Demonstração.
contexto
Gramáticas livres de
Exercício 
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1096 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1097 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 GC não contém regras de derivação simples.
Gramáticas livres de
contexto
(A → w) ∈ PC se existe B ∈ V e w tais que:
Derivações 1 B ∈ CADEIA(A),
Ambiguidade
Formas normais
2 (B → w) ∈ P,
Autômatos
3 w < V.
com pilha e
GLC’s

Máquinas de
Turing

(1098 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 G0 não contém regras de derivação simples.
Gramáticas livres de
contexto
As regras de derivação de A em GC são construídas a partir dos conjuntos
Derivações CADEIA(A) e P.
Ambiguidade
Formas normais A terceira condição garante que PC não contém regras de derivação simples.
Autômatos
com pilha e 
GLC’s

Máquinas de
Turing

(1099 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
1 L(GC ) ⊆ L(G):
Gramáticas livres de
contexto
O Lema 6.51 garante que toda cadeia derivável em GC também é derivável em
Derivações G.
Ambiguidade
Formas normais

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(1100 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
2 L(G) ⊆ L(GC ):
∗ ∗ ∗ ∗
Seja derivação S =⇒ uAv =⇒ uBv =⇒ upv =⇒ w, onde w ∈ L(G) e A =⇒ B é uma
Gramáticas livres de
contexto
Derivações G G G G G
Ambiguidade seqüência maximal de regras de derivação simples.
Formas normais

Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1101 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Teorema 6.61
Introdução

Fundamentos Dada a GLC G = (V, Σ, P, S ) essencialmente não contraível, existe um


matemáticos algoritmo que constrói a GLC GC = (VC , Σ, PC , S ) tal que:
Alfabetos e
linguagens
1 L(GC ) = L(G),
Autômatos
2 GC não contém regras de derivação simples.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
1 L(G) ⊆ L(GC ):

A regra A → p pode substituir a cadeia A =⇒ B.
Gramáticas livres de
contexto
Derivações G
Ambiguidade O uso sucessivo desta técnica produz uma derivação válida de w em GC .
Formas normais

Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1102 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
Exemplo 6.62
S → aS b | A ,
 
Fundamentos  
matemáticos
 
A → aA | B ,
 
G: 
 
Alfabetos e 
 


linguagens
 B → bBc | bc 
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1103 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
Exemplo 6.62
S → aS b | A ,
 
Fundamentos  
matemáticos
 
A → aA | B ,
 
G: 
 
Alfabetos e 
 


linguagens
 B → bBc | bc 
Autômatos
finitos

Linguagens e Variável Cadeia


gramáticas
regulares S {S , A, B}
Linguagens
livres de
A {A, B}
contexto B {B}
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1104 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
Exemplo 6.62
S → aS b | A ,
 
Fundamentos  
matemáticos
 
A → aA | B ,
 
G: 
 
Alfabetos e 
 


linguagens
 B → bBc | bc 
Autômatos
finitos

Linguagens e Variável Cadeia


gramáticas
regulares S {S , A, B}
Linguagens
livres de
A {A, B}
contexto B {B}
Gramáticas livres de
contexto

S → aS b | aA | bBc | bc ,
Derivações  
Ambiguidade  
 
A → aA | bBc | bc ,
Formas normais  
GC : 
 
Autômatos 
 


com pilha e
 B → bBc | bc 
GLC’s

Máquinas de
Turing

(1105 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Exemplo 6.63
Introdução

S → ACA ,
Fundamentos
 

 

matemáticos
A → aAa | B | C ,


 


 
G: 
 
Alfabetos e
linguagens


 B → bB | b , 



C → cC | ε


 


Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1106 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Exemplo 6.63
Introdução

S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
   

 
 
 

matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,


 

 

 


   
G:  GL : 
   
Alfabetos e
linguagens


 B → bB | b , 


 

 B → bB | b , 



C → cC | ε
   
C → cC | c

 
 
 

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1107 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Exemplo 6.63
Introdução

S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
   

 
 
 

matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,


 

 

 


   
G:  GL : 
   
Alfabetos e
linguagens


 B → bB | b , 


 

 B → bB | b , 



C → cC | ε
   
C → cC | c

 
 
 

Autômatos
finitos

Linguagens e Variável Cadeia


gramáticas
regulares S {S , A, C, B}
Linguagens
A {A, B, C}
livres de B {B}
contexto
Gramáticas livres de
C {C}
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1108 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Exemplo 6.63
Introdução

S → ACA , S → ACA | CA | AA | AC | A | C | ε ,
Fundamentos
   

 
 
 

matemáticos
A → aAa | B | C , A → aAa | aa | B | C ,


 

 

 


   
G:  GL : 
   
Alfabetos e
linguagens


 B → bB | b , 


 

 B → bB | b , 



C → cC | ε
   
C → cC | c

 
 
 

Autômatos
finitos

Linguagens e Variável Cadeia


gramáticas
regulares S {S , A, C, B}
Linguagens
A {A, B, C}
livres de B {B}
contexto
Gramáticas livres de
C {C}
contexto

S → ACA | CA | AA | AC | aAa | aa | bB | b | cC | c | ε ,
Derivações  
Ambiguidade

 

A → aAa | aa | bB | b | cC | c ,

 

Formas normais 
 

GC : 
 
Autômatos 
 B → bB | b 


com pilha e

 

C → cC | c

 

GLC’s

Máquinas de
Turing

(1109 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1110 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens
A eliminação de regras de derivação simples de uma gramática
Autômatos
essencialmente não contraível preserva esta propriedade.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1111 – 1206 de 1593)


Eliminação de derivações simples
LFA 2018/2

H. Longo

Introdução
A remoção de regras de derivação simples aumenta o número de regras na
Fundamentos
matemáticos gramática, mas reduz o comprimento das derivações.
Alfabetos e
linguagens
A eliminação de regras de derivação simples de uma gramática
Autômatos
essencialmente não contraível preserva esta propriedade.
finitos

Linguagens e
gramáticas Definição 6.64
regulares

Linguagens
Dada uma GLC (V, Σ, P, S ) essencialmente não contraível e sem regras de
livres de derivação simples, então P é formado por regras do tipo:
contexto
Gramáticas livres de 1 S →ε
contexto
Derivações 2 A→a
Ambiguidade
Formas normais
3 A → w,
Autômatos onde w ∈ (V ∪ Σ)+ é de comprimento pelo menos 2.
com pilha e
GLC’s

Máquinas de
Turing

(1112 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G

Linguagens e onde u, v ∈ (V ∪ Σ)∗ ew∈ Σ∗ .


gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1113 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G

Linguagens e onde u, v ∈ (V ∪ Σ)∗ ew∈ Σ∗ .


gramáticas
regulares

Linguagens
livres de Um símbolo terminal é útil se ocorre em uma cadeia da linguagem de G.
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1114 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Definição 6.65
Fundamentos
matemáticos Dada uma GLC (V, Σ, P, S ), um símbolo x ∈ (V ∪ Σ) é útil se existe uma
Alfabetos e
linguagens
derivação
∗ ∗
Autômatos S =⇒ uxv =⇒ w,
finitos G G

Linguagens e onde u, v ∈ (V ∪ Σ)∗ ew∈ Σ∗ .


gramáticas
regulares

Linguagens
livres de Um símbolo terminal é útil se ocorre em uma cadeia da linguagem de G.
contexto
Gramáticas livres de Uma variável é definida como útil se ocorre em uma derivação que começa
contexto
Derivações na variável inicial e gera uma cadeia de terminais.
Ambiguidade
Formas normais Variável deve ocorrer em uma forma sentencial da gramática.
Autômatos Variável deve derivar uma cadeia de terminais.
com pilha e
GLC’s

Máquinas de
Turing

(1115 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A ,
 

 

Autômatos
A → a | bB ,


 


finitos 
 

B → b | dD ,
 
G1 : 
 
Linguagens e 
C → cC | c ,


 


gramáticas 

 


regulares  
 D → dD 
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1116 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A ,
 

 

Autômatos
A → a | bB ,


 


finitos 
 

B → b | dD ,
 
G1 : 
 
Linguagens e 
C → cC | c ,


 


gramáticas 

 


regulares  
 D → dD 
Linguagens
livres de L(G) = a∗ (a ∪ bb)
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1117 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A , S → AC | BS | B ,
   

 
 
 

Autômatos
A → a | bB , A → aA | aF ,

 
 

 


   
finitos 
 
 
 

B → b | dD , B → CF | b ,
   
G1 : 
  
 

Linguagens e  
 

C → cC | c , C → cC | D ,

 
  
G1 : 
   
gramáticas 

 

 
D → aD | BD | C ,
regulares   
 

 D → dD  







E → aA | BS A ,
Linguagens
 
L(G) = a∗ (a ∪ bb)


 


livres de 
 

F → bB | b
 
contexto
 
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1118 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.66
Alfabetos e
linguagens
S → aS | A , S → AC | BS | B ,
   

 
 
 

Autômatos
A → a | bB , A → aA | aF ,

 
 

 


   
finitos 
 
 
 

B → b | dD , B → CF | b ,
   
G1 : 
  
 

Linguagens e  
 

C → cC | c , C → cC | D ,

 
  
G1 : 
   
gramáticas 

 

 
D → aD | BD | C ,
regulares   
 

 D → dD  







E → aA | BS A ,
Linguagens
 
L(G) = a∗ (a ∪ bb)


 


livres de 
 

F → bB | b
 
contexto
 
Gramáticas livres de
contexto L(G) = b+
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1119 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Definição 6.67 (Símbolo Estéril)
Introdução Não gera qualquer cadeia de terminais de uma sentença.
Fundamentos
matemáticos

Alfabetos e Definição 6.68 (Símbolo Inalcançável)


linguagens

Autômatos
Não aparece em nenhuma forma sentencial da gramática.
finitos

Linguagens e
gramáticas Definição 6.69 (Simbolos Alcançáveis)
regulares
Símbolos deriváveis a partir do símbolo inicial da gramática.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Definição 6.70 (Um símbolo Inútil)
Derivações
Ambiguidade Símbolo estéril ou inalcançável.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1120 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Definição 6.67 (Símbolo Estéril)
Introdução Não gera qualquer cadeia de terminais de uma sentença.
Fundamentos
matemáticos

Alfabetos e Definição 6.68 (Símbolo Inalcançável)


linguagens

Autômatos
Não aparece em nenhuma forma sentencial da gramática.
finitos

Linguagens e
gramáticas Definição 6.69 (Simbolos Alcançáveis)
regulares
Símbolos deriváveis a partir do símbolo inicial da gramática.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Definição 6.70 (Um símbolo Inútil)
Derivações
Ambiguidade Símbolo estéril ou inalcançável.
Formas normais

Autômatos
com pilha e Definição 6.71
GLC’s

Máquinas de VΣ+ : Conjunto de variáveis que derivam cadeias de terminais.


Turing

(1121 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Algoritmo 10: Busca VΣ+
Alfabetos e Entrada: GLC (V, Σ, P, S ).
linguagens
Saída: Conjunto VΣ+ .
Autômatos
finitos 1 VΣ+ ← {A | (A → w) ∈ P, com w ∈ Σ∗ };
2 repita
Linguagens e
gramáticas
3 AUX ← VΣ+ ;
regulares 4 para cada (A ∈ V) faça
Linguagens
5 se (∃ A → w e w ∈ (AUX ∪ Σ)∗ ) então
livres de 6 VΣ+ ← VΣ+ ∪ {A};
contexto
Gramáticas livres de
contexto 7 até (AUX = VΣ+ );
Derivações
Ambiguidade 8 retorna (VΣ+ );
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1122 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1123 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
VT = VΣ+ .
Gramáticas livres de
contexto PT = {A → w | (A → w) ∈ P, A ∈ VΣ+ e w ∈ (VΣ+ ∪ Σ)∗ }.
Derivações
Ambiguidade
Formas normais
ΣT = {a ∈ Σ | (A → uav) ∈ P, A ∈ VT e u, v ∈ (VT ∪ Σ)∗ }.
Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1124 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(GT ) ⊆ L(G):
Gramáticas livres de
contexto
Como PT ⊆ P, qualquer derivação em GT também é derivação em G.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1125 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):
Gramáticas livres de
contexto
A remoção de regras de derivação que contêm variáveis em V − VΣ∗ não afeta
Derivações
Ambiguidade
o conjunto de cadeias de terminais geradas.
Formas normais

Autômatos

com pilha e
GLC’s

Máquinas de
Turing

(1126 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):

Gramáticas livres de
contexto
Seja S =⇒ w. Se esta derivação não é válida em GT , então uma variável de
G
Derivações
Ambiguidade V − VΣ+ ocorre numa forma sentencial intermediária, a qual não gera uma
Formas normais
cadeia de terminais.
Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1127 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.72


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLC
matemáticos
GT = (VT , ΣT , PT , S ) que satisfaz:
Alfabetos e
linguagens 1 L(GT ) = L(G),
Autômatos 2 Toda variável em VT deriva uma cadeia de terminais em GT .
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(G) ⊆ L(GT ):
Gramáticas livres de
contexto
Logo, todas as regras de derivação usadas estão em PT e w ∈ L(G).
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1128 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Exemplo 6.73


Fundamentos
matemáticos
1 :
G
S → AC | BS | B ,

Alfabetos e 
 

linguagens
A → aA | aF ,


 




 


Autômatos
B → CF | b ,


 


finitos

 

→ cC | D ,
 
C
 
Linguagens e
 
→ aD | BD | C ,

 

gramáticas



 D 



aA | BS A ,
regulares
 




 E → 




Linguagens  F → bB | b
 

livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1129 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Exemplo 6.73


Fundamentos
matemáticos Iteração VΣ+ AUX
1 :
G
S → AC | BS | B ,

Alfabetos e 
 
 0 {B, F}
linguagens
A → aA | aF ,
 
1 {B, F, A, S } {B, F}


 



 

Autômatos
B → CF | b , {B, F, A, S , E}
 


 

 2 {B, F, A, S }
finitos  
→ cC | D , {B, F, A, S , E} {B, F, A, S , E}
 
C 3
 
Linguagens e
 
→ aD | BD | C ,

 

gramáticas



 D 



aA | BS A ,
regulares
 




 E → 




Linguagens  F → bB | b
 

livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1130 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Exemplo 6.73


Fundamentos
matemáticos Iteração VΣ+ AUX
1 :
G
S → AC | BS | B ,

Alfabetos e 
 
 0 {B, F}
linguagens
A → aA | aF ,
 
1 {B, F, A, S } {B, F}


 



 

Autômatos
B → CF | b , {B, F, A, S , E}
 


 

 2 {B, F, A, S }
finitos  
→ cC | D , {B, F, A, S , E} {B, F, A, S , E}
 
C 3
 
Linguagens e
 
→ aD | BD | C ,

 

gramáticas



 D 



aA | BS A ,
regulares
 




 E → 




Linguagens  F → bB | b
 

livres de
contexto
S → BS | B ,
 
Gramáticas livres de 
 

contexto
A → aA | aF ,


 


Derivações

 

B → b,
 
GT : 
Ambiguidade
 

E → aA | BS A ,
Formas normais


 




 


Autômatos  
com pilha e
 F → bB | b 
GLC’s

Máquinas de
Turing

(1131 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
Algoritmo 11: Busca variáveis alcançáveis
matemáticos
Entrada: GLC (V, Σ, P, S ).
Alfabetos e
Saída: Conjunto VS .
linguagens

Autômatos
1 VS ← {S };
finitos 2 AUX ← ∅;
Linguagens e
3 repita
gramáticas 4 NOV AS ← VS − AUX ;
regulares 5 AUX ← VS ;
Linguagens 6 para cada (A ∈ NOV AS ) faça
livres de 7 para cada (A → w1 A1 w2 A2 . . .wk Ak wk+1 ) ∈ P faça
contexto
8 VS ← VS ∪ {A1 , A2 , . . . , Ak };
Gramáticas livres de
contexto
Derivações
Ambiguidade 9 até (AUX = VS );
Formas normais
10 retorna (VS );
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1132 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B ,
 
matemáticos

 

A → aA | aF ,


 



 

Alfabetos e  
B → CF | b ,

 

linguagens


 


C → cC | D ,
 
G1 : 
 
Autômatos 
D → aD | BD | C ,

 

finitos 

 


 
E → aA | BS A ,

 

Linguagens e 

 


gramáticas
 
F → bB | b

 

regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1133 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
   
matemáticos

 
 
 

A → aA | aF , A → aA | aF ,


 

 
 


 
 
 

Alfabetos e    
B → CF | b , B → b,
   
GT : 
   
linguagens


 

 
C → cC | D , E → aA | BS A ,
  
 

G1 : 
  
 

Autômatos  
 

D → aD | BD | C ,

 
  
finitos 







 F → bB | b 
E → aA | BS A ,

 

Linguagens e 

 


gramáticas
 
F → bB | b

 

regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1134 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
   
matemáticos

 
 
 

A → aA | aF , A → aA | aF ,


 

 
 


 
 
 

Alfabetos e    
B → CF | b , B → b,
   
GT : 
   
linguagens


 

 
C → cC | D , E → aA | BS A ,
  
 

G1 : 
  
 

Autômatos  
 

D → aD | BD | C ,

 
  
finitos 







 F → bB | b 
E → aA | BS A ,

 

Linguagens e 

 


gramáticas
 
F → bB | b

 

regulares

Linguagens
livres de
Iteração VS AUX NOV AS
contexto 0 {S } ∅
{S , B}
Gramáticas livres de
contexto 1 {S } {S }
Derivações
Ambiguidade
2 {S , B} {S , B} {B}
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1135 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.74
Fundamentos
S → AC | BS | B , S → BS | B ,
   
matemáticos

 
 
 

A → aA | aF , A → aA | aF ,


 

 
 


 
 
 

Alfabetos e    
B → CF | b , B → b,
   
GT : 
   
linguagens


 

 
C → cC | D , E → aA | BS A ,
  
 

G1 : 
  
 

Autômatos  
 

D → aD | BD | C ,

 
  
finitos 







 F → bB | b 
E → aA | BS A ,

 

Linguagens e 

 


gramáticas
 
F → bB | b

 

regulares

Linguagens
livres de
Iteração VS AUX NOV AS
contexto 0 {S } ∅
{S , B}
Gramáticas livres de
contexto 1 {S } {S }
Derivações
Ambiguidade
2 {S , B} {S , B} {B}
Formas normais

S → BS | B ,
( )
Autômatos
com pilha e GU :
GLC’s
B→b
Máquinas de
Turing

(1136 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Lema 6.75
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1137 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Lema 6.75
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e 1 Toda variável em VS é derivável a partir de S :


gramáticas
regulares Indução no número de iterações do algoritmo.
Linguagens
livres de Hipótese Indutiva:
contexto
Gramáticas livres de
Após n iterações todas as variáveis em VS são alcançáveis a partir de S .
contexto
Derivações Passo Indutivo:
Ambiguidade
Formas normais Provar que qualquer variável adicionada no passo n + 1 também é alcançável a
Autômatos partir de S .
com pilha e
GLC’s

Máquinas de
Turing

(1138 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Lema 6.75
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e 1 Toda variável em VS é derivável a partir de S :


gramáticas
regulares Passo Indutivo:
Linguagens Se B é essa variável, então existe a regra de derivação A → uBv, onde A ∈ VS
livres de
contexto após n iterações.
Gramáticas livres de
∗ ∗
contexto
Derivações
Por hipótese de indução, S =⇒ xAy. Portanto, S =⇒ xAy =⇒ xuBvy e B é
Ambiguidade
Formas normais
alcançável a partir de S .
Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1139 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Lema 6.75
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e 2 Toda variável alcançável a partir de S é inserida em VS :


gramáticas
regulares Indução no comprimento da derivação a partir S .
Linguagens
livres de Base:
contexto
Gramáticas livres de
Para n = 0, S é inserido em VS no passo 1.
contexto
Derivações Hipótese Indutiva:
Ambiguidade
Formas normais Toda variável derivável a partir de S numa derivação de comprimento máximo n
Autômatos é inserida no conjunto VS .
com pilha e
GLC’s

Máquinas de
Turing

(1140 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo
Lema 6.75
Introdução

Fundamentos
Dada uma gramática G = (V, Σ, P, S ), o algoritmo 11 gera o conjunto de
matemáticos variáveis alcançáveis a partir de S .
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e 2 Toda variável alcançável a partir de S é inserida em VS :


gramáticas
regulares Passo Indutivo:
n
Linguagens Seja a derivação S =⇒ xAy =⇒ xuBvy, onde no passo n + 1 a regra aplicada é
livres de
contexto A → uBv.
Gramáticas livres de
contexto
Derivações
Por H.I., A foi inserido em VS na iteração n. Logo, B é inserido na iteração
Ambiguidade seguinte.
Formas normais

Autômatos 
com pilha e
GLC’s

Máquinas de
Turing

(1141 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.76


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLG
GU = (VU , ΣU , PU , S ) que satisfaz:
matemáticos

Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1142 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.76


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLG
GU = (VU , ΣU , PU , S ) que satisfaz:
matemáticos

Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
VU = VS
PU = {A → w | (A → w) ∈ P, A ∈ VS e w ∈ (VS ∪ Σ)∗ }
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais
ΣU = {a ∈ Σ | (A → uav) ∈ P, A ∈ VU e u, v ∈ (VU ∪ Σ)∗ }
Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1143 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução Teorema 6.76


Fundamentos Dada uma GLC G = (V, Σ, P, S ), existe um algoritmo para construir uma GLG
GU = (VU , ΣU , PU , S ) que satisfaz:
matemáticos

Alfabetos e
linguagens 1 L(GU ) = L(G),
Autômatos 2 A gramática GU não contém símbolos inúteis.
finitos

Linguagens e
gramáticas
regulares
Demonstração.
Linguagens
livres de
contexto
L(GU ) = L(GT ):
Gramáticas livres de
contexto
Mostrar que toda cadeia derivável em GT também é derivável em GU (Se
Derivações
Ambiguidade
w ∈ L(GT ), toda variável que ocorre na derivação de w é alcançavel e toda
Formas normais
regra de derivação pertence à PU ).
Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1144 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
A eliminação de símbolos inúteis deve ser feita em duas etapas:
Autômatos
finitos 1 Remoção de variáveis que não geram cadeias de terminais, e
Linguagens e 2 Remoção de variáveis que não são deriváveis a partir do símbolo inicial.
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1145 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
A eliminação de símbolos inúteis deve ser feita em duas etapas:
Autômatos
finitos 1 Remoção de variáveis que não geram cadeias de terminais, e
Linguagens e 2 Remoção de variáveis que não são deriváveis a partir do símbolo inicial.
gramáticas
regulares

Linguagens A inversão dessas etapas pode não remover todos os símbolos inúteis.
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1146 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1147 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos Elimina variáveis que:
finitos
S → a,
( )
Linguagens e 1 não geram cadeias de terminais, G1 :
gramáticas A→b
regulares 2 não são deriváveis a partir de S , G2 : {S → a}
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1148 – 1206 de 1593)


Eliminação de símbolos inúteis
LFA 2018/2

H. Longo

Introdução
Exemplo 6.77
Fundamentos
S → a | AB ,
( )
matemáticos
Seja a GLC G :
Alfabetos e
linguagens
A→b
Autômatos Elimina variáveis que:
finitos
S → a,
( )
Linguagens e 1 não geram cadeias de terminais, G1 :
gramáticas A→b
regulares 2 não são deriváveis a partir de S , G2 : {S → a}
Linguagens
livres de Elimina variáveis que:
contexto
S → a | AB ,
( )
Gramáticas livres de
contexto
1 não são deriváveis a partir de S , G1 :
Derivações A→b
,
Ambiguidade
( )
S → a
Formas normais
2 não geram cadeias de terminais, G2 :
Autômatos A→b
com pilha e
GLC’s

Máquinas de
Turing

(1149 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Definição 6.78


linguagens

Autômatos
Uma GLC G = (V, Σ, P, S ) está na Forma Normal de Chomsky se cada regra
finitos de derivação tem uma das seguintes formas:
Linguagens e
gramáticas
1 S → ε,
regulares 2 A → a,
Linguagens 3 A → BC ,
livres de
contexto onde B, C ∈ V − {S } e a ∈ Σ.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1150 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo
Teorema 6.79
Introdução

Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1151 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo
Teorema 6.79
Introdução

Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas Assuma que:
regulares

Linguagens
1 O símbolo inicial S de G não é recursivo,
livres de 2 G não contém outras ε-regras além da regra S → ε,
contexto
Gramáticas livres de
3 G não contém derivações simples,
contexto
Derivações
4 G não contém símbolos inúteis.
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1152 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo
Teorema 6.79
Introdução

Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
Portanto, as regras de derivação em P são da forma:
Linguagens
1 S → ε,
livres de 2 A → a,
contexto
Gramáticas livres de
3 A → w, onde w ∈ ((V ∪ Σ) − {S })∗ e |w| > 1.
contexto
Derivações
Ambiguidade As regras 1 e 2 já estão na forma normal de Chomsky e são inseridas em P0 .
Formas normais

Autômatos Considere que w = w1 A1 w2 A2 . . .wk Ak wk+1 .


com pilha e
GLC’s

Máquinas de
Turing

(1153 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo
Teorema 6.79
Introdução

Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
A regra A → w pode ser substituída pelas regras:

→ B1 A1 B2 A2 . . .Bk Ak Bk+1
Linguagens
livres de A
contexto
Gramáticas livres de B1 → w1
contexto
Derivações B2 → w2
Ambiguidade
..
Formas normais
.
Autômatos
com pilha e Bk+1 → wk+1
GLC’s

Máquinas de
Turing

(1154 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo
Teorema 6.79
Introdução

Fundamentos
Se G = (V, Σ, P, S ) é uma gramática livre de contexto, então existe um
matemáticos algoritmo para construir uma gramática G0 = (V 0 , Σ, P0 , S 0 ), equivalente a G,
Alfabetos e
linguagens
na Forma Normal de Chomsky.
Autômatos
finitos
Demonstração.
Linguagens e
gramáticas
regulares
A regra A → B1 A1 B2 A2 . . .Bk Ak Bk+1 pode agora ser substituída pelas regras:
Linguagens
livres de A → B1 T 1
Ai T 2i , i = 1, . . . , k − 1
contexto
Gramáticas livres de T 2i−1 →
Bi T 2i−1 , i = 2, . . . , k
contexto
Derivações T 2i−2 →
Ambiguidade
Formas normais T 2k−1 → Ak Bk+1
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1155 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens Transformar a gramática abaixo para a Forma Normal de Chomsky:
Autômatos
finitos
AS A | aB ,
 

 S → 

B|S,
Linguagens e
 
G:  A →
 
gramáticas

b|ε

 

regulares
 B → 
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1156 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 1 Adicionar uma nova variável inicial:
Autômatos
finitos
S0 → S
Linguagens e S → AS A | aB S → AS A | aB
gramáticas
regulares A → B|S A → B|S
Linguagens B → b|ε B → b|ε
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1157 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 2 Eliminar regras B → ε (esq) e A → ε (dir):
Autômatos
finitos
S0 → S S0 → S
Linguagens e
gramáticas S → AS A | aB | a S → AS A | aB | a | S A | AS | S
regulares A → B|S |ε A → B|S
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1158 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 3 Eliminar regras S → S (esq) e S 0 → S (dir):
Autômatos
finitos
S0 → S S0 → AS A | aB | a | S A | AS
Linguagens e
gramáticas S → AS A | aB | a | S A | AS S → AS A | aB | a | S A | AS
regulares A → B|S A → B|S
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1159 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 4 Eliminar regras A → B (esq) e A → S (dir):
Autômatos
finitos
S0 → AS A | aB | a | S A | AS S0 → AS A | aB | a | S A | AS
Linguagens e
gramáticas S → AS A | aB | a | S A | AS S → AS A | aB | a | S A | AS
regulares A → S |b A → b | AS A | aB | a | S A | AS
Linguagens B → b B → b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1160 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.80
Alfabetos e
linguagens 5 Converter as demais regras:
Autômatos
finitos
S0 → AA1 | U B | a | S A | AS
Linguagens e
gramáticas S → AA1 | U B | a | S A | AS
regulares A → b | AA1 | U B | a | S A | AS
Linguagens A1 → SA
livres de
contexto
U → a
Gramáticas livres de B → b
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1161 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução Exemplo 6.81


Fundamentos
matemáticos
1 Transformar:
Alfabetos e
linguagens
S → aABC | a
Autômatos
finitos
A → aAB | a
B → bcB | bc
Linguagens e
gramáticas C → cC | c
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1162 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução Exemplo 6.81


Fundamentos
matemáticos
1 Transformar: 2 Resultado:
Alfabetos e
linguagens
S → aABC | a S → A0 T 1 | a
Autômatos
finitos
A → aAB | a A → A0 T 3 | a
B → bcB | bc B → B0 T 4 | B0 C 0
Linguagens e
gramáticas C → cC | c C → C 0C | c
regulares T1 → AT 2
Linguagens T2 → BC
livres de
contexto T3 → AB
Gramáticas livres de
contexto
T4 → C0 B
Derivações A0 → a
B0
Ambiguidade
Formas normais
→ b
Autômatos
C0 → c
com pilha e
GLC’s

Máquinas de
Turing

(1163 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.82
Alfabetos e
linguagens 1 Transformar: 2 Remoção de derivações simples.
Autômatos
finitos S → A S → A + T | b | (A)
Linguagens e A → A+T |T A → A + T | b | (A)
gramáticas T → b | (A) T → b | (A)
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1164 – 1206 de 1593)


Forma Normal de Chomsky
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.82
Alfabetos e 3 Lado direito de cada regra com comprimento máximo dois.
linguagens

Autômatos
finitos
S → AY | b | LZ Y representa +T
Z → AR Z representa A)
Linguagens e
gramáticas A → AY | b | LZ L representa (
regulares
T → b | LZ R representa )
Linguagens Y → PT P representa +
livres de
contexto P → +
Gramáticas livres de
contexto
L → (
Derivações R → )
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1165 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução Definição 6.83


Fundamentos
matemáticos Uma gramática G = (V, Σ, P, S ) tem recursão à esquerda se existe A ∈ V tal
+
Alfabetos e que A =⇒ Aw, com w ∈ (V ∪ Σ)∗ .
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1166 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução Definição 6.83


Fundamentos
matemáticos Uma gramática G = (V, Σ, P, S ) tem recursão à esquerda se existe A ∈ V tal
+
Alfabetos e que A =⇒ Aw, com w ∈ (V ∪ Σ)∗ .
linguagens

Autômatos
finitos Definição 6.84
Uma gramática G = (V, Σ, P, S ) tem recursão à direita se existe A ∈ V tal que
Linguagens e
gramáticas
regulares +

Linguagens
A =⇒ wA, com w ∈ (V ∪ Σ)∗ .
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1167 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução Definição 6.83


Fundamentos
matemáticos Uma gramática G = (V, Σ, P, S ) tem recursão à esquerda se existe A ∈ V tal
+
Alfabetos e que A =⇒ Aw, com w ∈ (V ∪ Σ)∗ .
linguagens

Autômatos
finitos Definição 6.84
Uma gramática G = (V, Σ, P, S ) tem recursão à direita se existe A ∈ V tal que
Linguagens e
gramáticas
regulares +

Linguagens
A =⇒ wA, com w ∈ (V ∪ Σ)∗ .
livres de
contexto
Gramáticas livres de
contexto
Definição 6.85
Derivações
Ambiguidade A recursão é dita direta se a derivação for em um passo:
Formas normais
G tem recursão direta à esquerda se A → Av ∈ P,
Autômatos
com pilha e G tem recursão direta à direita se A → vA ∈ P.
GLC’s

Máquinas de
Turing

(1168 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens

Autômatos direta à esquerda.


finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1169 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens

Autômatos direta à esquerda.


finitos

Linguagens e
gramáticas Demonstração.
regulares

Linguagens Assuma que:


livres de
contexto
1 S não é recursivo,
Gramáticas livres de
contexto
2 A única ε-regra é S → ε,
Derivações
Ambiguidade
3 (A → A) < P.
Formas normais

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1170 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens

Autômatos direta à esquerda.


finitos

Linguagens e
gramáticas Demonstração.
regulares

Linguagens Dividir as regras de derivação de A em dois grupos:


livres de
contexto
1 Recursivas: A → Au1 | Au2 | · · · | Au j ,
Gramáticas livres de
contexto
2 Não recursivas: A → v1 | v2 | · · · | vk ,
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s 
Máquinas de
Turing

(1171 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens

Autômatos direta à esquerda.


finitos

Linguagens e
gramáticas Demonstração.
regulares

Linguagens Derivação à esquerda é encerrada com uma regra A → vi .


livres de
contexto Toda cadeia derivada a partir de A começa com algum vi .
Gramáticas livres de
contexto
Derivações
Novas regras para derivação a partir de A:
Ambiguidade
Formas normais
1 Colocar um dos vi ’s na extremidade esquerda da cadeia a ser derivada.
Autômatos
2 Usar recursão à direita para gerar os ui ’s.
com pilha e
GLC’s 
Máquinas de
Turing

(1172 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução
Lema 6.86
Fundamentos Se G = (V, Σ, P, S ) é uma GLC e A ∈ V uma variável com recursão à
matemáticos
esquerda, então existe um algoritmo para construir uma gramática
equivalente G0 = (V 0 , Σ, P0 , S 0 ), na qual a variável A não apresenta recursão
Alfabetos e
linguagens

Autômatos direta à esquerda.


finitos

Linguagens e
gramáticas Demonstração.
regulares

Linguagens 1 vi ’s na extremidade esquerda:


livres de
contexto
Gramáticas livres de
contexto
A → v1 | · · · | vk | v1 Z | · · · | vk Z.
Derivações
Ambiguidade
Formas normais 2 ui ’s a direita:
Autômatos
com pilha e
Z → u1 Z | · · · | u j Z | u1 | · · · | u j ,
GLC’s 
Máquinas de
Turing

(1173 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1174 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos

L(G) = (b ∪ bb)(a ∪ ab)∗


finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1175 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos

L(G) = (b ∪ bb)(a ∪ ab)∗


finitos

Linguagens e
gramáticas
A → bb | b | bbZ | bZ ,
( )
regulares
0
G :
Linguagens
livres de
Z → aZ | abZ | a | ab
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1176 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Exemplo 6.87
Alfabetos e
linguagens
G : {A → Aa | Aab | bb | b}
Autômatos

L(G) = (b ∪ bb)(a ∪ ab)∗


finitos

Linguagens e
gramáticas
A → bb | b | bbZ | bZ ,
( )
regulares
0
G :
Linguagens
livres de
Z → aZ | abZ | a | ab
contexto
Gramáticas livres de
contexto
As regras de derivação de Z geram as cadeias (a ∪ ab)+
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1177 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b}
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1178 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b}
finitos

Linguagens e L(G) = ba∗


gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1179 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b}
finitos

Linguagens e L(G) = ba∗


gramáticas
A → b | bZ ,
( )
regulares
G0 :
Linguagens
Z → aZ | a
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1180 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos

Linguagens e L(G) = ba∗


gramáticas
A → b | bZ ,
( )
regulares
G0 :
Linguagens
Z → aZ | a
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1181 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos

Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗


gramáticas
A → b | bZ ,
( )
regulares
G0 :
Linguagens
Z → aZ | a
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1182 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos

Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗


gramáticas
A → b | bZ , A → b | c | bZ | cZ ,
( ) ( )
regulares
G0 : G0 :
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1183 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas
A → b | bZ , A → b | c | bZ | cZ ,
( ) ( )
regulares
G0 : G0 :
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1184 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas (
A → b | bZ ,
) (
A → b | c | bZ | cZ ,
) L(G) = (b ∪ c)∗ a(b ∪ c)∗
regulares
G0 : G0 :
Linguagens
Z → aZ | a Z → aZ | bZ | a | b
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1185 – 1206 de 1593)


Remoção de recursão direta à esquerda
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Exemplo 6.88


linguagens

A → AB | BA | a ,
( )
Autômatos 1 G : {A → Aa | b} 2 G : {A → Aa | Ab | b | c}
finitos 3 G:
B→b|c
Linguagens e L(G) = ba∗ L(G) = (b ∪ c)(a ∪ b)∗
gramáticas (
A → b | bZ ,
) (
A → b | c | bZ | cZ ,
) L(G) = (b ∪ c)∗ a(b ∪ c)∗
regulares
G0 : G0 : 
A → a | BAZ | aZ | BA ,

Linguagens
Z → aZ | a Z → aZ | bZ | a | b 
 

 Z → BZ | B ,
G0 : 

 

livres de 

contexto
 B→b|c
 

Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1186 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Definição 6.89


linguagens

Autômatos
Uma GLC G = (V, Σ, P, S ) está na forma normal de Greibach se as regras de
finitos derivação seguem as regras:
Linguagens e
gramáticas
1 S → ε,
regulares 2 A → a,
Linguagens 3 A → aA1 A2 . . . An ,
livres de
contexto onde a ∈ Σ e Ai ∈ V − {S } para i = 1, 2, . . . , n.
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1187 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens

Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1188 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens

Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares

Linguagens
livres de Demonstração.
contexto
Gramáticas livres de
contexto
1 L(G0 ) ⊆ L(G)
Derivações
Ambiguidade Como cada A → uwi v é derivável em G, a inclusão é garantida pelo lema 6.51.
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de 
Turing

(1189 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo
Lema 6.90
Introdução
Seja G = (V, Σ, P, S ) uma GLC , A → uBv uma regra de P e
Fundamentos
matemáticos B → w1 | w2 | · · · | wn as regras de derivação de B. A gramática
Alfabetos e G0 = (V, Σ, P0 , S ) é equivalente a G, onde:
linguagens

Autômatos
finitos
P0 = (P − {A → uBv} ∪ {A → uw1 v | uw2 v | · · · | uwn v}).
Linguagens e
gramáticas
regulares

Linguagens
livres de Demonstração.
contexto
Gramáticas livres de
contexto
2 L(G) ⊆ L(G0 )
Derivações
Ambiguidade Toda cadeia de terminais derivável em G, usando a regra A → uBv, também é
Formas normais
derivável em G0 .
∗ ∗
Autômatos
com pilha e
G : S =⇒ pAq =⇒ puBvq =⇒ puwi vq =⇒ w,
∗ ∗
GLC’s G0 : S =⇒ pAq =⇒ puwi vq =⇒ w, usando a regra A → uwi v.
Máquinas de 
Turing

(1190 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução

Fundamentos Conversão da Forma Normal de Chomsky para a Forma Normal de Greibach:


matemáticos
1 Transformar regras de derivação segundo o lema 6.90,
Alfabetos e
linguagens
2 Eliminar recursão direta à esquerda.
Autômatos
3 Atribuição de número de ordem às variáveis da gramática:
finitos Variável inicial é a número 1.
Linguagens e Demais variáveis numeradas em qualquer ordem.
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1191 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução

Fundamentos Conversão da Forma Normal de Chomsky para a Forma Normal de Greibach:


matemáticos
1 Transformar regras de derivação segundo o lema 6.90,
Alfabetos e
linguagens
2 Eliminar recursão direta à esquerda.
Autômatos
3 Atribuição de número de ordem às variáveis da gramática:
finitos Variável inicial é a número 1.
Linguagens e Demais variáveis numeradas em qualquer ordem.
gramáticas
regulares

Linguagens
1 Com o lema 6.90 as regras de derivação são da forma:
livres de
contexto 1 S → ε,
Gramáticas livres de
contexto
2 A → aw,
Derivações
Ambiguidade
3 A → Bw,
Formas normais
onde w ∈ V ∗ e ordem de B é maior que a ordem de A.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1192 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução

Fundamentos

 S → AB | ε ,

 Variável Ordem
 
matemáticos
A → AB | CB | a , S 1


 


 
G:
 
Alfabetos e 
 B → AB | b , 

 A 2
linguagens  


 C → AC | c


 B 3
Autômatos
C 4
finitos L(G) =???
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1193 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
Eliminar recursão direta à esquerda na regra A → AB:
Fundamentos
S → AB | ε ,
matemáticos
 

 

CBR1 | aR1 | CB | a ,
 
Alfabetos e



 A → 



linguagens
AB | b ,
 
G1 :  B →
 

AC | c ,
 
Autômatos
 


 C → 


finitos 
 

 R1 → BR1 | B 
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1194 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
Ordem de A é menor do que ordem de B na regra B → AB:
Fundamentos
S → AB | ε ,
matemáticos
 

 

CBR1 | aR1 | CB | a ,
 
Alfabetos e



 A → 



linguagens
CBR1 B | aR1 B | CBB | aB | b ,
 
G2 :  B →
 

AC | c ,
 
Autômatos
 


 C → 


finitos 
 

 R1 → BR1 | B 
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1195 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
Ordem de A é menor do que ordem de C na regra C → AB:
Fundamentos
S → AB | ε ,
matemáticos
 

 

CBR1 | aR1 | CB | a ,
 
Alfabetos e



 A → 



linguagens
CBR1 B | aR1 B | CBB | aB | b ,
 
G3 :  B →
 

CBR1 C | aR1 C | CBC | aC | c ,
 
Autômatos
 


 C → 


finitos 
 

 R1 → BR1 | B 
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1196 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
Eliminar recursão direta à esquerda nas regras C → CBR1 C e C → CBC :
Fundamentos
AB | ε ,
 
matemáticos 
 S → 

CBR1 | aR1 | CB | a ,
 
A →
 
Alfabetos e


 


CBR1 B | aR1 B | CBB | aB | b ,
linguagens

 


 B → 

G4 : 
 
Autômatos 
 C → aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 , 


finitos
 
BR1 | B ,
 
R1 →


 


 
Linguagens e

 

gramáticas
 R2 → BR1 CR2 | BCR2 | BR1 C | BC 
regulares
Lado direito das regras de derivação de C (variável de maior ordem) começam com terminal.
Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1197 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de B:
Fundamentos
AB | ε ,
 
matemáticos 
 S → 

CBR1 | aR1 | CB | a ,
 
A →


 


Alfabetos e 
 

→ aR1 B | aB | b |
 
linguagens



 B 



 

 aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B | 

Autômatos G5 : 
 
finitos


 aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB , 



aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
 
C →


 


Linguagens e
 
BR1 | B ,
 
R →

 

gramáticas 

 1 


 R → BR1 CR2 | BCR2 | BR1 C | BC
 
regulares 2

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1198 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de A:
Fundamentos
AB | ε ,
 
matemáticos 

 S → 


A → aR1 | a |


 


Alfabetos e 
 

aR1 CBR1 | aCBR1 | cBR1 | aR1 CR2 BR1 | aCR2 BR1 | cR2 BR1 |
 
linguagens


 


aR1 CB | aCB | cB | aR1 CR2 B | aCR2 B | cR2 B ,


 


 
Autômatos


 


finitos  B

 → aR1 B | aB | b | 

G6 : 


 aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B | 


Linguagens e  
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,


 


gramáticas 
 

aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
 
C →
regulares


 


 
BR1 | B ,
 
R1 →

 

Linguagens


 


 
livres de
 R
2 → BR1 CR2 | BCR2 | BR1 C | BC 
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1199 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de S :
Fundamentos
matemáticos
 S

 → ε| 


aR1 B | aB |


 


Alfabetos e 
 

aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |

 

linguagens 

 


aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,


 


Autômatos


 


finitos




 A → aR1 | a | 




aR1 CBR1 | aCBR1 | cBR1 | aR1 CR2 BR1 | aCR2 BR1 | cR2 BR1 |


 


Linguagens e
 
aR1 CB | aCB | cB | aR1 CR2 B | aCR2 B | cR2 B ,
 
G7 : 
 
gramáticas  

B → aR1 B | aB | b |
 
regulares 

 



 

Linguagens



 aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B | 



aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
 
livres de


 


 
contexto aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
 



 C → 



BR1 | B ,
Gramáticas livres de  
R1 →

 

contexto 
 

 
R2 → BR1 CR2 | BCR2 | BR1 C | BC
Derivações
 
Ambiguidade
Formas normais Variável A torna-se inútil.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1200 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de R1 e R2 :
Fundamentos
ε|
 
matemáticos 

 S → 


aR1 B | aB |


 


Alfabetos e 
 

aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |
 
linguagens


 


aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,


 


 
Autômatos


 


finitos




 B → aR1 B | aB | b | 






 aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B | 


Linguagens e  
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,


 


gramáticas 
 

aR1 C | aC | c | aR1 CR2 | aCR2 | cR2 ,
 
G8 :  C →
regulares
 
 

R1 → aR1 BR1 | aBR1 | bR1 |

 

Linguagens


 


 
livres de



 aR1 CBR1 BR1 | aCBR1 BR1 | cBR1 BR1 | aR1 CR2 BR1 BR1 | aCR2 BR1 BR1 | cR2 BR1 BR1 | 



contexto 


 aR1 CBBR1 | aCBBR1 | cBBR1 | aR1 CR2 BBR1 | aCR2 BBR1 | cR2 BBR1 |




Gramáticas livres de

 

contexto




 aR1 B | aB | b | 




Derivações
aR1 CBR1 B | aCBR1 B | cBR1 B | aR1 CR2 BR1 B | aCR2 BR1 B | cR2 BR1 B |


 


 
aR1 CBB | aCBB | cBB | aR1 CR2 BB | aCR2 BB | cR2 BB ,
Ambiguidade 

 


Formas normais


 


→ BR1 CR2 | BCR2 | BR1 C | BC

 R 

2
Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1201 – 1206 de 1593)


Forma Normal de Chomsky para Forma Normal de Greibach
LFA 2018/2

H. Longo
Exemplo 6.91
Introdução
inserir um terminal no lado direito das regras de derivação de R2 :
Fundamentos
matemáticos
8 :
G 
Alfabetos e


 R2 → aR1 BR1 CR2 | aBR1 CR2 | bR1 CR2 | 


aR1 CBR1 BR1 CR2 | aCBR1 BR1 CR2 | cBR1 BR1 CR2 |

 

linguagens 

 


aR1 CR2 BR1 BR1 CR2 | aCR2 BR1 BR1 CR2 | cR2 BR1 BR1 CR2 |


 


Autômatos


 


 
finitos


 


 


 aR1 CBBR1 CR2 | aCBBR1 CR2 | cBBR1 CR2 | aR1 CR2 BBR1 CR2 | aCR2 BBR1 CR2 | cR2 BBR1 CR2 | 

Linguagens e


 


 
gramáticas 


 aR1 BCR2 | aB | bCR2 |




regulares 
 





 aR1 CBR1 BCR2 | aCBR1 BCR2 | cBR1 BCR2 | aR1 CR2 BR1 BCR2 | aCR2 BR1 BCR2 | cR2 BR1 BCR2 | 



Linguagens 
aR1 CBBCR2 | aCBBCR2 | cBBCR2 | aR1 CR2 BBCR2 | aCR2 BBCR2 | cR2 BBCR2 |

livres de


 


 
contexto
 
aR1 BR1 C | aBR1 C | bR1 C |


 


Gramáticas livres de

 

aR1 CBR1 BR1 C | aCBR1 BR1 C | cBR1 BR1 C | aR1 CR2 BR1 BR1 C | aCR2 BR1 BR1 C | cR2 BR1 BR1 C | 

 
contexto 
 

 
aR1 CBBR1 C | aCBBR1 C | cBBR1 C | aR1 CR2 BBR1 C | aCR2 BBR1 C | cR2 BBR1 C |
Derivações


 


 
Ambiguidade


 


 
Formas normais
aR1 BC | aBC | bC |


 



 

aR1 CBR1 BC | aCBR1 BC | cBR1 BC | aR1 CR2 BR1 BC | aCR2 BR1 BC | cR2 BR1 BC |
 
Autômatos


 


 
com pilha e 

 


aR1 CBBC | aCBBC | cBBC | aR1 CR2 BBC | aCR2 BBC | cR2 BBC
 
GLC’s  
Máquinas de
Turing

(1202 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução Teorema 6.92


Fundamentos
matemáticos Se G = (V, Σ, P, S ) é uma GLC , então existe um algoritmo para construir uma
Alfabetos e gramática G0 = (V, Σ, P0 , S ), equivalente a G, na Forma Normal de Greibach.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto
Gramáticas livres de
contexto
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e
GLC’s

Máquinas de
Turing

(1203 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução Teorema 6.92


Fundamentos
matemáticos Se G = (V, Σ, P, S ) é uma GLC , então existe um algoritmo para construir uma
Alfabetos e gramática G0 = (V, Σ, P0 , S ), equivalente a G, na Forma Normal de Greibach.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas
Mostrar que as regras de derivação de G podem ser convertidas para uma
regulares das formas:
Linguagens
livres de
1 Ak → A j w com k < j,
contexto 2 Ak → aw,
Gramáticas livres de
contexto
Derivações
onde j e k representam a ordem das variáveis.
Ambiguidade
Formas normais

Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1204 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução Teorema 6.92


Fundamentos
matemáticos Se G = (V, Σ, P, S ) é uma GLC , então existe um algoritmo para construir uma
Alfabetos e gramática G0 = (V, Σ, P0 , S ), equivalente a G, na Forma Normal de Greibach.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas
Indução na ordem das variáveis.
regulares 1 Base:
Linguagens
livres de
S é de ordem 1 e como S não é recursiva, a condição é satisfeita.
contexto 2 Hipótese:
Gramáticas livres de
contexto Suponha que todas as variáveis até a de número k satisfaçam a condição.
Derivações
Ambiguidade
Formas normais

Autômatos
com pilha e

GLC’s

Máquinas de
Turing

(1205 – 1206 de 1593)


Forma Normal de Greibach
LFA 2018/2

H. Longo

Introdução Teorema 6.92


Fundamentos
matemáticos Se G = (V, Σ, P, S ) é uma GLC , então existe um algoritmo para construir uma
Alfabetos e gramática G0 = (V, Σ, P0 , S ), equivalente a G, na Forma Normal de Greibach.
linguagens

Autômatos
finitos Demonstração.
Linguagens e
gramáticas
3 Passo Indutivo:
regulares
Se Ak → Ai w com i < k, substituir Ai e gerar um conjunto de regras da forma
Linguagens
livres de Ak → A j w, onde j > i.
contexto
Gramáticas livres de
Por H.I. Ai satisfaz a condição.
contexto
Derivações Este processo pode ser repetido k − i vezes.
Ambiguidade
Formas normais
Todas as recursões diretas à esquerda podem ser eliminadas usando o lema
Autômatos 6.86.
com pilha e

GLC’s

Máquinas de
Turing

(1206 – 1206 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos com pilha e GLC’s


finitos

Linguagens e
gramáticas
regulares

Linguagens
Definições básicas
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1207 – 1248 de 1593)


Pushdown Automata
LFA 2018/2

H. Longo
Esquema básico
Introdução
Cadeia w ∈ Σ∗
Fundamentos
matemáticos

Alfabetos e
linguagens
w1 w2 ... wi ... wn−1 wn
Autômatos
finitos

Linguagens e
gramáticas
regulares Controle
Linguagens finito de uk
livres de
contexto
estados
Autômatos
uk−1 Pilha
com pilha e
GLC’s ..
Definições básicas .
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s
u1
Máquinas de
Turing

(1208 – 1248 de 1593)


Definição
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.1
Alfabetos e
linguagens Um Autômato com Pilha (PDA – Pushdown Automaton) é uma sextupla
Autômatos P = hΣ, Γ, S , s0 , δ, Fi, onde:
finitos
Σ : alfabeto de entrada;
Linguagens e
gramáticas Γ : alfabeto da pilha;
regulares
S , ∅ : conjunto finito de estados;
Linguagens
livres de s0 ∈ S : estado inicial;
contexto δ : S × (Σ ∪ {ε}) × (Γ ∪ {ε}) → P(S × (Γ ∪ {ε})) : função de transição de estados; e
Autômatos F ⊆ S : conjunto de estados finais (ou de aceitação).
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1209 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e δ(si , a, x) = {(s j , y), (sk , z)}.


linguagens
Duas transições possíveis quando o autômato está no estado si , lendo o
Autômatos
finitos
símbolo a de entrada e com x no topo da pilha.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1210 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e δ(si , a, x) = {(s j , y), (sk , z)}.


linguagens
Duas transições possíveis quando o autômato está no estado si , lendo o
Autômatos
finitos
símbolo a de entrada e com x no topo da pilha.
Linguagens e A transição (s j , y) ∈ δ(si , a, x) força o autômato a:
gramáticas
regulares 1 Mudar o estado corrente de si para s j ;
Linguagens 2 Processar o símbolo a (avançar a cabeça de leitura da fita);
livres de
contexto
3 Remover o símbolo x do topo da pilha; e
Autômatos
4 Colocar o símbolo y no topo da pilha.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1211 – 1248 de 1593)


Representação Gráfica
LFA 2018/2

H. Longo

Introdução

Fundamentos a, b → c:
matemáticos

Alfabetos e
a = ε : transição sem ler símbolo de entrada.
linguagens b = ε : transição sem ler símbolo da pilha.
Autômatos c = ε : transição sem escrever na pilha.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1212 – 1248 de 1593)


Representação Gráfica
LFA 2018/2

H. Longo

Introdução

Fundamentos a, b → c:
matemáticos

Alfabetos e
a = ε : transição sem ler símbolo de entrada.
linguagens b = ε : transição sem ler símbolo da pilha.
Autômatos c = ε : transição sem escrever na pilha.
finitos

Linguagens e
gramáticas
regulares
δ(si , a, x) = {(s j , y)}.
Linguagens O PDA muda do estado si para o s j , lê a da fita de entrada, desempilha x e
livres de
contexto
empilha y.
Autômatos
a, x → y
com pilha e
GLC’s si sj
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1213 – 1248 de 1593)


Representação Gráfica
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
δ(si , ε, x) = {(si , ε)}.
linguagens
Se a posição de entrada é ε, a transição não processa um símbolo de entrada,
Autômatos mas desempilha o x.
finitos

Linguagens e ε, x → ε
gramáticas
regulares

Linguagens
livres de
contexto si
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1214 – 1248 de 1593)


Representação Gráfica
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
δ(si , ε, ε) = {(si , x)}.
linguagens
Se a posição de entrada é ε, a transição não processa um símbolo de entrada,
Autômatos mas empilha o x.
finitos

Linguagens e ε, ε → x
gramáticas
regulares

Linguagens
livres de
contexto si
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1215 – 1248 de 1593)


Representação Gráfica
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
δ(si , a, ε) = {(s j , ε)}.
Autômatos
Transição equivalente a transição de um DFA.
finitos Efeito determinado somente pelo estado corrente e pelo símbolo de entrada.
Linguagens e Transição não consulta e não altera a pilha.
gramáticas
regulares
a, ε → ε
Linguagens
livres de
si sj
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1216 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
P = hΣ, Γ, S , sini , δ, Fi.
Autômatos
finitos
w = w1 w2 . . . wm , com wi ∈ Σ, i = 1, . . . , m : cadeia de entrada.
Linguagens e
gramáticas s0 , s1 , . . . , sm ∈ Q : seqüência de estados.
regulares

Linguagens u0 , u1 , . . . , um ∈ Γ∗ : seqüência de conteúdos da pilha.


livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1217 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e P aceita a cadeia w se:


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1218 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e P aceita a cadeia w se:


s0 = sini e u0 = ε.
linguagens
1
Autômatos
finitos P começa no estado inicial e com a pilha vazia.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1219 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e P aceita a cadeia w se:


s0 = sini e u0 = ε.
linguagens
1
Autômatos
finitos P começa no estado inicial e com a pilha vazia.
Linguagens e 2 (si+1 , ui+1 ) ∈ δ(si , wi+1 , ui ), i = 0, . . . , m − 1, onde ui = av e ui+1 = bv0 para
gramáticas
regulares
a, b ∈ Γ ∪ {ε} e v, v0 ∈ Γ∗ .
Linguagens
P move-se de acordo com o estado atual, a pilha e o próximo símbolo da cadeia.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1220 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e P aceita a cadeia w se:


s0 = sini e u0 = ε.
linguagens
1
Autômatos
finitos P começa no estado inicial e com a pilha vazia.
Linguagens e 2 (si+1 , ui+1 ) ∈ δ(si , wi+1 , ui ), i = 0, . . . , m − 1, onde ui = av e ui+1 = bv0 para
gramáticas
regulares
a, b ∈ Γ ∪ {ε} e v, v0 ∈ Γ∗ .
Linguagens
P move-se de acordo com o estado atual, a pilha e o próximo símbolo da cadeia.
livres de
contexto
3 sm ∈ F .
Autômatos
Um estado final ocorre no final da cadeia.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1221 – 1248 de 1593)


Configuração de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 7.2
Tripla [si , w, α], onde si é o estado corrente, w ∈ Σ∗ é o conjunto de símbolos
matemáticos

Alfabetos e
linguagens ainda não processados e α é o conteúdo da pilha.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1222 – 1248 de 1593)


Configuração de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 7.2
Tripla [si , w, α], onde si é o estado corrente, w ∈ Σ∗ é o conjunto de símbolos
matemáticos

Alfabetos e
linguagens ainda não processados e α é o conteúdo da pilha.
Autômatos
finitos

Linguagens e
Notação
gramáticas
regulares 7−→ : define uma função de S × Σ∗ × Γ∗ em S × Σ∗ × Γ∗ .
M
Linguagens
livres de
contexto
[si , w, α] 7−→[s j , v, β] : configuração [s j , v, β] é obtida a partir de [si , w, α] com
M
Autômatos apenas uma transição de estados.
com pilha e

GLC’s 7−→ : representa uma seqüência de transições.
Definições básicas M
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1223 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução Exemplo 7.3


Fundamentos
matemáticos
P = hΣ = {a, b}, Γ = {x}, S = {s0 , s1 }, s0 , δ, F = {s0 , s1 }i, onde:
Alfabetos e
δ(s0 , a, ε) = {(s0 , x)}
linguagens δ(s0 , b, x) = {(s1 , ε)}
Autômatos δ(s1 , b, x) = {(s1 , ε)}
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1224 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução Exemplo 7.3


Fundamentos
matemáticos
P = hΣ = {a, b}, Γ = {x}, S = {s0 , s1 }, s0 , δ, F = {s0 , s1 }i, onde:
Alfabetos e
δ(s0 , a, ε) = {(s0 , x)}
linguagens δ(s0 , b, x) = {(s1 , ε)}
Autômatos δ(s1 , b, x) = {(s1 , ε)}
finitos

Linguagens e L(P) = {ai bi | i ≥ 0}


gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1225 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução Exemplo 7.3


Fundamentos
matemáticos
P = hΣ = {a, b}, Γ = {x}, S = {s0 , s1 }, s0 , δ, F = {s0 , s1 }i, onde:
Alfabetos e
δ(s0 , a, ε) = {(s0 , x)}
linguagens δ(s0 , b, x) = {(s1 , ε)}
Autômatos δ(s1 , b, x) = {(s1 , ε)}
finitos

Linguagens e L(P) = {ai bi | i ≥ 0}


gramáticas
regulares [s0 , aabb, ε] 7−→[s0 , abb, x] 7−→[s0 , bb, xx] 7−→[s1 , b, x] 7−→[s1 , ε, ε]
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1226 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução Exemplo 7.3


Fundamentos
matemáticos
P = hΣ = {a, b}, Γ = {x}, S = {s0 , s1 }, s0 , δ, F = {s0 , s1 }i, onde:
Alfabetos e
δ(s0 , a, ε) = {(s0 , x)}
linguagens δ(s0 , b, x) = {(s1 , ε)}
Autômatos δ(s1 , b, x) = {(s1 , ε)}
finitos

Linguagens e L(P) = {ai bi | i ≥ 0}


gramáticas
regulares [s0 , aabb, ε] 7−→[s0 , abb, x] 7−→[s0 , bb, xx] 7−→[s1 , b, x] 7−→[s1 , ε, ε]
Linguagens

a, ε → x b, x → ε
livres de
contexto

Autômatos
com pilha e
GLC’s
b, x → ε
Definições básicas
Variações de PDA’s
s0 s1
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1227 – 1248 de 1593)


Linguagem aceita por um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Definição 7.4


linguagens

Autômatos Seja P = hΣ, Γ, S , s0 , δ, Fi um PDA. Uma cadeia w ∈ Σ∗ é aceita por P se existe um


finitos
processamento

Linguagens e
gramáticas [s0 , w, ε] 7−→[si , ε, ε],
regulares

Linguagens onde si ∈ F . A linguagem de P, denotada L(P), é o conjunto de cadeias aceitas


livres de
contexto por P.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1228 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.5


matemáticos

Alfabetos e L = {wcwR | w ∈ {a, b}∗ }.


linguagens
P = hΣ = {a, b, c}, Γ = {a, b}, S = {s0 , s1 }, s0 , δ, F = {s1 }i, onde:
Autômatos
finitos
δ(s0 , a, ε) = {(s0 , a)}
Linguagens e δ(s0 , b, ε) = {(s0 , b)}
gramáticas
regulares δ(s0 , c, ε) = {(s1 , ε)}
Linguagens δ(s1 , a, a) = {(s1 , ε)}
livres de δ(s1 , b, b) = {(s1 , ε)}
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1229 – 1248 de 1593)


Exemplo de Autômato com Pilha
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.5


matemáticos

Alfabetos e
Processamento da cadeia abcba:
linguagens [s0 , abcba, ε] 7−→[s0 , bcba, a] 7−→[s0 , cba, ba]
Autômatos 7−→[s1 , ba, ba] 7−→[s1 , a, a] 7−→[s1 , ε, ε]
finitos

Linguagens e
gramáticas b, ε → b b, b → ε
a, ε → a a, a → ε
regulares

Linguagens
livres de
contexto

Autômatos c, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1230 – 1248 de 1593)


Transições compatíveis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.6
Alfabetos e
linguagens
Duas transições (s j , c) ∈ δ(si , u, a) e (sk , d) ∈ δ(si , v, b) são compatíveis se
Autômatos
finitos
alguma das condições a seguir é satisfeita:
Linguagens e
1 u = v e a = b;
gramáticas
regulares
2 u = v e a = ε ou b = ε;
Linguagens
3 a = b e u = ε ou v = ε;
livres de 4 u = ε ou v = ε e a = ε ou b = ε;
contexto

Autômatos Transições compatíveis podem ser aplicadas para a mesma configuração.


com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1231 – 1248 de 1593)


PDA Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 7.7
Autômatos
finitos
Um PDA é determinístico se existe no máximo uma transição para cada
Linguagens e
gramáticas combinação de estado, símbolo de entrada e símbolo no topo da pilha.
regulares

Linguagens
Um PDA é determinístico se não contém transições compatíveis distintas.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1232 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.8


Introdução L = {ai | i ≥ 0} ∪ {ai bi | i ≥ 0}.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1233 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.8


Introdução L = {ai | i ≥ 0} ∪ {ai bi | i ≥ 0}.
Fundamentos
matemáticos

Alfabetos e
linguagens

a, ε → a b, a → ε
Autômatos
finitos

Linguagens e
gramáticas
regulares
b, a → ε
Linguagens s0 s1
livres de
contexto

Autômatos
com pilha e
GLC’s
ε, ε → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s s2 ε, a → ε
Máquinas de
Turing

(1234 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.8


Introdução L = {ai | i ≥ 0} ∪ {ai bi | i ≥ 0}.
Fundamentos A transição ε a partir de s0 permite chegar a s2 depois de processar toda a
matemáticos
cadeia de entrada.
Alfabetos e
linguagens Esta transição introduz o não determinismo ao PDA.

a, ε → a b, a → ε
Autômatos
finitos

Linguagens e
gramáticas
regulares
b, a → ε
Linguagens s0 s1
livres de
contexto

Autômatos
com pilha e
GLC’s
ε, ε → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s s2 ε, a → ε
Máquinas de
Turing

(1235 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.9


matemáticos

Alfabetos e L = {wwR | w ∈ {a, b}∗ }.


linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1236 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.9


matemáticos

Alfabetos e L = {wwR | w ∈ {a, b}∗ }.


linguagens

Autômatos
finitos

Linguagens e
gramáticas b, ε → b b, b → ε
regulares
a, ε → a a, a → ε
Linguagens
livres de
contexto

Autômatos ε, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1237 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.9


matemáticos

Alfabetos e L = {wwR | w ∈ {a, b}∗ }.


linguagens
O não determinismo permite ao PDA “adivinhar” quando a metade da cadeia de
Autômatos
finitos entrada foi processada.
Linguagens e
gramáticas b, ε → b b, b → ε
regulares
a, ε → a a, a → ε
Linguagens
livres de
contexto

Autômatos ε, ε → ε
com pilha e s0 s1
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1238 – 1248 de 1593)


Processamento de um PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição formal não contém mecanismos para testar pilha vazia.
Autômatos
finitos Um PDA pode simular esse mecanismo com um símbolo particular (por
Linguagens e exemplo, $):
gramáticas
regulares $ é o primeiro símbolo a ser colocado na pilha.
Linguagens Quando o PDA ler novamente o $, então a pilha está vazia.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1239 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.10


matemáticos
L = {0n 1n | n ≥ 0}.
Alfabetos e
linguagens P = hΣ, Γ, S , s0 , δ, Fi, onde:
Autômatos
finitos
S = {s0 , s1 , s2 , s3 }.
Linguagens e
Σ = {0, 1}.
gramáticas Γ = {0, $}.
regulares
F = {s0 , s3 }.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1240 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.10


matemáticos
δ é definida na tabela a seguir, onde entradas em branco significam ∅:
Alfabetos e
linguagens
Entrada 0 1 ε
Autômatos
finitos Pilha 0 $ ε 0 $ ε 0 $ ε
Linguagens e s0 {(s1 , $)}
gramáticas s1 {(s1 , 0)} {(s2 , ε)}
regulares
s2 {(s2 , ε)} {(s3 , ε)}
Linguagens s3
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1241 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.10


matemáticos
Representação gráfica:
Alfabetos e
linguagens

Autômatos ε, ε → $ 0, ε → 0
finitos s0 s1
Linguagens e
gramáticas
regulares

Linguagens 1, 0 → ε
livres de
contexto

Autômatos ε, $ → ε 1, 0 → ε
com pilha e s3 s2
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1242 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.11

Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1243 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.11

Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1244 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.11

Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens
Não determinismo é essencial para reconhecer L!
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1245 – 1248 de 1593)


Exemplo de PDA não Determinístico
LFA 2018/2

H. Longo Exemplo 7.11

Introdução
L = {ai b j ck ∈ {a, b, c}∗ | i, j, k ≥ 0 e i = j ou i = k}.
Fundamentos PDA lê e empilha todos os a’s.
matemáticos
Os símbolos a’s devem ser ‘casados’ com b’s ou c’s?
Alfabetos e
linguagens
Não determinismo é essencial para reconhecer L!
Autômatos
finitos
b, a → ε c, ε → ε
Linguagens e
gramáticas
regulares ε, $ → ε
s0 s2 s3
Linguagens
livres de
contexto
ε
ε →
Autômatos ε, ε → $ ε,
com pilha e
GLC’s
Definições básicas ε, ε → ε ε, ε → ε ε, $ → ε
Variações de PDA’s s1 s4 s5 s6
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing a, ε → a b, ε → ε c, a → ε
(1246 – 1248 de 1593)
Exemplo de PDA determinístico
LFA 2018/2

H. Longo

Introdução Exemplo 7.12


Fundamentos
matemáticos
L = {(ab)i ck a j ∈ {a, b, c}∗ | j > i > 1, k > 1}.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1247 – 1248 de 1593)


Exemplo de PDA determinístico
LFA 2018/2

H. Longo

Introdução Exemplo 7.12


Fundamentos
matemáticos
L = {(ab)i ck a j ∈ {a, b, c}∗ | j > i > 1, k > 1}.
Alfabetos e
linguagens
c, ε → ε a, X → ε a, ε → ε
Autômatos
finitos a, $ → ε
ε, ε → $ c, ε → ε a, X → ε ε, $ → ε
Linguagens e
gramáticas
s0 s1 s3 s4 sa
regulares
a, $ → ε
Linguagens b, ε b, ε → ε b, ε → ε
livres de → c, ε → ε
contexto a, ε → ε ε b, ε → ε
c, ε → ε
b, ε → X
Autômatos
com pilha e
GLC’s
Definições básicas a, ε → ε
Variações de PDA’s s2 c, ε → ε sr
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1248 – 1248 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos com pilha e GLC’s


finitos

Linguagens e
gramáticas
regulares

Linguagens
Variações de PDA’s
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1249 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens

Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1250 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens

Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos
Um PDA é chamado de atômico se cada transição causa apenas uma dessas
Linguagens e
gramáticas ações.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1251 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Definição 7.13
Alfabetos e A transição de um PDA acarreta três ações: processar um símbolo da cadeia,
linguagens

Autômatos
retirar um símbolo da pilha e colocar outro símbolo na pilha.
finitos
Um PDA é chamado de atômico se cada transição causa apenas uma dessas
Linguagens e
gramáticas ações.
regulares

Linguagens
Transições em um PDA atômico têm a forma:
livres de
contexto
(s j , ε) ∈ δ(si , a, ε)
Autômatos
(s j , ε) ∈ δ(si , ε, a)
com pilha e
GLC’s
(s j , a) ∈ δ(si , ε, ε)
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1252 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução Teorema 7.14


Fundamentos
matemáticos Se P é um PDA, então existe um PDA atômico P0 com L(P0 ) = L(P).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1253 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução Teorema 7.14


Fundamentos
matemáticos Se P é um PDA, então existe um PDA atômico P0 com L(P0 ) = L(P).
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos Para construir P0 , cada transição não atômica de P deve ser trocada por uma
Linguagens e
gramáticas
sequência de transições atômicas.
regulares Dada a transição (s j , b) ∈ δ(si , a, a) de P, são necessários dois novos estados s1
Linguagens e s2 e as transições:
livres de
contexto

Autômatos (s1 , ε) ∈ δ(si , a, ε),


δ(s1 , ε, a) = {(s2 , ε)},
com pilha e
GLC’s

δ(s2 , ε, ε) = {(s j , b)}.


Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para

LLC’s

Máquinas de
Turing

(1254 – 1275 de 1593)


PDA atômico
LFA 2018/2

H. Longo

Introdução Teorema 7.14


Fundamentos
matemáticos Se P é um PDA, então existe um PDA atômico P0 com L(P0 ) = L(P).
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos De forma similar, uma transição que consiste na mudança de estado e que
Linguagens e
gramáticas
acarreta apenas duas ações, pode ser trocada por uma sequência de duas
regulares
transições atômicas.
Linguagens
livres de A remoção de todas transições não atômicas produz um PDA atômico
contexto
equivalente.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para

LLC’s

Máquinas de
Turing

(1255 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 7.15
Autômatos
finitos Um PDA estendido é aquele que contém transições estendidas.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1256 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 7.15
Autômatos
finitos Um PDA estendido é aquele que contém transições estendidas.
Linguagens e Uma transição estendida, em um PDA, empilha uma cadeia de caracteres e não
gramáticas
regulares apenas um único símbolo.
Linguagens A transição (s j , bcd) ∈ δ(si , u, a) empilha bcd, com b ficando no topo da pilha.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1257 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução Teorema 7.16


Fundamentos
matemáticos Se P é um PDA estendido, então existe um PDA P0 com L(P0 ) = L(P).
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1258 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução Teorema 7.16


Fundamentos
matemáticos Se P é um PDA estendido, então existe um PDA P0 com L(P0 ) = L(P).
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos Para construir P0 , cada transição estendida P deve ser trocada por uma
Linguagens e
gramáticas
sequência de transições.
regulares Dada a transição (s j , bcd) ∈ δ(si , u, a) de P, são necessários dois novos estados
Linguagens s1 e s2 e as transições:
livres de
contexto

Autômatos (s1 , d) ∈ δ(si , u, a),


δ(s1 , ε, ε) = {(s2 , c)},
com pilha e
GLC’s

δ(s2 , ε, ε) = {(s j , b)}.


Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para

LLC’s

Máquinas de
Turing

(1259 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 7.17
Alfabetos e
linguagens
L = {ai b2i | i ≥ 1}.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1260 – 1275 de 1593)


Transição estendida
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Exemplo 7.17
Alfabetos e
linguagens
L = {ai b2i | i ≥ 1}.
Autômatos PDA PDA atômico PDA estendido
finitos
S = {s0 , s1 , s2 } S = {s0 , s1 , s2 , s3 , s4 } S = {s0 , s1 }
Linguagens e
gramáticas
δ(s0 , a, ε) = {(s2 , a)} δ(s0 , a, ε) = {(s3 , ε)} δ(s0 , a, ε) = {(s0 , aa)}
regulares δ(s2 , ε, ε) = {(s0 , a)} δ(s3 , ε, ε) = {(s2 , a)} δ(s0 , b, a) = {(s1 , ε)}
Linguagens δ(s0 , b, a) = {(s1 , ε)} δ(s2 , ε, ε) = {(s0 , a)} δ(s1 , b, a) = {(s1 , ε)}
livres de
contexto
δ(s1 , b, a) = {(s1 , ε)} δ(s0 , b, ε) = {(s4 , ε)}
δ(s4 , ε, a) = {(s1 , ε)}
Autômatos
com pilha e δ(s1 , b, ε) = {(s4 , ε)}
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1261 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos

Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares

Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1262 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos

Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares

Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto Definir aceitação em termos do estado final ou da configuração da pilha não
Autômatos altera o conjunto de linguagens reconhecidas pelos autômatos finitos.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1263 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.18
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δ, Fi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
estado final se existe um processamento
Autômatos
finitos

Linguagens e [s0 , w, ε] 7−→[si , ε, α],
gramáticas
regulares

Linguagens onde si ∈ F e α ∈ Γ∗ .
livres de
contexto Definir aceitação em termos do estado final ou da configuração da pilha não
Autômatos altera o conjunto de linguagens reconhecidas pelos autômatos finitos.
com pilha e
GLC’s A linguagem aceita por estado final é denotada LF .
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1264 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução Lema 7.19


Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δ, Fi, com aceitação
Fundamentos
matemáticos

Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1265 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução Lema 7.19


Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δ, Fi, com aceitação
Fundamentos
matemáticos

Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
regulares
P0 = hΣ, Γ, S ∪ {s f }, s0 , δ0 , {s f }i.
Linguagens
livres de
contexto
a função δ0 é igual à função δ acrescida das transições:
Autômatos
com pilha e δ0 (si , ε, ε) = {(s f , ε)}, ∀ si ∈ F;
GLC’s
Definições básicas
Variações de PDA’s
δ0 (s f , ε, a) = {(s f , ε)}, ∀ a ∈ Γ.
PDA’s e GLC’s 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1266 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução Lema 7.19


Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δ, Fi, com aceitação
Fundamentos
matemáticos

Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
regulares ∗
Linguagens
Seja o processamento [s0 , w, ε] 7−→[si , ε, α] que aceita w por estado final.
P
livres de
contexto O equivalente em P0 é:
∗ ∗
Autômatos
com pilha e
[s0 , w, ε] 7−→[si , ε, α] 7−→
0
[s f , ε, α] 7−→
0
[s f , ε, ε].
P P P
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1267 – 1275 de 1593)


Aceitação por estado final
LFA 2018/2

H. Longo

Introdução Lema 7.19


Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δ, Fi, com aceitação
Fundamentos
matemáticos

Alfabetos e definida por estado final, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
As novas transições não levam P0 a aceitar cadeias que não pertençam à
regulares

Linguagens
livres de L(P):
contexto
O único estado final de P0 é s f , o qual é alcançável a partir de qualquer estado
Autômatos
com pilha e final de P.
GLC’s As transições a partir de s f desempilham símbolos, mas não processam a
Definições básicas
Variações de PDA’s cadeia de entrada.
PDA’s e GLC’s 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1268 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares

Linguagens onde não há restrição quanto ao estado si de parada do processamento.


livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1269 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares

Linguagens onde não há restrição quanto ao estado si de parada do processamento.


livres de
contexto É necessário pelo menos uma transição para permitir a aceitação de linguagens
Autômatos que não contenham a cadeia vazia.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1270 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 7.20
Alfabetos e Seja o PDA P = hΣ, Γ, S , s0 , δi. A aceitação da cadeia w ∈ Σ∗ é definida por
linguagens
pilha vazia se existe um processamento
Autômatos
finitos
+
Linguagens e [s0 , w, ε] 7−→[si , ε, ε],
gramáticas
regulares

Linguagens onde não há restrição quanto ao estado si de parada do processamento.


livres de
contexto É necessário pelo menos uma transição para permitir a aceitação de linguagens
Autômatos que não contenham a cadeia vazia.
com pilha e
GLC’s A linguagem aceita por pilha vazia é denotada LE .
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1271 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1272 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
P0 = hΣ, Γ, S ∪ {s00 }, s00 , δ0 , S i, onde:
regulares

Linguagens
livres de δ0 (si , a, x) = δ(si , a, x) e δ0 (s00 , a, x) = δ(s0 , a, x),
contexto

Autômatos
∀ si ∈ S , a ∈ Σ ∪ {ε} e x ∈ Γ ∪ {ε}.
com pilha e
GLC’s Os processamentos de P e P0 são idênticos, exceto que o estado inicial de P é
Definições básicas
Variações de PDA’s
s0 e o inicial de P0 é s00 .
PDA’s e GLC’s 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1273 – 1275 de 1593)


Aceitação por pilha vazia
LFA 2018/2

H. Longo

Introdução
Lema 7.21
Fundamentos
matemáticos Se L(P) é a linguagem aceita pelo PDA P = hΣ, Γ, S , s0 , δi, com aceitação
Alfabetos e definida por pilha vazia, então existe um PDA P0 que aceita L(P), com
linguagens
aceitação definida por estado final e pilha vazia.
Autômatos
finitos

Linguagens e
gramáticas
Demonstração.
regulares
Todo processamento em P0 , de comprimento um ou maior, que para com
Linguagens
livres de pilha vazia também para em um estado final.
contexto

Autômatos Como s00 não é final, ε é aceito por P0 só se é aceita por P.


com pilha e
GLC’s Portanto, L(P0 ) = LE (P).
Definições básicas
Variações de PDA’s
PDA’s e GLC’s 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1274 – 1275 de 1593)


Linguagens aceitas por PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Teorema 7.22
Autômatos
finitos As três condições a seguir são equivalentes:
Linguagens e 1 a linguagem L(P) é aceita pelo PDA P;
gramáticas
regulares 2 existe um PDA P1 tal que LF (P1 ) = L(P); e
Linguagens 3 existe um PDA P2 tal que LE (P2 ) = L(P).
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1275 – 1275 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos com pilha e GLC’s


finitos

Linguagens e
gramáticas
regulares

Linguagens
PDA’s e GLC’s
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1276 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1277 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos Seja L uma LLC e G uma gramática na forma normal de Greibach com
Linguagens e L(G) = L.
gramáticas
regulares As regras de G, exceto S → ε, tem a forma A → aA1 A2 . . .An .
Linguagens Em uma derivação à esquerda, as variáveis Ai são substituídas na seqüência
livres de
contexto A1 , A2 , . . . , An .
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1278 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA
Alfabetos e Toda LLC é aceita por um PDA estendido.
linguagens
As regras de derivação podem ser usadas para gerar as transições do PDA.
Autômatos
finitos Seja L uma LLC e G uma gramática na forma normal de Greibach com
Linguagens e L(G) = L.
gramáticas
regulares As regras de G, exceto S → ε, tem a forma A → aA1 A2 . . .An .
Linguagens Em uma derivação à esquerda, as variáveis Ai são substituídas na seqüência
livres de
contexto A1 , A2 , . . . , An .
Autômatos Empilhar A1 , A2 , . . . , An , com A1 no topo da pilha, armazena as variáveis na
com pilha e
GLC’s ordem requerida pela derivação.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1279 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 7.23
Fundamentos
matemáticos L = {ai bi | i > 0}.
Alfabetos e
linguagens Gramática G na forma normal de Greibach que aceita L:
Autômatos
 
finitos

 S → aAB | aB, 

.
Linguagens e
 
G:  A → aAB | aB,
 
gramáticas  

regulares

 B→b 

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1280 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 7.23
Fundamentos
matemáticos PDA P = hΣ = {a, b}, Γ = {A, B}, S = {s0 , s1 }, s0 , δ, F = {s1 }i, onde:
Alfabetos e b, B → ε
linguagens
a, A → B
Autômatos
finitos δ(s0 , a, ε) = {(s1 , AB), (s1 , B)}, a, A → AB
Linguagens e
gramáticas
δ(s1 , a, A) = {(s1 , AB), (s1 , B)}, a, ε → B
regulares a, ε → AB
δ(s1 , b, B) = {(s1 , ε)}. s0 s1
Linguagens
livres de
contexto
Uma regra da forma S → aA1 A2 . . .An gera uma transição que processa a,
Autômatos
com pilha e empilha A1 , A2 , . . . , An e entra no estado s1 .
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1281 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Exemplo 7.23
Fundamentos
matemáticos Derivação da cadeia aaabbb por G e processamento por P:
Alfabetos e
linguagens
S ⇒ aAB [s0 , aaabbb, ε] 7−→[s1 , aabbb, AB]
Autômatos
finitos
⇒ aaABB 7−→[s1 , abbb, ABB]
Linguagens e
gramáticas
regulares ⇒ aaaBBB 7−→[s1 , bbb, BBB]
Linguagens
livres de
contexto
⇒ aaabBB 7−→[s1 , bb, BB]
Autômatos
com pilha e ⇒ aaabbB 7−→[s1 , b, B]
GLC’s
Definições básicas
Variações de PDA’s
⇒ aaabbb. 7−→[s1 , ε, ε].
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1282 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1283 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1284 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto Quais produções devem ser utilizadas na derivação?
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1285 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Conversão de GLC em PDA – Alternativa
Alfabetos e
linguagens L : LLC .
Autômatos
finitos G : GLC que gera L.
Linguagens e Conversão de G em um PDA P.
gramáticas
regulares Se G gera w, então P aceita w.
Linguagens P determina se existe uma derivação para w.
livres de
contexto Quais produções devem ser utilizadas na derivação?
Autômatos
com pilha e
P deve ser não determinístico.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1286 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Variável inicial na pilha.
Alfabetos e
linguagens 2 Série de cadeias intermediárias: substituições uma a uma.
Autômatos
finitos
Pode chegar a uma cadeia que só contém símbolos terminais.
Linguagens e
P aceita essa cadeia se é igual à cadeia w.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1287 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Variável inicial na pilha.
Alfabetos e
linguagens 2 Série de cadeias intermediárias: substituições uma a uma.
Autômatos
finitos
Pode chegar a uma cadeia que só contém símbolos terminais.
Linguagens e
P aceita essa cadeia se é igual à cadeia w.
gramáticas
regulares

Linguagens Tratamento das cadeias intermediárias:


livres de
contexto P tem acesso somente ao topo da pilha, que pode ser um terminal ou uma
Autômatos variável.
com pilha e
GLC’s Retirar parte da cadeia intermediária (primeira variável) da pilha.
Definições básicas ‘Casar’ qualquer terminal anterior com os símbolos da cadeia de entrada.
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1288 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Exemplo 7.24
Introdução
PDA P com a cadeia intermediária A1A0 a pilha:
Fundamentos
matemáticos

Alfabetos e
linguagens 0 1 1 0 0 1
Autômatos
finitos

Linguagens e
gramáticas
regulares
Controle
finito de A
Linguagens
livres de
estados
contexto 1
Autômatos
com pilha e A
GLC’s
Definições básicas
Variações de PDA’s 0
PDA’s e GLC’s
Pumping Lemma para
LLC’s $
Máquinas de
Turing

(1289 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens

Autômatos
2 Inserir variável inicial na pilha.
finitos

Linguagens e
3 Repetir os passos:
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1290 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens

Autômatos
2 Inserir variável inicial na pilha.
finitos

Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1291 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens

Autômatos
2 Inserir variável inicial na pilha.
finitos

Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto 2 Se topo da pilha é um terminal a, ler próximo símbolo da cadeia de entrada e
Autômatos comparar com a. Se iguais, repetir, senão rejeitar.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1292 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo

Introdução

Fundamentos
Funcionamento do PDA P
matemáticos
1 Inserir símbolo $ na pilha.
Alfabetos e
linguagens

Autômatos
2 Inserir variável inicial na pilha.
finitos

Linguagens e
3 Repetir os passos:
gramáticas
regulares 1 Se topo da pilha é uma variável A, escolher (não determinístico) uma produção
Linguagens para A e substituir A pelo lado direito da produção.
livres de
contexto 2 Se topo da pilha é um terminal a, ler próximo símbolo da cadeia de entrada e
Autômatos comparar com a. Se iguais, repetir, senão rejeitar.
com pilha e
GLC’s 3 Se topo da pilha é o símbolo $, ir para estado final. Se cadeia de entrada foi
Definições básicas
Variações de PDA’s
toda lida, então foi aceita.
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1293 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Esquema de construção do PDA
Introdução Construção do PDA P = hΣ, Γ, Q, q0 , δ, Fi:
Fundamentos
matemáticos
q0 , q ∈ Q,
Alfabetos e
a ∈ Σ,
linguagens u ∈ Γ,
Autômatos P passa do estado q0 para o q ⇒ P lê a e desempilha u.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1294 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Esquema de construção do PDA
Introdução (q, w) ∈ δ(q0 , a, u) ⇒ q0 é o estado do PDA, a é o próximo símbolo de entrada
Fundamentos
matemáticos
e u é o topo da pilha.
Alfabetos e
O PDA deve ler a, desempilhar u, empilhar a cadeia w e ir para o estado q.
linguagens

Autômatos Exemplo para (q, xyz) ∈ δ(q0 , a, u):


finitos

Linguagens e a, u → z
gramáticas
regulares
q0 q0 q1
Linguagens
livres de
contexto
a, u → xyz ε, ε → y
Autômatos
com pilha e
GLC’s q q q2
Definições básicas
ε, ε → x
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1295 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Esquema de construção do PDA
Introdução Empilhar toda a cadeia w = w1 . . . w` ao mesmo tempo:
Fundamentos
matemáticos
Novos estados q1 , . . . , q`−1 e transição δ(q, a, u) tal que:
Alfabetos e
linguagens (q1 , w` ) ∈ δ(q, a, u),
Autômatos δ(q1 , ε, ε) = {(q2 , w`−1 )},
finitos

Linguagens e δ(q2 , ε, ε) = {(q3 , w`−2 )},


gramáticas
regulares ..
.
Linguagens
livres de δ(q`−1 , ε, ε) = {(q, w` )}.
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1296 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Esquema de construção do PDA
Introdução PDA P = hΣ, Γ, Q, q0 , δ, Fi.
Fundamentos
matemáticos
Q = {qini , q0 , q, q f im } ∪ E .
Alfabetos e
E : novos estados para a notação simplificada para transições.
linguagens
q0 = qini .
Autômatos
finitos
F = {q f im }.
δ(qini , ε, ε) = {(q0 , $)}.
Linguagens e
gramáticas A pilha é iniciada com $.
regulares
δ(q , ε, ε) = {(q, S )}.
0
Linguagens
livres de A variável inicial S é colocada na pilha.
contexto
δ(q, ε, A) = {(q, a)}, onde (A → a) ∈ R.
Autômatos
com pilha e O topo da pilha contém uma variável.
δ(q, a, a) = {(q, ε)}.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
O topo da pilha contém um terminal.
Pumping Lemma para
LLC’s
δ(q, ε, $) = {(q f im , ε)}.
Máquinas de Marcador de pilha vazia ($) está no topo.
Turing

(1297 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Esquema de construção do PDA
Introdução Diagrama simplificado de estados para o PDA P:
Fundamentos
matemáticos
qini q0 q q f im
ε, ε → S
Alfabetos e
linguagens ε, ε → $ ε, $ → ε
Autômatos
finitos
ε, A → w
Linguagens e
gramáticas a, a → ε
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1298 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Exemplo 7.25
Introdução
GLC G = (V = {S , T }, Σ = {a, b}, R = {S → aT b | b, T → T a | ε}, S ).
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1299 – 1343 de 1593)


Equivalência de GLC e PDA
LFA 2018/2

H. Longo
Exemplo 7.25
Introdução
GLC G = (V = {S , T }, Σ = {a, b}, R = {S → aT b | b, T → T a | ε}, S ).
Fundamentos
matemáticos
Diagrama de estados do PDA que simula G:
Alfabetos e
linguagens
ε, ε → T
Autômatos
q1 q2 q3

ε,
finitos
b

ε
a


→ →
ε, ε
Linguagens e
ε, ,S

T
gramáticas
regulares T ε

Linguagens a
livres de qini q0 q q f im
contexto ε, ε → $ ε, ε → S ε, $ → ε
Autômatos
com pilha e
GLC’s ε, S → b
ε, T → ε
Definições básicas
Variações de PDA’s
PDA’s e GLC’s a, a → ε
b, b → ε
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1300 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1301 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
Seja G = (V, Σ, P, S ), na FNG, que aceita L.
finitos

Linguagens e
gramáticas
regulares
Seja o PDA estendido
Linguagens
M = hΣ M = Σ, Γ M = V − {S }, S M = {s0 , s1 }, s0 , δ, F M = {s1 }i, onde:
livres de
contexto
δ(s0 , a, ε) = {(s1 , w) | (S → aw) ∈ P e w ∈ V ∗ },
Autômatos
δ(s1 , a, A) = {(s1 , w) | (A → aw) ∈ P, A ∈ V − {S } e w ∈ V ∗ },
com pilha e
GLC’s
δ(s0 , ε, ε) = {(s1 , ε) se (S → ε) ∈ P}.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1302 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
1 L ⊆ L(M).
gramáticas
regulares
2 L(M) ⊆ L.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1303 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
1 L ⊆ L(M).

gramáticas
regulares
Seja a derivação S =⇒ uw, com u ∈ Σ+ e w ∈ V ∗ .
Existe um processamento [s0 , u, ε] 7−→[s1 , ε, w].

Linguagens
livres de
contexto
(Indução no comprimento da derivação):
Autômatos
Base:
com pilha e Derivações S =⇒ aw de comprimento 1. A transição gerada pela regra S → aw é o
GLC’s
Definições básicas
processamento requerido.
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1304 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
1 L ⊆ L(M).

gramáticas
regulares
Seja a derivação S =⇒ uw, com u ∈ Σ+ e w ∈ V ∗ .
Existe um processamento [s0 , u, ε] 7−→[s1 , ε, w].

Linguagens
livres de
contexto
(Indução no comprimento da derivação):
Autômatos
Hipótese:
n
com pilha e Suponha que para todas cadeias uw geradas por derivações S =⇒ uw existe em M
GLC’s ∗
Definições básicas um processamento [s0 , u, ε] 7−→[s1 , ε, w].
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1305 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
1 L ⊆ L(M).
gramáticas Passo indutivo:
regulares n+1
Seja a derivação S =⇒ uw, com u = va ∈ Σ+ e w ∈ V ∗ .
Linguagens n
livres de S =⇒ vAw2 =⇒ uw, onde w = w1 w2 e (A → aw1 ) ∈ P.
contexto
Por HI e (s1 , w1 ) ∈ δ(s1 , a, A):

Autômatos [s0 , va, ε] 7−→[s1 , a, Aw2 ]
com pilha e
GLC’s 7−→[s1 , ε, w1 w2 ].
Definições básicas
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1306 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
1 L ⊆ L(M).
gramáticas Passo indutivo:
regulares
Para toda u ∈ L, com |u| > 0, a aceitação de u por M é mostrada pelo
Linguagens ∗
livres de processamento correspondente à derivação S =⇒ u.
contexto
Se ε ∈ L, então (S → ε) ∈ P e o processamento [s0 , ε, ε] 7−→[s1 , ε, ε] aceita ε.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1307 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução
Teorema 7.26
Fundamentos
matemáticos Se L é uma LLC, então existe um PDA M que aceita L.
Alfabetos e
linguagens

Autômatos
Demonstração.
finitos

Linguagens e
2 L(M) ⊆ L.
Mostrar que para todo processamento [s0 , u, ε] 7−→[s1 , ε, w] existe a

gramáticas
regulares

Linguagens correspondente derivação S =⇒ uw em G.
livres de
contexto Prova por indução.
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s

Pumping Lemma para
LLC’s

Máquinas de
Turing

(1308 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Toda linguagem aceita por um PDA é uma LLC.


linguagens
As regras de derivação da GLC são construídas a partir das transições do PDA.
Autômatos
finitos
A gramática é construída de modo que a aplicação de uma regra de derivação
Linguagens e
corresponda a uma transição no PDA.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1309 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e Toda linguagem aceita por um PDA é uma LLC.


linguagens
As regras de derivação da GLC são construídas a partir das transições do PDA.
Autômatos
finitos
A gramática é construída de modo que a aplicação de uma regra de derivação
Linguagens e
corresponda a uma transição no PDA.
gramáticas
regulares Seja o PDA M = hΣ M , Γ M , S M , s0 , δ, F M i. Um PDA estendido M 0 é construído
Linguagens
a partir de M aumentando-se a função δ com as transições:
livres de
contexto
1 (s j , ε) ∈ δ(si , u, ε) ⇒ (s j , X) ∈ δ0 (si , u, X), ∀ X ∈ Γ.
Autômatos
2 (s j , Y) ∈ δ(si , u, ε) ⇒ (s j , Y X) ∈ δ0 (si , u, X), ∀ X ∈ Γ.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1310 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A gramática G = (V, Σ, P, S ) é construída a partir das transições de M 0 :
Alfabetos e
linguagens Σ = ΣM0 .
Autômatos
finitos V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M0 e X ∈ Γ ∪ {ε}.
Linguagens e hsi , X, s j i : processamento em M 0 que inicia em si , encerra em s j e desempilha X .
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1311 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
A gramática G = (V, Σ, P, S ) é construída a partir das transições de M 0 :
Alfabetos e
linguagens Conjunto P de regras de derivação:
Autômatos
finitos
1 S → hs0 , ε, s j i, ∀ s j ∈ F M0 ,
2 Cada transição (s j , Y) ∈ δ0 (si , u, X), onde X, Y ∈ Γ ∪ {ε}, gera
Linguagens e
gramáticas
regulares {hsi , X, sk i → uhs j , Y, sk i | sk ∈ S M0 },
Linguagens
livres de 3 Cada transição (s j , Y X) ∈ δ0 (si , u, X), onde X, Y ∈ Γ, gera
contexto

Autômatos {hsi , X, sk i → uhs j , Y, sn ihsn , X, sk i | sk , sn ∈ S M0 },


com pilha e
GLC’s
Definições básicas
4 hsk , ε, sk i → ε, ∀ sk ∈ S M0 .
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1312 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Uma derivação começa com uma regra do tipo 1:


matemáticos
O lado direito representa um processamento que começa no estado s0 e
Alfabetos e
linguagens termina em um estado final com pilha vazia.
Autômatos Um processamento de sucesso no PDA M 0 .
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1313 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Uma derivação começa com uma regra do tipo 1:


matemáticos
O lado direito representa um processamento que começa no estado s0 e
Alfabetos e
linguagens termina em um estado final com pilha vazia.
Autômatos Um processamento de sucesso no PDA M 0 .
finitos

Linguagens e
Regras do tipo 2 e 3 mapeiam as ações do PDA.
gramáticas Regras do tipo 3 correspondem a transições estendidas de M 0 , as quais
regulares
aumentam o tamanho da pilha. O efeito na derivação é introduzir uma variável
Linguagens
livres de adicional.
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1314 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo

Introdução

Fundamentos Uma derivação começa com uma regra do tipo 1:


matemáticos
O lado direito representa um processamento que começa no estado s0 e
Alfabetos e
linguagens termina em um estado final com pilha vazia.
Autômatos Um processamento de sucesso no PDA M 0 .
finitos

Linguagens e
Regras do tipo 2 e 3 mapeiam as ações do PDA.
gramáticas Regras do tipo 3 correspondem a transições estendidas de M 0 , as quais
regulares
aumentam o tamanho da pilha. O efeito na derivação é introduzir uma variável
Linguagens
livres de adicional.
contexto

Autômatos
Regras do tipo 4 são usadas para terminar a derivação.
com pilha e Representam um processamento a partir de um estado sk para sk que não
GLC’s
Definições básicas altera a pilha (processamento nulo).
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1315 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1316 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos

Alfabetos e M=
linguagens hΣ M , Γ M , S M , s0 , δ, F M i:
Autômatos
finitos Σ M = {a, b, c}; a, ε → X b, X → ε
Linguagens e
Γ M = {X};
gramáticas S M = {s0 , s1 };
regulares c, ε → ε
F M = {s1 }; s0 s1
Linguagens

δ(s0 , a, ε) = {(s0 , X)};


livres de
contexto

Autômatos δ(s0 , c, ε) = {(s1 , ε)};


com pilha e
GLC’s
δ(s1 , b, X) = {(s1 , ε)}.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1317 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos

Alfabetos e M0 =
linguagens hΣ M , Γ M , S M , s0 , δ0 , F M i:
Autômatos
finitos Σ M = {a, b, c}; a, ε → X b, X → ε
Γ M = {X};
Linguagens e
c, ε → ε
gramáticas S M = {s0 , s1 };
regulares
F M = {s1 }; s0 s1
Linguagens

δ (s0 , a, ε) = {(s0 , X)};


livres de 0
contexto c, X → X
Autômatos δ0 (s0 , c, ε) = {(s1 , ε)};
com pilha e
GLC’s
δ0 (s1 , b, X) = {(s1 , ε)}; a, X → XX
δ0 (s0 , a, X) = {(s0 , XX)};
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
δ0 (s0 , c, X) = {(s1 , X)}.
LLC’s

Máquinas de
Turing

(1318 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos G = (V, Σ, P, S ):
Alfabetos e
linguagens
Σ = ΣM .
Autômatos
V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M e X ∈ Γ ∪ {ε}.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1319 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Transições Regras de derivação
Alfabetos e S → hs0 , ε, s1 i
linguagens
δ0 (s0 , a, ε) = {(s0 , X)} hs0 , ε, s0 i → ahs0 , X, s0 i
Autômatos
finitos
hs0 , ε, s1 i → ahs0 , X, s1 i

Linguagens e
δ0 (s0 , a, X) = {(s0 , XX)} hs0 , X, s0 i → ahs0 , X, s0 ihs0 , X, s0 i
gramáticas hs0 , X, s1 i → ahs0 , X, s0 ihs0 , X, s1 i
regulares hs0 , X, s0 i → ahs0 , X, s1 ihs1 , X, s0 i
Linguagens hs0 , X, s1 i → ahs0 , X, s1 ihs1 , X, s1 i
livres de
contexto
δ0 (s0 , c, ε) = {(s1 , ε)} hs0 , ε, s0 i → chs1 , ε, s0 i
hs0 , ε, s1 i → chs1 , ε, s1 i
Autômatos
com pilha e δ0 (s0 , c, X) = {(s1 , X)} hs0 , X, s0 i → chs1 , X, s0 i
GLC’s hs0 , X, s1 i → chs1 , X, s1 i
Definições básicas
Variações de PDA’s δ0 (s1 , b, X) = {(s1 , ε)} hs1 , X, s0 i → bhs1 , ε, s0 i
PDA’s e GLC’s
hs1 , X, s1 i → bhs1 , ε, s1 i
Pumping Lemma para
LLC’s
hs0 , ε, s0 i → ε
Máquinas de hs1 , ε, s1 i → ε
Turing

(1320 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Variável Variável original
Alfabetos e A hs0 , ε, s0 i
linguagens
B hs0 , ε, s1 i
Autômatos C hs1 , ε, s0 i
finitos D hs1 , ε, s1 i
Linguagens e E hs0 , X, s0 i
gramáticas F hs0 , X, s1 i
regulares
G hs1 , X, s0 i
Linguagens H hs1 , X, s1 i
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1321 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos
Transições Regras de derivação
Alfabetos e S →B
linguagens
δ(s0 , a, ε) = {(s0 , X)} A → aE
Autômatos
finitos
B → aF

Linguagens e
δ(s0 , a, X) = {(s0 , XX)} E → aEE
gramáticas F → aEF
regulares E → aFG
Linguagens F → aFH
livres de
contexto
δ(s0 , c, ε) = {(s1 , ε)} A → cC
B → cD
Autômatos
com pilha e δ(s0 , c, X) = {(s1 , X)} E → cG
GLC’s F → cH
Definições básicas
Variações de PDA’s δ(s1 , b, X) = {(s1 , ε)} G → bC
PDA’s e GLC’s
H → bD
Pumping Lemma para
LLC’s
A→ε
Máquinas de D→ε
Turing

(1322 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.27

Introdução
L = {an cbn | n > 0}.
Fundamentos
matemáticos G = (V, Σ, P, S ):
Alfabetos e
linguagens
V = {S , B, D, F, H} ≡ {S , F}.
Autômatos
Σ = {a,
 b, c}.
S → B,

finitos  

 

B → aF | cD,
 
Linguagens e 
 
 ( )
  S → aF | c,
P= D → ε,
gramáticas
 

 
regulares  
 F → aFb | cb
F → aFH | cH, 


 

Linguagens 
 

livres de

 H → bD 

contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1323 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1324 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
M = hΣ M , Γ M , S M , s0 , δ, F M i:
linguagens
Σ M = {a, b};
Autômatos
finitos
Γ M = {X};
Linguagens e
S M = {s0 , s1 , s2 };
gramáticas F M = {s1 , s2 };
δ(s0 , a, ε) = {(s0 , X)};
regulares

Linguagens
livres de δ(s0 , b, X) = {(s1 , ε)};
contexto δ(s0 , ε, ε) = {(s2 , ε)};
Autômatos
com pilha e
δ(s1 , b, X) = {(s1 , ε)};
GLC’s δ(s2 , ε, X) = {(s2 , ε)}.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1325 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
M 0 = hΣ M , Γ M , S M , s0 , δ0 , F M i:
linguagens
Σ M = {a, b};
Autômatos
finitos
Γ M = {X};
Linguagens e
S M = {s0 , s1 , s2 };
gramáticas F M = {s1 , s2 };
regulares

Linguagens δ0 (s0 , a, ε) = {(s0 , X)};


livres de
contexto
δ0 (s0 , b, X) = {(s1 , ε)};
Autômatos
δ0 (s0 , ε, ε) = {(s2 , ε)};
com pilha e δ0 (s1 , b, X) = {(s1 , ε)};
GLC’s
Definições básicas δ0 (s2 , ε, X) = {(s2 , ε)};
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
δ0 (s0 , a, X) = {(s0 , XX)};
LLC’s
δ0 (s0 , ε, X) = {(s2 , X)}.
Máquinas de
Turing

(1326 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
G = (V, Σ, P, S ):
linguagens
Σ = ΣM .
Autômatos
finitos
V = {S } ∪ {hsi , X, s j i}, onde si , s j ∈ S M e X ∈ Γ ∪ {ε}.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1327 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens S → hs0 , ε, s1 i
Autômatos
S → hs0 , ε, s2 i
finitos δ0 (s0 , a, ε) = {(s0 , X)} hs0 , ε, s0 i → ahs0 , X, s0 i
Linguagens e hs0 , ε, s1 i → ahs0 , X, s1 i
gramáticas hs0 , ε, s2 i → ahs0 , X, s2 i
regulares
δ0 (s0 , b, X) = {(s1 , ε)} hs0 , X, s0 i → bhs1 , ε, s0 i
Linguagens
livres de hs0 , X, s1 i → bhs1 , ε, s1 i
contexto hs0 , X, s2 i → bhs1 , ε, s2 i
Autômatos δ0 (s0 , ε, ε) = {(s2 , ε)} hs0 , ε, s0 i → εhs2 , ε, s0 i
com pilha e hs0 , ε, s1 i → εhs2 , ε, s1 i
GLC’s
Definições básicas
hs0 , ε, s2 i → εhs2 , ε, s2 i
Variações de PDA’s
δ0 (s0 , ε, X) = {(s2 , X)} hs0 , X, s0 i → εhs2 , X, s0 i
PDA’s e GLC’s
Pumping Lemma para hs0 , X, s1 i → εhs2 , X, s1 i
LLC’s
hs0 , X, s2 i → εhs2 , X, s2 i
Máquinas de
Turing

(1328 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens δ0 (s0 , a, X) = {(s0 , XX)} hs0 , X, s0 i → ahs0 , X, s0 ihs0 , X, s0 i
Autômatos
hs0 , X, s1 i → ahs0 , X, s0 ihs0 , X, s1 i
finitos hs0 , X, s2 i → ahs0 , X, s0 ihs0 , X, s2 i
Linguagens e
hs0 , X, s0 i → ahs0 , X, s1 ihs1 , X, s0 i
gramáticas hs0 , X, s1 i → ahs0 , X, s1 ihs1 , X, s1 i
regulares hs0 , X, s2 i → ahs0 , X, s1 ihs1 , X, s2 i
Linguagens hs0 , X, s0 i → ahs0 , X, s2 ihs2 , X, s0 i
livres de hs0 , X, s1 i → ahs0 , X, s2 ihs2 , X, s1 i
contexto
hs0 , X, s2 i → ahs0 , X, s2 ihs2 , X, s2 i
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1329 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens δ0 (s1 , b, X) = {(s1 , ε)} hs1 , X, s0 i → bhs1 , ε, s0 i
Autômatos
hs1 , X, s1 i → bhs1 , ε, s1 i
finitos hs1 , X, s2 i → bhs1 , ε, s2 i
Linguagens e δ0 (s2 , ε, X) = {(s2 , ε)} hs2 , X, s0 i → εhs2 , ε, s0 i
gramáticas hs2 , X, s1 i → εhs2 , ε, s1 i
regulares
hs2 , X, s2 i → εhs2 , ε, s2 i
Linguagens
livres de hs0 , ε, s0 i → ε
contexto hs1 , ε, s1 i → ε
Autômatos
hs2 , ε, s2 i → ε
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1330 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Variável Variável original Variável Variável original
linguagens A hs0 , ε, s0 i J hs0 , X, s0 i
B hs0 , ε, s1 i K hs0 , X, s1 i
Autômatos
finitos C hs0 , ε, s2 i L hs0 , X, s2 i
D hs1 , ε, s0 i M hs1 , X, s0 i
Linguagens e
gramáticas E hs1 , ε, s1 i N hs1 , X, s1 i
regulares F hs1 , ε, s2 i O hs1 , X, s2 i
Linguagens G hs2 , ε, s0 i P hs2 , X, s0 i
livres de H hs2 , ε, s1 i Q hs2 , X, s1 i
contexto I hs2 , ε, s2 i R hs2 , X, s2 i
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1331 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens S →B
Autômatos
S →C
finitos δ(s0 , a, ε) = {(s0 , X)} A → aJ
Linguagens e B → aK
gramáticas C → aL
regulares
δ(s0 , b, X) = {(s1 , ε)} J → bD
Linguagens
livres de K → bE
contexto L → bF
Autômatos δ(s0 , ε, ε) = {(s2 , ε)} A→G
com pilha e B→H
GLC’s
Definições básicas
C→I
Variações de PDA’s
δ(s0 , ε, X) = {(s2 , X)} J→P
PDA’s e GLC’s
Pumping Lemma para K→Q
LLC’s
L→R
Máquinas de
Turing

(1332 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens δ(s0 , a, X) = {(s0 , XX)} J → aJJ
Autômatos
K → aJK
finitos L → aJL
Linguagens e
J → aK M
gramáticas K → aKN
regulares L → aKO
Linguagens J → aLP
livres de K → aLQ
contexto
L → aLR
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1333 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
Transições Regras de derivação
linguagens δ(s1 , b, X) = {(s1 , ε)} M → bD
Autômatos
N → bE
finitos O → bF
Linguagens e δ(s2 , ε, X) = {(s2 , ε)} P→G
gramáticas Q→H
regulares
R→I
Linguagens
livres de A→ε
contexto E→ε
Autômatos
I→ε
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1334 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
G = (V = {S , A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R}, Σ = {a, b}, P, S ):
linguagens
 
Autômatos

 S → B | C, 

A → aJ | G | ε,

 

finitos 

 


 
B → aK | H,


 


Linguagens e 
 

C → aL | I,

 

gramáticas 

 


regulares E → ε,


 



 

I → ε,

 

Linguagens


 


 
livres de J → bD | P | aJJ | aK M | aLP,


 


 
contexto
P=
 
K → bE | Q | aJK | aKN | aLQ,
 
 

L → bF | R | aJL | aKO | aLR,
Autômatos


 


 
com pilha e

 

GLC’s



 M → bD, 



 
Definições básicas




 N → bE, 




Variações de PDA’s




 O → bF, 




PDA’s e GLC’s
P → G,


 


Pumping Lemma para

 

Q → H,
LLC’s


 



 

R→I

 

Máquinas de
Turing

(1335 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
G1 = (V1 = {S , B, C, E, I, J, K, L, N, R}, Σ = {a, b}, P1 , S ):
linguagens
S → B | C,
 
Autômatos 
 

finitos
 




 B → aK, 




Linguagens e C → aL | I,


 


gramáticas
 
E → ε,

 

regulares


 


I → ε,


 


Linguagens
P1 = 

 

livres de
contexto



 J → aJJ, 




K → bE | aJK | aKN,

 

Autômatos


 


com pilha e L → R | aJL | aLR,


 


GLC’s


 


Definições básicas



 N → bE, 



Variações de PDA’s  
PDA’s e GLC’s
 R → bI 
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1336 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
G2 = (V2 = {S , B, C, E, I, K, L, N, R}, Σ = {a, b}, P2 , S ):
linguagens
 
Autômatos


 S → B | C, 


finitos
 



 B → aK, 



 
Linguagens e
gramáticas



 C → aL | I, 



E → ε,

 

regulares 

 


P2 =  I → ε,

 

Linguagens 
livres de
 
K → bE | aKN,

 

contexto


 


 
Autômatos




 L → R | aLR, 




com pilha e
GLC’s




 N → bE, 




R→I

 

Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1337 – 1343 de 1593)


Linguagens livres de contexto e PDA’s
LFA 2018/2

H. Longo Exemplo 7.28


Introdução L = {ai | i > 0} ∪ {ai bi | i > 0}.
Fundamentos
matemáticos

Alfabetos e
G3 = (V3 = {S , K, L}, Σ = {a, b}, P3 , S ):
linguagens
S → aK | aL | ε,
 
Autômatos 
 

P3 = 
finitos
 
K → b | aKb,
 

Linguagens e  L → ε | aL

 


gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1338 – 1343 de 1593)


Equivalência com GLC
LFA 2018/2

H. Longo

Corolário 7.29
Introdução

Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1339 – 1343 de 1593)


Equivalência com GLC
LFA 2018/2

H. Longo

Corolário 7.29
Introdução

Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos

Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s 
Máquinas de
Turing

(1340 – 1343 de 1593)


Equivalência com GLC
LFA 2018/2

H. Longo

Corolário 7.29
Introdução

Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos

Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s 
Máquinas de
Turing

(1341 – 1343 de 1593)


Equivalência com GLC
LFA 2018/2

H. Longo

Corolário 7.29
Introdução

Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos

Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
Toda linguagem regular é também livre de contexto.
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s 
Máquinas de
Turing

(1342 – 1343 de 1593)


Equivalência com GLC
LFA 2018/2

H. Longo

Corolário 7.29
Introdução

Fundamentos
Toda linguagem regular é livre de contexto.
matemáticos

Alfabetos e
linguagens Demonstração.
Autômatos
finitos
Toda linguagem regular é reconhecida por um autômato finito.
Linguagens e Todo autômato finito é um autômato com pilha que simplesmente ignora a sua
gramáticas
regulares pilha.
Linguagens
livres de
Toda linguagem regular é também livre de contexto.
contexto

Autômatos
com pilha e
Linguagens Livres de Contexto
GLC’s (Autômato com Pilha – PDA)
Definições básicas
Variações de PDA’s Linguagens Regulares
PDA’s e GLC’s
Pumping Lemma para
(Autômato Finito – DFA)
LLC’s 
Máquinas de
Turing

(1343 – 1343 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Autômatos com pilha e GLC’s


finitos

Linguagens e
gramáticas
regulares

Linguagens
Pumping Lemma para LLC’s
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1344 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Lema 7.30
Introdução

Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens

Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos

Linguagens e 2 |vy| > 0,


gramáticas
regulares

Linguagens
3 |vxy| ≤ p.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1345 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Lema 7.30
Introdução

Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens

Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos

Linguagens e 2 |vy| > 0,


gramáticas
regulares

Linguagens
3 |vxy| ≤ p.
livres de
contexto

Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1346 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Lema 7.30
Introdução

Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens

Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos

Linguagens e 2 |vy| > 0,


gramáticas
regulares

Linguagens
3 |vxy| ≤ p.
livres de
contexto

Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
Condição 2 indica que v ou y não é uma cadeia vazia.
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1347 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Lema 7.30
Introdução

Fundamentos
Se L é uma linguagem livre de contexto, então existe um número p tal que cada
matemáticos w = uvxyz ∈ L, com |w| ≥ p, satisfaz:
Alfabetos e
linguagens

Autômatos
1 uvi xyi z ∈ L, i ≥ 0,
finitos

Linguagens e 2 |vy| > 0,


gramáticas
regulares

Linguagens
3 |vxy| ≤ p.
livres de
contexto

Autômatos
com pilha e
p é chamado de pumping length.
GLC’s
Definições básicas
Variações de PDA’s
Condição 2 indica que v ou y não é uma cadeia vazia.
PDA’s e GLC’s
Pumping Lemma para
LLC’s Condição 3 indica que v, x e y juntos têm comprimento máximo p.
Máquinas de
Turing

(1348 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1349 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução
s ∈ L(G), tal que s é “suficientemente longa”.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1350 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução
s ∈ L(G), tal que s é “suficientemente longa”.
Fundamentos
matemáticos
s pode ser quebrada em cinco partes: uvxyz.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1351 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução
s ∈ L(G), tal que s é “suficientemente longa”.
Fundamentos
matemáticos
s pode ser quebrada em cinco partes: uvxyz.
Alfabetos e
linguagens Árvore de derivação de s contém algum caminho, da raiz até uma folha, que
Autômatos
finitos
repete uma variável.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1352 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução
s ∈ L(G), tal que s é “suficientemente longa”.
Fundamentos
matemáticos
s pode ser quebrada em cinco partes: uvxyz.
Alfabetos e
linguagens Árvore de derivação de s contém algum caminho, da raiz até uma folha, que
Autômatos
finitos
repete uma variável.
Linguagens e Segundo e quarto pedaços (v e y) podem ser repetidos.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1353 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Esquema da demonstração:
H. Longo
L(G) : Linguagem gerada pela GLC G.
Introdução
s ∈ L(G), tal que s é “suficientemente longa”.
Fundamentos
matemáticos
s pode ser quebrada em cinco partes: uvxyz.
Alfabetos e
linguagens Árvore de derivação de s contém algum caminho, da raiz até uma folha, que
Autômatos
finitos
repete uma variável.
Linguagens e Segundo e quarto pedaços (v e y) podem ser repetidos.
gramáticas
regulares S S S
Linguagens
livres de
contexto R R R
Autômatos
com pilha e
GLC’s R R
Definições básicas
x
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para R
LLC’s
u z u v x y z u v y z
Máquinas de
Turing
v x y
(1354 – 1389 de 1593)
Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
G = (V, Σ, R, S ) : Gramática livre de contexto.
Introdução

Fundamentos L(G) : Linguagem gerada por G.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1355 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
G = (V, Σ, R, S ) : Gramática livre de contexto.
Introdução

Fundamentos L(G) : Linguagem gerada por G.


matemáticos

Alfabetos e
linguagens
b ≥ 2 número máximo de símbolos no lado direito de uma produção.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1356 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
G = (V, Σ, R, S ) : Gramática livre de contexto.
Introdução

Fundamentos L(G) : Linguagem gerada por G.


matemáticos

Alfabetos e
linguagens
b ≥ 2 número máximo de símbolos no lado direito de uma produção.
Autômatos Um nó tem no máximo b filhos.
finitos
No máximo b folhas no nível 1, b2 no nível 2,. . . , bh no nível h.
Linguagens e
gramáticas
regulares
Árvore de altura h ⇒ Cadeia de comprimento máximo bh .
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1357 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
s ∈ L(G).
Introdução

Fundamentos τ 7→ Árvore de derivação de s, com o menor número possível de nós.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1358 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
s ∈ L(G).
Introdução

Fundamentos τ 7→ Árvore de derivação de s, com o menor número possível de nós.


matemáticos

Alfabetos e p = b|V|+2
linguagens

Autômatos
b ≥ 2 ⇒ p > b|V|+1
finitos
|s| ≥ p ⇒ τ tem altura mínima |V| + 2.
Linguagens e
gramáticas O caminho mais longo em τ tem no mínimo |V| + 2 nós, onde pelo menos |V| + 1
regulares
são variáveis (só folhas são terminais).
Linguagens
livres de Alguma variável aparece mais de uma vez nesse caminho.
contexto

Autômatos
R é uma variável dentre as |V| + 1 variáveis mais inferiores do caminho.
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1359 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
S S S
Introdução

Fundamentos
matemáticos R R R

Alfabetos e
linguagens
R R
Autômatos x
finitos

Linguagens e R
gramáticas u z u v x y z u v y z
regulares

Linguagens
livres de v x y
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1360 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
1 uvi xyi z ∈ L, i ≥ 0,
Introdução

Fundamentos
Cada ocorrência de R gera uma subárvore com parte da cadeia s.
matemáticos Ocorrência superior de R (subárvore τ1 ) gera a cadeia vxy.
Alfabetos e Ocorrência inferior de R (subárvore τ2 ) gera a cadeia x.
linguagens
Subárvores τ1 e τ2 são geradas pela mesma variável.
Autômatos
finitos Substituir uma pela outra gera árvore de derivação válida.
Linguagens e Troca da menor pela maior repetidas vezes gera árvores de derivação para
gramáticas
regulares
cadeias uvi xyi z, para i > 1.
Linguagens
Troca da maior pela menor gera a cadeia uxz.
livres de
contexto 2 |vy| > 0,
Autômatos
com pilha e
GLC’s 3 |vxy| ≤ p.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1361 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
1 uvi xyi z ∈ L, i ≥ 0,
Introdução

Fundamentos 2 |vy| > 0,


matemáticos

Alfabetos e v e y não podem ser ε ao mesmo tempo.


linguagens
Árvore obtida ao substituir a menor subárvore pela maior teria menos nós do
que τ e ainda geraria a cadeia s.
Autômatos
finitos

Linguagens e Contradição, pois τ foi escolhida com o mínimo possível de nós.


gramáticas
regulares

Linguagens
3 |vxy| ≤ p.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1362 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
1 uvi xyi z ∈ L, i ≥ 0,
Introdução

Fundamentos
matemáticos
2 |vy| > 0,
Alfabetos e
linguagens
3 |vxy| ≤ p.
Autômatos Ocorrência superior de R gera vxy.
finitos

Linguagens e
Ocorrências de R entre as |V| + 1 variáveis mais inferiores do caminho.
gramáticas
regulares Subárvore com R como raiz tem altura máxima |V| + 2.
Linguagens Cadeia gerada por R tem comprimento máximo b|V|+2 = p.
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1363 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2
Demonstração.
H. Longo
1 S
Introdução

Fundamentos
matemáticos

Alfabetos e R
linguagens

Autômatos |V|
finitos

Linguagens e R
gramáticas
regulares

Linguagens
livres de
contexto
1 u v x y z
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1364 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1365 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1366 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e s = a p b p c p pode ser escrita como s = uvxyz.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1367 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e s = a p b p c p pode ser escrita como s = uvxyz.
gramáticas
regulares v e y contém, cada um, apenas um tipo de símbolo:
Linguagens
livres de
contexto
v e/ou y contém mais de um tipo de símbolo:
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1368 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e s = a p b p c p pode ser escrita como s = uvxyz.
gramáticas
regulares v e y contém, cada um, apenas um tipo de símbolo:
Linguagens
livres de
uv2 xy2 z não contém o mesmo número de a´s, b´s e c´s.
contexto
v e/ou y contém mais de um tipo de símbolo:
Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1369 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e s = a p b p c p pode ser escrita como s = uvxyz.
gramáticas
regulares v e y contém, cada um, apenas um tipo de símbolo:
Linguagens
livres de
uv2 xy2 z não contém o mesmo número de a´s, b´s e c´s.
contexto
v e/ou y contém mais de um tipo de símbolo:
Autômatos
com pilha e uv2 xy2 z não contém os símbolos a´s, b´s e c´s na ordem correta.
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1370 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 7.31


matemáticos
L = {an bn cn | n ≥ 0} não é livre de contexto:
Alfabetos e
linguagens Suponha que L é LLC .
Autômatos
finitos
p : pumping length.
Linguagens e s = a p b p c p pode ser escrita como s = uvxyz.
gramáticas
regulares v e y contém, cada um, apenas um tipo de símbolo:
Linguagens
livres de
uv2 xy2 z não contém o mesmo número de a´s, b´s e c´s.
contexto
v e/ou y contém mais de um tipo de símbolo:
Autômatos
com pilha e uv2 xy2 z não contém os símbolos a´s, b´s e c´s na ordem correta.
GLC’s
Definições básicas Dadas as contradições, L não é LLC .
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1371 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1372 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1373 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1374 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos

Linguagens e
gramáticas b não aparece em v ou y:
regulares

Linguagens
livres de
contexto

Autômatos c não aparece em v ou y:


com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1375 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares

Linguagens
livres de
contexto

Autômatos c não aparece em v ou y:


com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1376 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1377 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1378 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s v e y contém mais de um tipo de símbolo:
PDA’s e GLC’s
Pumping Lemma para uv2 xy2 z não contém a´s, b´s e c´s na ordem correta.
LLC’s

Máquinas de
Turing

(1379 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo
Exemplo 7.32
Introdução
L = {ai b j ck | 0 ≤ i ≤ j ≤ k} não é livre de contexto:
Fundamentos
matemáticos
Supor L LLC , p é o pumping length e s = a p b p c p = uvxyz.
Alfabetos e
linguagens v e y contém, cada um, apenas um tipo de símbolo:
Autômatos a não aparece em v ou y:
finitos
uv0 xy0 z = uxz contém mesmo número de a´s que s, mas menos b´s ou c´s.
Linguagens e
gramáticas b não aparece em v ou y:
regulares
a ou c deve aparecer em v ou y (não podem ser ε).
Linguagens
livres de
Se a aparece, a cadeia uv2 xy2 z contém mais a´s do que b´s.
contexto Se c aparece, a cadeia uv0 xy0 z contém mais b´s do que c´s.
Autômatos c não aparece em v ou y:
com pilha e
GLC’s A cadeia uv2 xy2 z = uxz contém mais b´s do que c´s.
Definições básicas
Variações de PDA’s v e y contém mais de um tipo de símbolo:
PDA’s e GLC’s
Pumping Lemma para uv2 xy2 z não contém a´s, b´s e c´s na ordem correta.
LLC’s

Máquinas de Dadas as contradições, L não é LLC .


Turing

(1380 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1381 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1382 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1383 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 10 p 1 ⇒ não leva a uma contradição:


gramáticas
regulares
p p
0 1 0 1
Linguagens z }| {z }| {
livres de
contexto 000 · · · 000 0 1 0 000
| {z } |{z} |{z} |{z} | {z } · · · 001
Autômatos
com pilha e u v x y z
GLC’s
Definições básicas
Variações de PDA’s uvi xyi z ∈ L, ∀ i > 0.
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1384 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 1 p 0 p 1 p = uvxyz e |vxy| ≤ p.


gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1385 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 1 p 0 p 1 p = uvxyz e |vxy| ≤ p.


gramáticas
regulares
Se vxy aparece só na primeira metade de s, em uv2 xy2 z o 1 aparece duas
Linguagens
livres de vezes na segunda metade.
contexto

Autômatos
com pilha e
GLC’s
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1386 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 1 p 0 p 1 p = uvxyz e |vxy| ≤ p.


gramáticas
regulares
Se vxy aparece só na primeira metade de s, em uv2 xy2 z o 1 aparece duas
Linguagens
livres de vezes na segunda metade.
contexto

Autômatos Se vxy aparece só na segunda metade de s, em uv2 xy2 z o 0 aparece mais na


com pilha e
GLC’s segunda do que na primeira metade.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Pumping Lemma para
LLC’s

Máquinas de
Turing

(1387 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 1 p 0 p 1 p = uvxyz e |vxy| ≤ p.


gramáticas
regulares
Se vxy aparece só na primeira metade de s, em uv2 xy2 z o 1 aparece duas
Linguagens
livres de vezes na segunda metade.
contexto

Autômatos Se vxy aparece só na segunda metade de s, em uv2 xy2 z o 0 aparece mais na


com pilha e
GLC’s segunda do que na primeira metade.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Se vxy aparece nas duas metades, em 0 p 1i 0 j 1 p as variáveis i e j não podem
Pumping Lemma para
LLC’s
ser iguais a p ao mesmo tempo.
Máquinas de
Turing

(1388 – 1389 de 1593)


Pumping Lemma para LLC
LFA 2018/2

H. Longo Exemplo 7.33


Introdução L = {ww | w ∈ {0, 1}∗ } não é livre de contexto:
Fundamentos Suponha que L é LLC .
matemáticos
p 7→ pumping length.
Alfabetos e
linguagens
Escolha da cadeia s é menos óbvia.
Autômatos
finitos

Linguagens e s = 0 p 1 p 0 p 1 p = uvxyz e |vxy| ≤ p.


gramáticas
regulares
Se vxy aparece só na primeira metade de s, em uv2 xy2 z o 1 aparece duas
Linguagens
livres de vezes na segunda metade.
contexto

Autômatos Se vxy aparece só na segunda metade de s, em uv2 xy2 z o 0 aparece mais na


com pilha e
GLC’s segunda do que na primeira metade.
Definições básicas
Variações de PDA’s
PDA’s e GLC’s
Se vxy aparece nas duas metades, em 0 p 1i 0 j 1 p as variáveis i e j não podem
Pumping Lemma para
LLC’s
ser iguais a p ao mesmo tempo.
Máquinas de
Turing Dadas as contradições, L não é LLC .
(1389 – 1389 de 1593)
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Máquinas de Turing


finitos

Linguagens e
gramáticas
regulares

Linguagens
Definições básicas
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1390 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Modelos de dispositivos computacionais.
Alfabetos e
linguagens
Autômatos Finitos → adequado para dispositivos com pequena quantidade de
Autômatos memória.
finitos

Linguagens e
gramáticas Autômatos com Pilha → adequado para dispositivos com memória ilimitada,
regulares
mas de acesso limitado como pilha.
Linguagens
livres de
contexto

Autômatos
Máquina de Turing → Similar aos autômatos, mas com memória ilimitada e de
com pilha e
GLC’s
acesso irrestrito.
Máquinas de
Turing
Definições básicas
Variações

(1391 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo Modelo Simplificado


Introdução Fita infinita é a memória ilimitada.
Fundamentos
matemáticos
Cabeça de leitura/gravação move-se para a esquerda ou direita na fita.
Alfabetos e Conteúdo inicial da fita é a cadeia de entrada (demais posições da fita em
linguagens
branco).
Autômatos
finitos
Processa até produzir uma saída (aceita/rejeita).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1392 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo Modelo Simplificado


Introdução Fita infinita é a memória ilimitada.
Fundamentos
matemáticos
Cabeça de leitura/gravação move-se para a esquerda ou direita na fita.
Alfabetos e Conteúdo inicial da fita é a cadeia de entrada (demais posições da fita em
linguagens
branco).
Autômatos
finitos
Processa até produzir uma saída (aceita/rejeita).
Linguagens e
gramáticas
regulares
Cadeia w = w1 w2 · · · wn ∈ Σ∗
Linguagens
livres de Fita de entrada
contexto
... w1 w2 ... wn−1 wn ...
Autômatos
com pilha e
GLC’s
Cabeça de leitura/escrita
Máquinas de (movimento bidirecional)
Turing
Definições básicas Controle
Variações
finito de
estados

(1393 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Exemplo 8.1
Fundamentos
matemáticos L = {u#u | u ∈ {0, 1}∗ }.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1394 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Exemplo 8.1
Fundamentos
matemáticos L = {u#u | u ∈ {0, 1}∗ }.
Alfabetos e
linguagens
Máquina de Turing para verificar se w = u#u ∈ L, com u ∈ {0, 1}∗ :
Autômatos
finitos
1 Verificar se o símbolo # pertence a w.
Linguagens e
Em caso negativo, rejeita.
gramáticas
regulares 2 Verificar se posições relativas à direita e à esquerda do símbolo # contém o
Linguagens mesmo símbolo.
livres de
contexto Em caso negativo, rejeita.
Autômatos
com pilha e 3 Após testar os símbolos à esquerda do símbolo #, verificar se ainda tem
GLC’s
símbolos à direita sem testar.
Máquinas de
Turing
Em caso positivo rejeita e em caso negativo aceita.
Definições básicas
Variações

(1395 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1396 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1397 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1398 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1399 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1400 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1401 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1402 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1403 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1404 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1405 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1406 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1407 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1408 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1409 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1410 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1411 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1412 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1413 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1414 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1415 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1416 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1417 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X 1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1418 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1419 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1420 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1421 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1422 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1423 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1424 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1425 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X 1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1426 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1427 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1428 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1429 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1430 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1431 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1432 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1433 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1434 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1435 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1436 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1437 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1438 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1439 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1440 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1441 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1442 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1443 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1444 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1445 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1446 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1447 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1448 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1449 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1450 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1451 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1452 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1453 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1454 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1455 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1456 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1457 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1458 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1459 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1460 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1461 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1462 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1463 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1464 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1465 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1466 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1467 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1468 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1469 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1470 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0 # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1471 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1472 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1473 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1474 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1475 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1476 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1477 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0 ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1478 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1479 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1480 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1481 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1482 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1483 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1484 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1485 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1486 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1487 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1488 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1489 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1490 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1491 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1492 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1493 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens
Exemplo 8.2
Autômatos
finitos L = {u#u | u ∈ {0, 1}∗ }.
Linguagens e
gramáticas ... 0
X 1
X X
1 0
X 0
X 0
X # 0
X X
1 X
1 0
X 0
X 0
X ...
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1494 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Definição 8.3
Alfabetos e Uma Máquina de Turing é definida pela 7-upla M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
linguagens

Autômatos
S é o conjunto de estados,
Σ é o alfabeto de entrada ( < Σ),
finitos

Linguagens e
gramáticas Γ é o alfabeto da fita ( ∈ Γ e Σ ⊂ Γ),
regulares

Linguagens
δ : S × Γ → S × Γ × {E, D} é a função de transição,
livres de
contexto
s0 ∈ S é o estado inicial,
Autômatos sa ∈ S é o estado de aceitação, e
com pilha e
GLC’s sr ∈ S é o estado de rejeição ( sa , sr ).
Máquinas de
Turing
Definições básicas
Variações

(1495 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo
Definição 8.4
Introdução

Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1496 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo
Definição 8.4
Introdução

Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos
Configuração C1 gera configuração C2 se a máquina passa da configuração
Linguagens e
gramáticas C1 para a C2 em um único passo.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1497 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo
Definição 8.4
Introdução

Fundamentos
Configuração C = usv:
matemáticos
s : Estado corrente no processamento ( s ∈ S ).
Alfabetos e
linguagens
uv : Conteúdo da fita (u, v ∈ Γ∗ ).
v1 : Posição da cabeça de leitura/gravação (v = v1 v2 . . . vk ).
Autômatos
finitos
Configuração C1 gera configuração C2 se a máquina passa da configuração
Linguagens e
gramáticas C1 para a C2 em um único passo.
regulares

Linguagens
livres de Exemplo 8.5
contexto

Autômatos
Configuração 1011si 01111:
com pilha e
GLC’s u v
Máquinas de
Turing ... 1 0 1 1 0 1 1 1 1 ...
Definições básicas
Variações si

(1498 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1499 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1500 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares

Linguagens δ(si , b) = (s j , c, D) ⇒ uasi bv gera uacs j v.


livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1501 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares

Linguagens δ(si , b) = (s j , c, D) ⇒ uasi bv gera uacs j v.


livres de
contexto δ(si , b) = (s j , c, E) ⇒ si bv gera s j cv.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1502 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Funcionamento:
Alfabetos e
linguagens
a, b, c ∈ Γ.
Autômatos
u, v ∈ Γ∗ .
finitos si , s j ∈ S .
Linguagens e
gramáticas δ(si , b) = (s j , c, E) ⇒ uasi bv gera us j acv.
regulares

Linguagens δ(si , b) = (s j , c, D) ⇒ uasi bv gera uacs j v.


livres de
contexto δ(si , b) = (s j , c, E) ⇒ si bv gera s j cv.
Autômatos
com pilha e δ(si , b) = (s j , c, D) ⇒ si bv gera cs j v.
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1503 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 8.6
M = (S , Σ, Γ, δ, s0 , sa , sr ).
matemáticos

Alfabetos e
linguagens

Autômatos
M aceita a entrada w se existe uma seqüência de configurações
finitos C1 , C2 , . . . , Ck , tal que:
Linguagens e
gramáticas C1 = s0 w é a configuração inicial,
regulares
Cada Ci gera Ci+1 , e
Linguagens
livres de Ck é uma configuração de aceitação.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1504 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 8.6
M = (S , Σ, Γ, δ, s0 , sa , sr ).
matemáticos

Alfabetos e
linguagens

Autômatos
M aceita a entrada w se existe uma seqüência de configurações
finitos C1 , C2 , . . . , Ck , tal que:
Linguagens e
gramáticas C1 = s0 w é a configuração inicial,
regulares
Cada Ci gera Ci+1 , e
Linguagens
livres de Ck é uma configuração de aceitação.
contexto

Autômatos
com pilha e
sa é o estado de uma configuração de aceitação.
GLC’s

Máquinas de
sr é o estado de uma configuração de rejeição.
Turing
Definições básicas
Variações

(1505 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução M = (S , Σ, Γ, δ, s0 , sa , sr ).
Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 8.7
Autômatos L(M) : linguagem de M .
finitos

Linguagens e
Linguagem reconhecida por M .
gramáticas
regulares Coleção de cadeias que M aceita.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1506 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução M = (S , Σ, Γ, δ, s0 , sa , sr ).
Fundamentos
matemáticos

Alfabetos e
linguagens
Definição 8.7
Autômatos L(M) : linguagem de M .
finitos

Linguagens e
Linguagem reconhecida por M .
gramáticas
regulares Coleção de cadeias que M aceita.
Linguagens
livres de
contexto
Definição 8.8
Autômatos
com pilha e
GLC’s
Linguagem L Turing-reconhecível:
Máquinas de Existe uma máquina de Turing M tal que L(M) = L.
Turing
Definições básicas Linguagem recursivamente enumerável.
Variações

(1507 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1508 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1509 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos

Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1510 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos

Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto
Uma linguagem é decidível se alguma máquina de Turing a decide.
Autômatos
com pilha e Linguagem recursiva.
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1511 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Resultados possíveis de M = (S , Σ, Γ, δ, s0 , sa , sr ):
Fundamentos
matemáticos aceita, rejeita ou cicla.
Alfabetos e M falha em aceitar uma cadeia se entra no estado sr ou quando cicla.
linguagens Se M cicla, M simplesmente não para (não necessariamente repetindo os
Autômatos mesmos passos).
finitos

Linguagens e
gramáticas
regulares
Definição 8.9
Linguagens M decide uma linguagem L se a reconhece e para com qualquer entrada.
livres de
contexto
Uma linguagem é decidível se alguma máquina de Turing a decide.
Autômatos
com pilha e Linguagem recursiva.
GLC’s

Máquinas de
Toda linguagem decidível é Turing-reconhecível, mas nem toda linguagem
Turing
Definições básicas
Turing-reconhecível é decidível!!!
Variações

(1512 – 1551 de 1593)


A tese de de Church-Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Nos anos 30-40 do século XX, Church e Turing conjecturaram que qualquer
Alfabetos e computação que possa ser implementada por processos mecânicos (i.e., por
linguagens

Autômatos
uma máquina) pode também ser implementada por uma máquina de Turing.
finitos
Argumentos favoráveis à tese de Turing:
Linguagens e
gramáticas Qualquer computação que possa ser feita por qualquer computador digital
regulares existente também pode ser feita por uma máquina de Turing.
Linguagens Ninguém conseguiu ainda encontrar um problema, resolúvel por um algoritmo
livres de
contexto qualquer, para o qual não possa ser desenvolvida uma máquina de Turing.
Autômatos Foram propostos modelos alternativos para a computação mecânica, mas
com pilha e
GLC’s nenhum deles é mais poderoso do que a máquina de Turing.
Máquinas de
Turing
Definições básicas
Variações

(1513 – 1551 de 1593)


Alguns problemas indecidíveis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Uma dada gramática livre de contexto é ambígua?
Alfabetos e Uma dada linguagem livre de contexto é inerentemente ambígua?
linguagens

Autômatos A intersecção de duas linguagens livres de contexto é vazia?


finitos

Linguagens e
Duas linguagens livres de contexto são iguais?
gramáticas
regulares Uma dada linguagem livre de contexto é igual a Σ∗ ?
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1514 – 1551 de 1593)


Alguns problemas indecidíveis
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Uma dada gramática livre de contexto é ambígua?
Alfabetos e Uma dada linguagem livre de contexto é inerentemente ambígua?
linguagens

Autômatos A intersecção de duas linguagens livres de contexto é vazia?


finitos

Linguagens e
Duas linguagens livres de contexto são iguais?
gramáticas
regulares Uma dada linguagem livre de contexto é igual a Σ∗ ?
Linguagens
livres de
contexto Para uma linguagem em particular pode ser possível obter uma resposta a
Autômatos
com pilha e
qualquer uma dessas questões. Contudo, não há nenhum algoritmo geral que
GLC’s dê resposta (em tempo útil) para toda e qualquer linguagem livre de contexto.
Máquinas de
Turing
Definições básicas
Variações

(1515 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 8.10


matemáticos n
Alfabetos e
L = {02 | n ≥ 0}.
linguagens

Autômatos
w ∈ L.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1516 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 8.10


matemáticos n
Alfabetos e
L = {02 | n ≥ 0}.
linguagens

Autômatos
w ∈ L.
finitos

Linguagens e Máquina de Turing M que reconhece L:


gramáticas
regulares 1 Percorrer a fita, da esquerda para a direita, e marcar um 0 e pular um 0.
Linguagens Fita contém apenas um 0 ⇒ aceita.
livres de
contexto Fita contém um número ímpar n > 1 de 0´s ⇒ rejeita.
Autômatos
com pilha e 2 Mover a cabeça de leitura/gravação para o início da fita.
GLC’s

Máquinas de
3 Voltar ao passo 1.
Turing
Definições básicas
Variações

(1517 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1518 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos

Linguagens e s4
gramáticas
→D
regulares X→D
→E
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1519 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1520 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1521 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
contexto
s0 s1 s2 X→D
0 → X, D
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1522 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
com pilha e
X→D
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1523 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D

Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1524 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1525 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3
Definições básicas
Variações

→D X→D

(1526 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações

→D X→D

(1527 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1528 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1529 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1530 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1531 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2 
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1532 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1533 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1534 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x  s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1535 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x  s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x x s1 xx
Máquinas de
s4 x0x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1536 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x  s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3  s1 x0x
Definições básicas
Variações
x s1 0x
→D X→D

(1537 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x  s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3  s1 x0x xxx s1 
Definições básicas
Variações
x s1 0x
→D X→D

(1538 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2
Exemplo 8.11
H. Longo
n
L = {02 | n ≥ 0}.
Introdução

Fundamentos M = ({s0 , s1 , s2 , s3 , s4 , sa , sr }, {0}, {0, x,}, δ, s0 , sa , sr ):


matemáticos

Alfabetos e
linguagens X→E
0→E
Autômatos
finitos s0 0000 xx s2 x
Linguagens e s4  s1 000 xxx s2 
gramáticas
→D x s2 00 xx s4 x
regulares X→D
→E x0 s3 0 x s4 xx
Linguagens
livres de 0 → , D x0x s2   s4 xxx
s0 s1 s2 X→D
contexto
0 → X, D x0 s4 x s4 xxx
Autômatos
X→D x s4 0x  s1 xxx
com pilha e
GLC’s →D →D 0→D 0 → X, D  s4 x0x x s1 xx
Máquinas de
s4 x0x xx s1 x
Turing
sr sa s3  s1 x0x xxx s1 
Definições básicas
Variações
x s1 0x xxx sa
→D X→D

(1539 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo Exemplo 8.12


Introdução
L = {u#u | u ∈ {0, 1}∗ }.
Fundamentos
matemáticos
Máquina de Turing para verificar se w = u#u ∈ L, com u ∈ {0, 1}∗ :
Alfabetos e
1 Verificar se o símbolo # pertence a w.
linguagens
Em caso negativo, rejeita.
Autômatos
finitos 2 Verificar se posições relativas à direita e à esquerda do símbolo # contém o
Linguagens e mesmo símbolo.
gramáticas
regulares Em caso negativo, rejeita.
Linguagens
livres de 3 Após testar os símbolos à esquerda do símbolo #, verificar se ainda tem
contexto
símbolos à direita sem testar.
Autômatos
com pilha e Em caso positivo rejeita e em caso negativo aceita.
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1540 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo Exemplo 8.12


Introdução
M = ({s0 , . . . , s13 , sa , sr }, {0, 1, #}, {0, 1, #, x,}, δ, s0 , sa , sr ):
Fundamentos 0, 1 → D 0, 1 → E 0, 1 → D X→D
matemáticos

Alfabetos e
linguagens
s2 s4 s6 s8
Autômatos #→E →D #→D
finitos
1 → , D
Linguagens e X→D 1 → X, D 1 → X, E
gramáticas #→D X→D
regulares

Linguagens
s0 sa s11 s10 s9 0, 1, X, # → E
livres de
contexto
→D #→D →D
Autômatos
com pilha e 0 → , D 0 → X, D 0 → X, E
GLC’s

Máquinas de
#→E →D #→D
Turing s1 s3 s5 s7
Definições básicas
Variações

0, 1 → D 0, 1 → E 0, 1 → D X→D
(1541 – 1551 de 1593)
Exemplos de Máquinas de Turing
LFA 2018/2

H. Longo

Introdução
Exemplo 8.13
Fundamentos
matemáticos
L = {ai b2i | i ≥ 1}.
Alfabetos e
linguagens a→D
X→D a → X, D X→E X→D
Autômatos
finitos Y→D Y→E Y→D

Linguagens e a → X, D b → Y, D b → Y, E →D
gramáticas
s0 s1 s2 s3 s4
regulares

Linguagens
livres de b→D →D a→D
contexto →D →D b→D →D
Autômatos
com pilha e
GLC’s
sr sa
Máquinas de
Turing
Definições básicas
Variações

(1542 – 1551 de 1593)


Exemplos de Máquinas de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos Exemplo 8.14


matemáticos

Alfabetos e
L = {ai b3i | i ≥ 1}.
linguagens
a → X, D
Autômatos
finitos a→D a→E Y→D
Y→D Y→E
Linguagens e
a → X, D b → Y, D b → Y, D b → Y, E X→D
gramáticas s0 s1 s2 s3 s4 s5
regulares

Linguagens
, a → D
livres de →D
contexto →D
, a → D
Autômatos b, → D
com pilha e b→D
GLC’s sr sa
Máquinas de
Turing
Definições básicas
Variações

(1543 – 1551 de 1593)


Exemplos de Máquinas de Turing
LFA 2018/2

H. Longo Exemplo 8.15


Introdução L = {0i 1i 0i 1i | i > 0}.
Fundamentos
matemáticos

Alfabetos e
linguagens a→D

Autômatos 0→D 1→D 0→D


finitos b→D c→D d→D
Linguagens e
gramáticas s0 s1 s2 s3 s4
regulares 0 → a, D 1 → b, D 0 → c, D 1 → d, E

Linguagens 0→E
livres de 1→E
contexto →D →D →D b→E
1→D c→E
Autômatos →D
com pilha e b→D d→E
GLC’s

Máquinas de
sa s5 sr
→D 0→D
Turing
Definições básicas
1→D
Variações
b→D
c→D
d→D

(1544 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1545 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :


linguagens
1 Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Autômatos
finitos Em caso negativo, rejeita.
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1546 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :


linguagens
1 Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Autômatos
finitos Em caso negativo, rejeita.
Linguagens e
gramáticas 2 Retornar cabeça de leitura/gravação para a extremidade esquerda.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1547 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :


linguagens
1 Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Autômatos
finitos Em caso negativo, rejeita.
Linguagens e
gramáticas 2 Retornar cabeça de leitura/gravação para a extremidade esquerda.
regulares

Linguagens 3 Marcar um a e percorrer a fita para a direita até encontrar um b.


livres de
contexto
Alternadamente, marcar b’s e c’s.
Autômatos Marcou todos os c’s e sobrou b’s, rejeita.
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1548 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :


linguagens
1 Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Autômatos
finitos Em caso negativo, rejeita.
Linguagens e
gramáticas 2 Retornar cabeça de leitura/gravação para a extremidade esquerda.
regulares

Linguagens 3 Marcar um a e percorrer a fita para a direita até encontrar um b.


livres de
contexto
Alternadamente, marcar b’s e c’s.
Autômatos Marcou todos os c’s e sobrou b’s, rejeita.
com pilha e
GLC’s 4 Se existir a’s sem marcar, desmarcar b’s e repetir passo 3.
Máquinas de
Turing
Definições básicas
Variações

(1549 – 1551 de 1593)


Máquinas de Turing
LFA 2018/2

H. Longo

Exemplo 8.16
Introdução

Fundamentos L = {ai b j ck | i· j = k e i, j, k ≥ 1}.


matemáticos

Alfabetos e MT para verificar se u ∈ L, com u ∈ {a, b, c}+ :


linguagens
1 Verificar se u é da forma aa∗ bb∗ cc∗ (da esquerda para a direita).
Autômatos
finitos Em caso negativo, rejeita.
Linguagens e
gramáticas 2 Retornar cabeça de leitura/gravação para a extremidade esquerda.
regulares

Linguagens 3 Marcar um a e percorrer a fita para a direita até encontrar um b.


livres de
contexto
Alternadamente, marcar b’s e c’s.
Autômatos Marcou todos os c’s e sobrou b’s, rejeita.
com pilha e
GLC’s 4 Se existir a’s sem marcar, desmarcar b’s e repetir passo 3.
Máquinas de
Turing 5 Verificar se todos os c’s estão marcados.
Definições básicas
Variações Em caso positivo aceita e em caso negativo rejeita.

(1550 – 1551 de 1593)


Exemplos de Máquinas de Turing
LFA 2018/2

H. Longo

Introdução Exemplo 8.17


Fundamentos
matemáticos Qual é a linguagem aceita pela MT abaixo?
Alfabetos e Y→E
linguagens Y→D a→E
a→D Y→D
Autômatos b→E
finitos a → X, D Y→E X→D Y→D
s0 s1 s2 s3 s4
Linguagens e
gramáticas
regulares
a→D
Linguagens X→D
livres de b→D a→D →D
contexto →D

Autômatos b→D
com pilha e
GLC’s sr s5 sa
a→D →D
Máquinas de
Turing b→D
Definições básicas
Variações

(1551 – 1551 de 1593)


LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Máquinas de Turing


finitos

Linguagens e
gramáticas
regulares

Linguagens
Variações
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1552 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens Máquina com múltiplas fitas.
Autômatos
finitos
Máquina não determinística.
Linguagens e
gramáticas
regulares Decisor.
Linguagens
livres de
contexto
Enumerador (Contador).
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1553 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução
Definição 8.18
Fundamentos
matemáticos
Máquina com múltiplas fitas:
Alfabetos e
linguagens M = (S , Σ, Γ1 , Γ2 , . . . , Γk , δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γk → S × Γk × {E, D}k .
Linguagens e k : número de fitas.
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1554 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução
Definição 8.18
Fundamentos
matemáticos
Máquina com múltiplas fitas:
Alfabetos e
linguagens M = (S , Σ, Γ1 , Γ2 , . . . , Γk , δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γk → S × Γk × {E, D}k .
Linguagens e k : número de fitas.
gramáticas
regulares
δ(si , a1 , . . . , ak ) = (s j , b1 , . . . , bk , E, D, . . . , E):
Linguagens
livres de si : estado corrente.
contexto

Autômatos
Cabeças 1 a k lêem símbolos a1 , . . . , ak .
com pilha e
GLC’s
s j : próximo estado.
Máquinas de Cabeças 1 a k escrevem símbolos b1 , . . . , bk .
Turing
Definições básicas
Variações

(1555 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Teorema 8.19
Introdução

Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1556 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Teorema 8.19
Introdução

Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Simular a máquina de Turing com k fitas com uma máquina de Turing com
gramáticas uma fita.
regulares

Linguagens
M1 : Máquina com k fitas.
livres de M2 : Máquina com 1 fita.
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações 

(1557 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Teorema 8.19
Introdução

Fundamentos
Toda máquina de Turing com múltiplas fitas é equivalente a alguma máquina de
matemáticos
Turing com apenas uma fita.
Alfabetos e
linguagens

Autômatos Demonstração.
finitos

Linguagens e
Simular a máquina de Turing com k fitas com uma máquina de Turing com
gramáticas uma fita.
regulares

Linguagens
M1 : Máquina com k fitas.
livres de M2 : Máquina com 1 fita.
contexto
Armazenar as k entradas da máquina M1 na fita da máquina M2 .
Autômatos
com pilha e Usar o símbolo # para separar as k entradas na fita M2 .
GLC’s Marcar na fita da máquina M2 as posições das cabeças de leitura/gravação.
Máquinas de Usar novos símbolos que devem ser adicionados ao alfabeto da fita.
Turing
Definições básicas
Variações 

(1558 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Introdução Exemplo 8.20


Fundamentos
matemáticos M1 : Máquina com 3 fitas.
Alfabetos e
linguagens M2 : Máquina com 1 fita.
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1559 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Introdução Exemplo 8.20


Fundamentos
matemáticos M1 : Máquina com 3 fitas.
Alfabetos e
linguagens M2 : Máquina com 1 fita.
Autômatos
finitos

Linguagens e M1 0 1 0 1 0 └┘
...
gramáticas
regulares

Linguagens a a a └┘
...
livres de
contexto

Autômatos b a └┘ ...
com pilha e
GLC’s

Máquinas de M2 # 0 1 0 1 0 # a a a # b a # └┘
...
Turing
Definições básicas
Variações

(1560 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1561 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos Cabeça de leitura/gravação de M2 move-se do primeiro # ao (k + 1)-ésimo #
finitos
para determinar as posições da cabeças virtuais.
Linguagens e
gramáticas M2 realiza segunda passagem na fita para atualização (conforme função de
regulares
transição).
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1562 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo

Introdução
Comportamento de M2 com a entrada w = w1 · · · wn :
Fundamentos
matemáticos
Armazenar as k entradas da máquina M1 na fita da máquina M2 :
Alfabetos e •
linguagens # w1 w2 · · · wn # • # • # · · · #
Autômatos Cabeça de leitura/gravação de M2 move-se do primeiro # ao (k + 1)-ésimo #
finitos
para determinar as posições da cabeças virtuais.
Linguagens e
gramáticas M2 realiza segunda passagem na fita para atualização (conforme função de
regulares
transição).
Linguagens
livres de Se uma das cabeças virtuais de M2 move-se para a direita e encontra um #:
contexto

Autômatos
M1 move a correspondente cabeça para uma posição em branco da fita (ainda não
com pilha e lida).
GLC’s

Máquinas de
M2 desloca o conteúdo da fita (a partir do #) e escreve o símbolo  na posição
Turing aberta na fita.
Definições básicas
Variações

(1563 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo
Corolário 8.21
Introdução
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Fundamentos
matemáticos com múltiplas fitas a reconhece.
Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1564 – 1592 de 1593)


Variações da Máquina de Turing
Máquina com múltiplas fitas

LFA 2018/2

H. Longo
Corolário 8.21
Introdução
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Fundamentos
matemáticos com múltiplas fitas a reconhece.
Alfabetos e
linguagens
Demonstração.
Autômatos
finitos ⇒
Linguagens e
gramáticas Linguagem Turing-reconhecível é reconhecida por uma máquina de Turing
regulares
com apenas uma fita.
Linguagens
livres de
contexto Máquina de Turing com apenas uma fita é um caso especial de máquina com
Autômatos múltiplas fitas.
com pilha e
GLC’s

Máquinas de

Turing
Definições básicas
Conseqüência do teorema anterior.
Variações

(1565 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 8.22
matemáticos
Máquina não determinística (NT M ):
Alfabetos e
linguagens
M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γ → P(S × Γ × {E, D}).
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1566 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
Definição 8.22
matemáticos
Máquina não determinística (NT M ):
Alfabetos e
linguagens
M = (S , Σ, Γ, δ, s0 , sa , sr ), onde:
Autômatos
finitos δ : S × Γ → P(S × Γ × {E, D}).
Linguagens e
gramáticas
regulares
Processamento de uma NT M :
Linguagens Subconjuntos de estados e transições organizados como uma árvore.
livres de
contexto Ramos correspondem a diferentes opções de processamentos da máquina (não
Autômatos determinismo).
com pilha e
GLC’s
Se algum ramo leva a um estado de aceitação, a máquina aceita a entrada.
Máquinas de
Turing
Definições básicas
Variações

(1567 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Teorema 8.23
Fundamentos
matemáticos Toda máquina de Turing não determinística (NT M ) é equivalente a alguma
Alfabetos e
linguagens
máquina de Turing determinística (DT M ).
Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1568 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Teorema 8.23
Fundamentos
matemáticos Toda máquina de Turing não determinística (NT M ) é equivalente a alguma
Alfabetos e
linguagens
máquina de Turing determinística (DT M ).
Autômatos
finitos

Linguagens e
Esquema da prova
gramáticas
regulares Simular uma NT M qualquer com uma DT M .
Linguagens
livres de DT M deve testar todos os ramos do processamento da NT M .
contexto

Autômatos Encontrou um estado de aceitação em algum dos ramos?


com pilha e
GLC’s Sim DT M aceita.
Máquinas de
Turing
Não Simulação não termina.
Definições básicas
Variações

(1569 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução Esquema da prova


Fundamentos
matemáticos
NT M N e cadeia w.
Alfabetos e Processamento de w é uma árvore T :
linguagens

Autômatos Cada ramo é uma das opções do não determinismo.


finitos
Cada nó é uma configuração de N .
Linguagens e
gramáticas Raiz de T é a configuração inicial.
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1570 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução Esquema da prova


Fundamentos
matemáticos
NT M N e cadeia w.
Alfabetos e Processamento de w é uma árvore T :
linguagens

Autômatos Cada ramo é uma das opções do não determinismo.


finitos
Cada nó é uma configuração de N .
Linguagens e
gramáticas Raiz de T é a configuração inicial.
regulares

Linguagens
livres de
Busca em profundidade em T , por DT M D, de um estado de aceitação:
contexto
D pode descer em um ramo infinito e nunca encontrar estado de aceitação em
Autômatos
com pilha e outro ramo.
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1571 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução Esquema da prova


Fundamentos
matemáticos
NT M N e cadeia w.
Alfabetos e Processamento de w é uma árvore T :
linguagens

Autômatos Cada ramo é uma das opções do não determinismo.


finitos
Cada nó é uma configuração de N .
Linguagens e
gramáticas Raiz de T é a configuração inicial.
regulares

Linguagens
livres de
Busca em profundidade em T , por DT M D, de um estado de aceitação:
contexto
D pode descer em um ramo infinito e nunca encontrar estado de aceitação em
Autômatos
com pilha e outro ramo.
GLC’s

Máquinas de Busca em largura em T :


Turing
Definições básicas
Garantia de que D visita cada nó de T até encontrar configuração de aceitação.
Variações

(1572 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução Esquema da prova


Fundamentos
matemáticos DT M com três fitas:
Alfabetos e Fita 1 → cadeia de entrada (nunca é alterada).
linguagens

Autômatos Fita 2 → copia da fita da NT M em algum ramo do processamento.


finitos
Fita 3 → posição da DT M na árvore da processamento da NT M .
Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1573 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução Esquema da prova


Fundamentos
matemáticos DT M com três fitas:
Alfabetos e Fita 1 → cadeia de entrada (nunca é alterada).
linguagens

Autômatos Fita 2 → copia da fita da NT M em algum ramo do processamento.


finitos
Fita 3 → posição da DT M na árvore da processamento da NT M .
Linguagens e
gramáticas
regulares
D 0 0 1 0 └┘
...
Linguagens
livres de Entrada
contexto
x x # 0 1 x └┘
...
Autômatos
Simulação
com pilha e
GLC’s
1 2 3 3 2 3 1 2 1 1 3 └┘
...
Máquinas de Endereço
Turing
Definições básicas
Variações

(1574 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1575 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos

Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1576 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos

Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares

Linguagens Cada símbolo indica a próxima transição da NT M a ser simulada.


livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1577 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos

Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares

Linguagens Cada símbolo indica a próxima transição da NT M a ser simulada.


livres de
contexto Endereço pode ser inválido e não corresponder a um nó.
Autômatos Símbolo não corresponde a uma escolha disponível para a configuração.
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1578 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos
matemáticos Fita 3 da DT M :
Alfabetos e
linguagens Cada nó da árvore tem no máximo b filhos.
Autômatos b → tamanho do maior conjunto possível de escolhas numa transição da NT M .
finitos

Linguagens e
Cada nó recebe um endereço sobre o alfabeto Σb = {1, 2, . . . , b}.
gramáticas 231 → 2o filho da raiz, 3o filho deste 2o e 1o filho desse 3o .
regulares

Linguagens Cada símbolo indica a próxima transição da NT M a ser simulada.


livres de
contexto Endereço pode ser inválido e não corresponder a um nó.
Autômatos Símbolo não corresponde a uma escolha disponível para a configuração.
com pilha e
GLC’s Cadeia sobre Σb representa ramo do processamento da NT M da raiz até o nó
Máquinas de endereçado pela cadeia.
Turing
Definições básicas
Variações

(1579 – 1592 de 1593)


Variações da Máquina de Turing
Máquina não determinística

LFA 2018/2

H. Longo

Introdução
Esquema da prova
Fundamentos Funcionamento da DT M :
matemáticos

Alfabetos e
1 Fita 1 contém cadeia w e fitas 2 e 3 estão vazias.
linguagens
2 Copiar Fita 1 para Fita 2.
Autômatos
finitos 3 Usar Fita 2 para simular a NT M com entrada w em um ramo do processamento.
Linguagens e
gramáticas
regulares Antes de cada passo da NT M , consultar o próximo símbolo na Fita 3 para
Linguagens
determinar a transição a ser simulada.
livres de
contexto
Se Fita 3 está vazia ou escolha é inválida, abortar esse ramo e ir para o passo 4.
Autômatos Se encontrar configuração de rejeição, ir para o passo 4.
com pilha e
GLC’s Se encontrar configuração de aceitação, aceitar a cadeia w.
Máquinas de
Turing
4 Trocar a cadeia da Fita 3 (próxima cadeia na ordem lexicográfica). Voltar ao
Definições básicas passo 2 (Simular o processamento da NT M no próximo ramo).
Variações

(1580 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Corolário 8.24
Alfabetos e
linguagens
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Autômatos não determinística a reconhece.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1581 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Corolário 8.24
Alfabetos e
linguagens
Uma linguagem é Turing-reconhecível se e somente se alguma máquina de Turing
Autômatos não determinística a reconhece.
finitos

Linguagens e
gramáticas
Demonstração.
regulares
⇒ Qualquer DT M é automaticamente uma NT M .
Linguagens
livres de
contexto
⇐ Conseqüência do Teorema anterior.
Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1582 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Corolário 8.25
Alfabetos e
linguagens Uma linguagem é decidível se e somente se alguma máquina de Turing não
Autômatos determinística a decide.
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1583 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos
Corolário 8.25
Alfabetos e
linguagens Uma linguagem é decidível se e somente se alguma máquina de Turing não
Autômatos determinística a decide.
finitos

Linguagens e
gramáticas Demonstração.
regulares

Linguagens Modificar a prova do teorema anterior para a DT M parar em um ramo do


livres de
contexto processamento no qual NT M também para.
Autômatos
com pilha e 
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1584 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos Decisor
finitos

Linguagens e Máquina de Turing não determinística que para em todos os ramos do


gramáticas
regulares
processamento para todas as cadeias de entrada.
Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1585 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Enumerador (Contador)
Alfabetos e Máquina de Turing com uma impressora acoplada.
linguagens

Autômatos Dispositivo de saída para cadeias “geradas” pela máquina.


finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1586 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos Enumerador (Contador)
Alfabetos e Máquina de Turing com uma impressora acoplada.
linguagens

Autômatos Dispositivo de saída para cadeias “geradas” pela máquina.


finitos

Linguagens e Controle
gramáticas
0 1 0 1 0 └┘
...

regulares Fita de Trabalho

Linguagens
livres de Impressora
contexto abba
baba
Autômatos
aa
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1587 – 1592 de 1593)


Variações da Máquina de Turing
LFA 2018/2

H. Longo

Introdução

Fundamentos
matemáticos

Alfabetos e
Enumerador (Contador)
linguagens
Começa o processamento com a fita de trabalho vazia.
Autômatos
finitos Se não para, pode imprimir uma lista infinita de cadeias.
Linguagens e
gramáticas A linguagem enumerada por E é a coleção de cadeias eventualmente
regulares
impressas.
Linguagens
livres de
contexto
E pode gerar as cadeias da linguagem em qualquer ordem, com possíveis
Autômatos
repetições.
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1588 – 1592 de 1593)


Variações da Máquina de Turing
Enumerador

LFA 2018/2

H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos

Alfabetos e
linguagens

Autômatos
finitos

Linguagens e
gramáticas
regulares

Linguagens
livres de
contexto

Autômatos
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações

(1589 – 1592 de 1593)


Variações da Máquina de Turing
Enumerador

LFA 2018/2

H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos
⇐=
finitos
Enumerador E que gera a linguagem L.
Linguagens e
gramáticas
regulares
Máquina de Turing M que reconhece L.
Linguagens Processamento de M com a cadeia w ∈ L:
livres de
contexto
1 Execute E . Compare w com cada cadeia gerada por E .
Autômatos
2 Se w aparece na saída de E , aceite.
com pilha e
GLC’s

Máquinas de
Turing
Definições básicas
Variações


(1590 – 1592 de 1593)


Variações da Máquina de Turing
Enumerador

LFA 2018/2

H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos
=⇒
finitos
Máquina de Turing M que reconhece L.
Linguagens e
gramáticas
regulares
Enumerador E que gera a linguagem L.
Linguagens s1 , s2 , . . . , si 7→ lista de todas as possíveis cadeias em Σ∗ .
livres de
contexto Processamento de E :
Autômatos 1 Ignore a cadeia de entrada.
com pilha e
GLC’s 2 Repita os passos ?? e ?? para i = 1, 2, 3, . . . .
Máquinas de
Turing
3 Execute M por i passos para cada s1 , s2 , . . . , si .
Definições básicas
Variações
4 Se qualquer processamento aceita, imprima a correspondente cadeia s.


(1591 – 1592 de 1593)


Variações da Máquina de Turing
Enumerador

LFA 2018/2

H. Longo
Teorema 8.26
Introdução
Uma linguagem é Turing-reconhecível se e somente se algum Enumerador a gera.
Fundamentos
matemáticos

Alfabetos e Demonstração.
linguagens

Autômatos
=⇒
finitos
Se M aceita uma cadeia w, eventualmente w vai aparecer na lista gerada por
Linguagens e
gramáticas
E.
regulares
Aparece na lista infinitas vezes.
Linguagens M é executada desde o início para cada cadeia e repetição do passo ??.
livres de
contexto
Simula a execução de M em paralelo para todas as possíveis cadeias de
Autômatos
com pilha e entrada.
GLC’s

Máquinas de
Turing
Definições básicas
Variações


(1592 – 1592 de 1593)


Livros Texto
LFA 2018/2

H. Longo

Apêndice R. P. Grimaldi
Bibliografia Discrete and Combinatorial Mathematics – An Applied Introduction.
Addison Wesley, 1994.

D. J. Velleman
How To Prove It – A Structured Approach.
Cambridge University Press, 1996.

J. E. Hopcroft; J. Ullman.
Introdução à Teoria de Autômatos, Linguagens e Computação.
Ed. Campus.

T. A. Sudkamp.
Languages and Machines – An Introduction to the Theory of Computer Science.
Addison Wesley Longman, Inc. 1998.

J. Carroll; D. Long.
Theory of Finite Automata – With an Introduction to Formal Languages.
Prentice-Hall, 1989.

M. Sipser.
Introduction to the Theory of Computation.
PWS Publishing Company, 1997.

H. R. Lewis; C. H. Papadimitriou
Elementos de Teoria da Computação.
Bookman, 2000.

(1593 – 1593 de 1593)

Vous aimerez peut-être aussi