ine5317 linguagens formais e compiladores aula 5...
TRANSCRIPT
INE5317 Linguagens Formais e
Compiladores
Ricardo Azambuja SilveiraINE-CTC-UFSC
E-Mail: [email protected]: www.inf.ufsc.br/~silveira
AULA 5: Autômatos Finitos
06/09/06 Ricardo Silveira 2
As Linguagens e os formalismos representacionais
● Os tipos de formalismos utilizados:– Denotacional: as linguagens são representadas
por meio de uma função que caracteriza o conjunto de palavras admissíveis na linguagem
● EXPRESSÕES REGULARES– Axiomático: as linguagens são representadas
através de regras que constituem uma Gramática que permite derivar todo o conjunto de sentenças
● GRAMÁTICAS– Operacional: as linguagens são representadas
por máquinas abstratas ou autômatos, baseados em estados, em instruções primitivas e em como cada símbolo modifica cada estado
● AUTÔMATOS
06/09/06 Ricardo Silveira 3
Sistemas de Estados Finitos● Um Sistema de Estados Finitos é um modelo
matemático de sistemas com entradas e saídas discretas que pode assumir um número finito e pré-definido de estados
● Cada estado resume somente as informações do passado necessárias para determinar as ações para a próxima entrada
06/09/06 Ricardo Silveira 4
Tipos de autômatos
● Autômato finito● Autômato com pilha● Máquina de Turing com fita finita● Máquina de Turing
06/09/06 Ricardo Silveira 518
LINGUAGENS REGULARES E AUTÔMATOS FINITOS
● Constituem um conjunto de linguagens decidíveis bastante simples e com propriedades bem definidas e compreendidas.
● Podem ser reconhecidas por Autômatos Finitos e são facilmente descritas por expressões simples, chamadas Expressões Regulares.
● Podem ser abordadas através de fomalismos:– Operacional ou reconhecedor: Autômato Finito
(Determinístico e Não-determinístico e Vazio).– Axiomático ou gerador: Gramática Regular– Denotacional: Expressão Regular
06/09/06 Ricardo Silveira 620
Autômato Finito● Um Autômato Finito é um reconhecedor de
L.R.– Entende-se por reconhecedor de uma linguagem
L um dispositivo que tomando uma seqüência w como entrada, responde “sim” se w ∈ L e “não” caso contrário.
● Os Autômatos Finitos classificam-se em:– Autômatos Finitos Determinísticos (AFD)– Autômatos Finitos Não-Determinísticos (AFND)– Autômatos Finitos com Movimentos Vazios (AFε)
06/09/06 Ricardo Silveira 7
Autômato Finito Determinístico
● Um autômato finito determinístico é uma máquina abstata composta por:– Fita
● Dispositivo de entrada que contém a informação a ser processada
– Unidade de controle● Reflete o estado corrente da máquina. Possui
uma leitora que lê uma célula de cada vez e movimenta-se para a direita
– Programa ou Função de Transição● Comanda as leituras e define o estado da
máquina
06/09/06 Ricardo Silveira 8
Autômato Finito Determinístico● Um autômato finito
determinístico (AFD)é uma 5-upla:– M= (Q, Σ, δ, q
0,F)
– Q é um conjunto de estados possíveis do autômato, o qual é finito;
– Σ é um alfabeto de símbolos de entrada;
– δ (delta) é um programa ou função de transição: δ:Q × Σ → Q
– q0 é o estado inicial, tal que q
0 é
elemento de Q– F é o conjunto de estados
a a b c c b a a
Controle
06/09/06 Ricardo Silveira 9
Função de transição
δ(q; a) = p
para q, p ∈ K e a ∈ Σ,
significando que, estando no estado q e lendo o síımbolo a na fita de entrada, o autômato muda para o estado p e avança o cabeçote uma posição.
06/09/06 Ricardo Silveira 1021
M= (Σ, Q, δ, q0,F)∑ alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito;δ programa ou função de transição: δ: Q x ∑ → Qq0 estado inicial, tal que q0 é elemento de Q (indicado por uma seta)
F conjunto de estados finais, tal que F está contido em Q;
a
estado anterior novo estado
p q
símbolo lido
Represertação de autômato como grafo
06/09/06 Ricardo Silveira 11
Exemplo● M = ({q0, q1, q2}, {a; b}, δ, q0, {q2}),
– δ(q0; a) = q1,– δ(q1; a) = q1, – δ(q1; b) = q2.– Logo, T(M) = {anb | n ≥ 1 }.
06/09/06 Ricardo Silveira 12
Tabela de transição de estados
● Uma terceira forma de representar um AF:– Tabela indicando na vertical os estados, e na
horizontal os síımbolos do alfabeto. – No cruzamento estão as transições possíveis;– O estado inicial é indicado por uma seta, e os
estados finais por asteriscos.δ a b→q0 q1 -q1 q1 q2
*q2 - -
06/09/06 Ricardo Silveira 13
δ a b
q0 q1 q2q1 qf q2q2 q1 qfqf qf qf
q0
q2q1
qf
a b
b
a,b
aa
b
δ1 é representada na tabela
Exemplo de AFD– Considere a linguagem:L1={w | w possui aa ou bb
como subpalavra}● AF: M1=({a,b},{q0,q1,q2,qf}, δ
1, q0, {qf})
06/09/06 Ricardo Silveira 14
δ 0 1
→*q0 q0 q1*q1 q0 -
0
1
δ1 é representada na tabela
Exemplo de AFD– Considere a linguagemconstituída por sentenças
em {0; 1}* as quais não contém dois ou mais 1’s consecutivos
● AF: M1=({0,1},{q0,q1}, δ, q0, {q0,q1})● δ(q0; 0) = q0, δ(q0; 1) = q1, δ(q1; 0) = q0.
0
q1q0
06/09/06 Ricardo Silveira 15
M= (Σ, Q, δ, q0,F)∑ alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito;δ programa ou função de transição: δ: Q x ∑ → 2Q
q0 estado inicial, tal que q0 é elemento de Q F conjunto de estados finais, tal que F está contido em Q;
p
p1
a
estado anterior
Conjunto de novosestados
símbolo lido
p2 pn
aa
Autômato Finito Não-Determinístico
06/09/06 Ricardo Silveira 16
δ a b
q0 {q0,q1} {q0, q2}q1 {qf} -q2 - {qf}qf {qf} {qf}
q0
q2q1
qf
a b
b
a,b
a
δ1 é representada na tabela
Exemplo de AFND– Considere a linguagem:L1={w | w possui aa ou bb
como subpalavra}● AF: M1=({a,b},{q0,q1,q2,qf}, δ
2, q0, {qf})
a,b
06/09/06 Ricardo Silveira 18
Equivalência entre AFD e AFND● A partir de um AFND é possível construir um AFD
06/09/06 Ricardo Silveira 19
Determinismo X Não-determinismo
● Muitas vezes é mais fácil desenvolver um AFN do que um AFD– exemplo
● { w | o quinto símbolo da direita para a esquerda de w é a }
● solução determinista: não é trivial; número grande de estados
● solução não-determinista: bem simples, poucos estados
● Alternativa para construir um AFD– desenvolver inicialmente AFN
06/09/06 Ricardo Silveira 23
Exemplo● Dado o AFND M = ({q0, q1}, {0, 1}, δ, q0, {q1}) e
– δ(q0, 0) = {q0, q1} – δ(q0; 1) = {q1}– δ(q0; 1) = φ; – δ(q1; 1) = {q0, q1}
● Construir o AFD M0 equivalente.
06/09/06 Ricardo Silveira 25
M= (Σ, Q, δ, q0,F)∑ alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito;δ programa ou função de transição: δ: Q x (∑ U {ε}) → 2Q
q0 estado inicial, tal que q0 é elemento de Q F conjunto de estados finais, tal que F está contido em Q;
p
p1
a
estado anterior
Conjunto de novosestados
símbolo lido
p2 pn
aε
Autômato Finito com Movimentos Vazios AFε
06/09/06 Ricardo Silveira 28
Exemplo
q0
q1
q2
q3
q5
q4
0,1, ..., 9
0,1, ..., 9 0,1, ..., 9
0,1, ..., 9
.
● Um AFε que aceita numeros decimais compostos por um sinal opcional (+ ou -) e digitos separados por um ponto decimal
ε,+,- .
06/09/06 Ricardo Silveira 32
Computaçao nos AFε● Função Programa Estendida (computação)
– M= (Σ, Q, δ, q0,F)
06/09/06 Ricardo Silveira 35
Equivalência entre AFN e AFε● construção de uma função programa sem movimentos
vazios● conjunto de estados destino de cada transição não-
vazia– ampliado com os demais estados possíveis de serem
atingidos exclusivamente por transições vazias
06/09/06 Ricardo Silveira 3730
Expressões Regulares X Linguagens Regulares
● Se r é uma expressão regular ela foi gerada por uma LR;
● Uma linguagem é regular, se e somente se, é possível construir um AF (AFD, AFND, AFε ) que reconheça a linguagem.
● Portanto, para determinar que uma expressão é regular deve-se construir um AF a partir dela.