Professional Documents
Culture Documents
EMENTA:
Estudo de modelos tericos da computao, de linguagens formais e
autmatos.
OBJETIVOS:
- Compreender como uma linguagem desenvolvida
1. Gramticas e Linguagens
1. Motivao
2. Definio Formal
3. Alfabeto, Palavra, Linguagem
4. Palavra Vazia
2. Autmatos Finitos
1.
AFD - Autmato Finito Determinstico
2. AFND - Autmato Finito No-Determinstico
3.
Transformao de AFND para AFD
4. Aplicaes de AF
3. Expresses Regulares (ER)
1. Definies
2. Relao ER X AF
3. Aplicaes de ER
4. . Gramticas Regulares
4.
Gramticas
1. Definio Formal
5. Hierarquia das Gramticas (Chomsky)
6. Gramticas Regulares (GR)
7. Relao GR X AF
5. Gramticas Livres de Contexto (GLC) e Autmatos com Pilha (AP)
5. Aspectos Bsicos de GLC
5. Ambigidade em GLC's
6. Autmatos com Pilha
7. Relao GLC X AP
Bsica:
BLAUTH, Paulo Menezes. Linguagens Formais e Autmatos - Sagra-Luzzatto, 1998.
HOPCROFT, J. E. & ULLMAN, J. D. Introduction to Automata Theory, Languages and
Computation - Addison-Wesley, 1979.
LEWIS, Harry R. & PAPADIMITRIOU, Christos H. Elementos de Teoria da Computao Bookman, 2000.
Complementar:
DIVERIO, Tiaraju Asmuz & BLAUTH, Paulo Menezes. Teoria da Computao - Mquinas
Universais e Computabilidade - Sagra-Luzzatto, 1998.
HOPCROFT, J. E. & ULLMAN, J. D. Formal Languages and Their Relation to Automata - AddisonWesley, 1969.
SALOMA, Arto. Formal Languages. Academic Press, 1973.
Aula 1
Teoria das linguagens formais foi
desenvolvida em 1950 com o objetivo de
estudar linguagens Naturais. Entretanto, logo
foi verificado a importncia desta para o
estudo de linguagens artificiais como as LP.
Enfoque em analise lxica, sinttica de
linguagens de programao, modelos de
sistemas biolgicos, desenho de hardware e
relacionamento com linguagens naturais
20/09/2012
11
Introduo
Algumas caractersticas de LN introduziram
dificuldades no Tratamento computacional das
mesmas:
LN extensa, complexa, no tem sintaxe rgida e
semntica bem determinada (rica em ambigidade);
20/09/2012
12
Introduo
Linguagens Computacionais so muito mais simples, so
linguagens criadas artificialmente de forma que possam
ser tratadas computacionalmente de forma satisfatria;
As maneiras sistemticas de descrever uma linguagem de
programao so:
Um mtodo que permite construir programas estaticamente
corretos - gerao (Gramtica);
Um mtodo que permite verificar se um programa escrito
est sintaticamente correto - reconhecimento
(Autmatos);
20/09/2012
13
Sintaxe e Semntica
Linguagens formais Preocupa se com os problemas
sintticos e semnticos de LP
Os problemas sintticos foram reconhecidos antes no
estudo das LP, ento receberam tratamento antes tambm
Os problemas sintticos tem tratamento mais simples, pois
trata da ordem em que os comandos so dispostos
Uma LP pode ser vista de duas formas (como qualquer
modelo matematico)
Entidade Livre, ou seja, sem qualquer significado associado
Entidade juntamente com interpretao do seu
significado(semntica)
20/09/2012
14
Sintaxe e Semntica
Sintaxe trata a verificao Gramatical de um programa
Basicamente manipula smbolos sem se preocupar com
seu significado
20/09/2012
15
Resumindo
Sintaxe:
Define a forma e estrutura de uma linguagemSmbolos,
20/09/2012
16
Resumindo
Semntica:
Descrever o significados das estruturas do programa
expressos na sua sintaxe
Tipos de semntica
Semntica esttica: Descreve as caractersticas de uma
programa vlido
Semntica dinmica: Descreve os resultados da execuo do
programa
Define um mapeamento da sintaxe do programa para o seu
significado
20/09/2012
17
Resumindo
A Semntica complementar a sintaxe. Ela
corresponde descrio do significado das instrues
vlidas de uma linguagem. Por exemplo, a sintaxe da
instruo if da linguagem C++ : if () {} e sua
semntica : se o valor da expresso for verdadeiro, as
instrues incorporadas sero executadas pelo
programa.
20/09/2012
18
20/09/2012
19
Conjuntos
Relaes
Funes
20/09/2012
20
21
22
23
20/09/2012
24
25
20/09/2012
26
20/09/2012
27
20/09/2012
28
29
30
31
32
33
Concatenao
={a,b,c,..,z},
U=abra
Z=cadabra
A Concatenao UZ ser igual a ABRACADABRA
A ordem na concatenao tem relevncia!
Atenao!
A concatenao ZU ser igual a CADABRAABRA
20/09/2012
34
Exponenciao
Exponenciao de Alfabetos: k o conjunto de todas
as cadeias com tamanho k, formadas sobre o alfabeto
, onde U uma cadeia.
Exemplo: considere U = {abra}
0 = {}
1 = {abra}
2 = {abra,abra}
Exerccio: considerando UZ como ficaria UZ 2.
20/09/2012
35
Exerccios
1. O que alfabeto?
2. Defina o conceito de cadeia.
L1 L2
L1 L2
L1 L2
L2 L1
L 1 .L 2
L 2 .L 1
L 1 2 = L 1 .L 1
L 2 2 = L 2 .L 2
L1
20/09/2012
36
Exerccios
O que alfabeto?
Alfabeto um conjunto finito e no vazio de
smbolos. Geralmente, o alfabeto
denotado por . Um exemplo de alfabeto seria
= {0, 1}, ou seja, um
alfabeto que possui dois smbolos, 0 e 1.
20/09/2012
37
Exerccios
Defina o conceito de cadeia.
Uma cadeia uma seqncia formada por
smbolos pertencentes um
mesmo alfabeto. Por exemplo, a partir do alfabeto =
{0, 1} seria possvel
formar as cadeias 0, 001 e 110101. Note que diferentes
cadeias no precisam
necessariamente ter a mesma quantidade de smbolos.
20/09/2012
38
Exerccios
Dados L 1 ={a, ab} e L 2 ={, a, ba}, linguagens sobre {a, b},
determine:
a.
b.
c.
d.
e.
f.
g.
h.
i.
20/09/2012
39
Trabalho 12/04
Defina o conceito de linguagem e mostre um exemplo.
Como se pode descrever uma linguagem formal?
Fale sobre aplicaes de LFA. De exemplos
O que fechamento de um alfabeto?
Defina o conceito de subpalavra .
O que prefixo e sufixo ? Defina com exemplos
O que Complemento de uma cadeia? Defina com exemplos
Trabalho individual
Enviar em pdf para isolopak@commandperfect.com.br
Com assunto TRABALHO INTRODUCAO TEORIA DA
COMPUTACAO
20/09/2012
40
Entendendo
abra
A,b,r ..
={a,b,c,..,z},
20/09/2012
W={abra} Z={cadabra}
X={if, then, else, for ...}
41
Linguagens formais
Comparando as definies:
Linguagem Natural:
Uma palavra em portugus equivale um smbolo;
Uma sentena da lngua portuguesa uma cadeia
Composta por vrios smbolos;
Linguagem Computacional:
Cada programa escrito numa linguagem computacional
corresponde a uma cadeia de smbolos que podem ser:
identificadores;
palavras reservadas;
smbolos especiais e operadores;
constantes numricas.
20/09/2012
42
20/09/2012
43
Tipos de formalismo
Reconhecedores
Recebe uma palavra e retorna um valor dizendo se a
palavra ou no da linguagem
Geradores
Defini um conjunto de regras que pode ser combinadas
para gerar palavras
Denotacional (Gerador?)
Uma expresso que denota de modo geral as palavras da
linguagem
20/09/2012
44
Linguagens formais
Veremos diversos formalismos de cada um dos tres
tipos
Alguns formalismos so mais poderosos que os outros
Especificam mais linguagens
45
20/09/2012
46
Linguagens formais
Geradoras ..
Reconhecedoras
20/09/2012
47
20/09/2012
48
20/09/2012
49
20/09/2012
50
Frente
Retaguarda
51
52
Nenhum
Fechado
Frente
Retaguarda
Ambos
Aberto
Nenhum
20/09/2012
53
Frente
Retaguarda
Ambos
Fechado
Fechado
Aberto
Aberto
Aberto
Aberto
Fechado
Aberto
Aberto
Aberto
20/09/2012
54
Estado
Inicial
Desligad
o
Ligado
Pressionar
20/09/2012
55
Maquinas de estado
Palavra FAFIMAN
Qualquer outra deve ser Descartada
F
q1
q2
I
q3
Estado
Inicial
q0
={A, B, C,...Z},
20/09/2012
M
q4
A
q5
N
q6
q7
Estado de
Aceitao
, Estado
Final
56
Maquinas de estado
Palavra FABRICA
Qualquer outra deve ser Descartada, utilizando a
maquina de estado para FAFIMAN
F
q1
q2
I
q3
Estado
Inicial
q0
={A, B, C,...Z},
20/09/2012
M
q4
A
q5
N
q6
q7
Estado de
Aceitao
, Estado
Final
57
Exemplos
Lavadora de Roupas/loucas
Termmetro eletrnico
Relgios digitais
Calculadoras
Maquinas de Vendas automticas (coca cola)
20/09/2012
58
Autmatos Finitos
O Automato finito uma maquina reconhecedora de
palavras ou cadeias de caracteres que sempre para
retornando uma resposta SIM (se reconhece) ou NAO
(se no reconhece)
Podem ser Classificadas em:
Autmatos Finitos Determinsticos - AFD
Autmatos Finitos No determinsticos AFND
20/09/2012
59
60
Estado inicial
Estado final
20/09/2012
Representao Grfica
Transicao (s,a)=s
61
AFD - Exerccios
1) Descreva a definio de AFD
2) Dados o Autmato abaixo, Defina-o formalmente
62
AFD - Exerccios
4) Desenvolva a representao grfica para vendingmachine que aceita
moedas de 5, 10 e 25 centavos. O preo do produto que ela entrega 30
centavos. Partindo do estado inicial (0 centavos) deveremos reconhecer
sequencias que nos levem a estados finais (valor inserido >= 30 centavos)
V=<, S, S0, , F> onde:
= {5, 10, 25} - cada um destes smbolos (ou letras) representa uma ao
S = {<0c>, <5c>, <10c>, <15c>, <20c>,
<25c>, <30c>, <35c>, <40c>, <45c>, <50c>} - cada estado indica quanto foi
depositado
S0= <0c> - estado inicial
F = {<30c>, <35c>, <40c>, <45c>, <50c>} - estado onde a entrada vlida e o
produto pode ser liberado
20/09/2012
63
AFD - Exerccios
Delta
10
25
0C
5C
10C
25C
5C
10C
15C
30C
10C
15C
20C
35C
15C
20C
25C
40C
20C
25C
30C
45C
25C
30C
35C
50C
30C
35C
40C
45C
50C
20/09/2012
64
AFD - Exerccios
1) Descreva a definio de AFD
Um AFD uma quntupla <, S, S0, , F>, onde:
o alfabeto de entrada;
S um conjunto finito no vazio de estados;
S0 o estado inicial, S0 S ;
a funo de transio de estados, definida : S x S ;
F o conjunto de estados finais, F S .
20/09/2012
65
AFD - Exerccios
2) Dados o Autmato abaixo, Defina-o formalmente
Tabela de Transio
Delta
Q0
Q0
Q1
Q1
Q2
Q1
Q2
Q1
Q1
66
AFD - Exerccios
3) Utilizando se do autmato acima, verifique
a) 01 reconhecido?
a) Sim, 01 reconhecido pelo autmato pois ao final da leitura estar em
q1, que um estado de aceitao.
b) correto afirmar que qualquer cadeia formada por smbolos 1 em qualquer
quantidade reconhecida? Explique o porque.
a) Sim, pois qualquer quantidade de smbolos 1 inseridos na cadeia leva ao
estado de aceitao q1
c) correto Afirmar que as nicas cadeias reconhecidas pelo autmato so as
terminadas em 1? Prove sua resposta.
a) No, pois a cadeia 100 tambm uma cadeia valida pois seu estado final
ser q1
20/09/2012
67
Soluo do exrcito 4
20/09/2012
68
AFD - Exerccios
Seja = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, construa AFDs para as seguintes
linguagens:
utilize apenas 2 estados para o exerccio abaixo
1) {x + | a sequencia descrita por x corresponda a um valor inteiro par}
1) Ou seja para atingir o estado final deve terminar em nmero par
2) {x + | a sequencia descrita por x corresponda a um valor inteiro
divisvel por 5}
20/09/2012
69
Segundo Bimestre
Bem Vindos !!!
20/09/2012
70
No Determinstico
Transies ambguas
Funo de Transio leva a vrios estados alternativos
Varias sequencias possiveis
20/09/2012
71
20/09/2012
72
20/09/2012
73
AFND
Um estado pode ter zero,um ou mais arcos saindo para cada smbolo do
alfabeto
20/09/2012
74
AFND
Testando a cadeia 110
q0
1
q0
1
q0
A cadeia aceita se um estado final
encontrado!
q0
20/09/2012
q1
1
Parou
q1
q2
75
AFND
Transio
Delta
Q0
Q0
{Q0,Q1}
Q1
Q2
Q2
20/09/2012
76
= Q x
20/09/2012
77
20/09/2012
78
20/09/2012
79
Exerccio
20/09/2012
80
Q0
a
abbab
Q0
b
Q2
Q1
Q0
b
Parou!
Q4
Q0
a
Q4
Q4
20/09/2012
Cadeia Aceita!
Itamar Solopak isolopak@commandperfect.com.br
Q0
Q0
81
Exerccio
20/09/2012
82
Soluo
M1
M2
Aa
Aab
ab
abab
Aba
abaa
20/09/2012
83
Autmatos
Equivalncia entre AFD e AFND
20/09/2012
84
20/09/2012
Q0
{Q0,Q1}
{Q0}
Q1
{Q2}
*Q2
85
20/09/2012
Q0
{Q0,Q1}
{Q0}
Q1
{Q2}
*Q2
{Q0,Q1}
{Q0,Q1 + }
{Q0,q2}
Novo!
86
Q0
{Q0,Q1}
{Q0}
Q1
{Q2}
*Q2
{Q0,Q1}
{Q0,Q1 + }
{Q0,q2}
{Q0,Q2}
{Q0,Q1+}
{Q0+}
Existe alguma
nova
Transio?
20/09/2012
No! Ento
vamos
simplificar
87
Remover os
Q0
{Q0,Q1}
{Q0}
Q1
{Q2}
*Q2
{Q0,Q1}
{Q0,Q1 }
{Q0,q2}
{Q0,Q2}
{Q0,Q1}
{Q0}
Para transformar o AFND em AFD vamos simplificar mais ainda veja!
20/09/2012
88
Simplificando
= A
Q0 = B
{Q0,Q1}
{Q0}
Q1 = C
{Q2}
*Q2= D
{Q0,Q1} = E
{Q0,Q1 }
{Q0,q2}
{Q0,Q2} = F
{Q0,Q1}
{Q0}
20/09/2012
89
Simplificando
*D
90
*F
20/09/2012
{Q0}
{Q0,Q1}
{Q0}
{Q0,Q1}
{Q0,Q1}
{Q0,Q2}
*{Q0,Q2}
{Q0,Q1}
{Q0}
91
20/09/2012
{Q0}
{Q0,Q1}
{Q0}
{Q0,Q1}
{Q0,Q1}
{Q0,Q2}
*{Q0,Q2}
{Q0,Q1}
{Q0}
92
Finalizando
Tome o diagrama de transio do AFND e crie para cada conjunto um
novo estado onde o nome do estado o prprio conjunto
Complete as transies dos novos estados acompanhando o
comportamento de cada estado individualmente tomando a UNIAO dos
estados acessados
Adicione ao estado final todos os estados que possuem no rotulo o estado
final original
Elimine os estados nunca acessados a partir do estado inicial
Complete o AFD da seguinte forma:
Q do AFD so os estados resultantes ate este ponto
O alfabeto no alterado
A construo do Delta j foi mencionada
O estado inicial no se altera
Os Estados finais so a unio de todos os estados finais do delta
resultantes
20/09/2012
93