Escolar Documentos
Profissional Documentos
Cultura Documentos
Autmatos
PINHEIRO, lvaro Farias
Autor
I
Srie Fundamentos da Engenharia de Software
Autmatos
Publicao 2017
O autor acredita que todas as informaes aqui apresentadas esto corretas e podem ser
utilizadas para qualquer fim legal. Entretanto, no existe qualquer garantia explcita ou implcita,
de que o uso de tais informaes conduzir sempre ao resultado desejado. Os nomes de sites e
empresas, por ventura, mencionados, foram utilizados apenas para ilustrar os exemplos, no
tendo vnculo nenhum com o livro, no garantindo a sua existncia nem divulgao. Eventuais
erratas estaro disponveis para download no site de publicao.
Dados da Publicao
1. Introduo
2. Expresso Regular
3. Autmatos
4. Linguagem Formal
II
Srie Fundamentos da Engenharia de Software
Autmatos
Publicao Independente
Revista em portugus com o ttulo
Autmatos
Srie Fundamentos da Engenharia de Software
Ano II Nmero 5
Recife Pernambuco Brasil
Maio de 2017
III
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
Introduo
Anlises de um compilador:
1.1 Definies
1.2 Modelos
Foi no sculo XX que teve incio aos estudos do que iria ser a Teoria da
Computao. O objetivo era (e ainda), descobrir quais problemas
matemticos poderiam ser resolvidos por um mtodo simples.
1.3 Finalidade
http://www.alvarofpinheiro.eti.br/ Pgina 1
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
1.4 Classes
http://www.alvarofpinheiro.eti.br/ Pgina 2
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
Fonte: Internet
(+) unio
(.) concatenao
(*) kleene
1.5.1 Unio
1.5.2 Concatenao
http://www.alvarofpinheiro.eti.br/ Pgina 3
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
L={001,00111,001110,110,11011,110110}
1.5.3 Klenee
L(E*) = (L(E*))*
E={001,110)
={ ,001,110,001001,001110,...}
F={"ab", "c"}*
={ , "ab", "c", "abab", "abc", "cab", "cc", "ababab", "abcab", ... }
Cada estado de um autmato desse tipo tem uma transio para cada smbolo
do alfabeto;
Alm de ser capaz de pular para mais (ou nenhum) estados com quaisquer
smbolos, esse tipo de autmato pode pular para outros estados sem que haja
nenhum smbolo (String vazia).
http://www.alvarofpinheiro.eti.br/ Pgina 4
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
uma mquina de Turing limitada, ao invs de ser uma fita infinita, a fita tem
uma quantidade de espao proporcional ao tamanho da String de entrada.
Aceitam linguagens sensveis ao contexto.
http://www.alvarofpinheiro.eti.br/ Pgina 5
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
http://www.alvarofpinheiro.eti.br/ Pgina 6
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
Depois, que uma linguagem se torna bem aceita pelo mercado, mais uma
preocupao se passam a ter que a sua padronizao. Essa padronizao
necessria, para uniformizar o uso e a evoluo da linguagem. Normalmente
as entidades que formalizam a padronizao so a ANSI e o ISO, veja os links
para saber mais.
Mas para se ter uma ideia dos mesmos, vamos falar sucintamente sobre eles.
Comeando com a explicao de Linguagens Formais e Autmatos.
Basicamente o estudo de modelos matemticos que permitam definir e
reconhecer linguagens, possibilitando a sua classificao, estruturao e
caractereizao. conhecida como Teoria da Cincia da Computao. A
finalidade do estudo dessas teorias fornecer fundamentos para a Cincia da
Computao em relao decidibilidade, computabilidade e complexidade
computacional. Essas teorias fundamentam vrias reas da computao,
como processamento de linguagens, reconhecimento de padres, modelagem
de sistemas.
1.10.1 Tipo 3
http://www.alvarofpinheiro.eti.br/ Pgina 7
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
L-se: Para uma linguagem, dado uma palavra que pertence ao dialeto 0 e 1
baseado na expresso de klenee, tal que, 111 seja uma subcadeia da palavra.
Temos:
http://www.alvarofpinheiro.eti.br/ Pgina 8
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
1.10.2 Tipo 2
http://www.alvarofpinheiro.eti.br/ Pgina 9
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
Fonte: Internet
Para entender melhor esse mecanismo, veja a figura 1.6 e observe os passos
para reconhecimento da linguagem: L = {a*b* | *>=0}. Para cada lido, deve-se
inseri-lo na pilha, e para cada b lido deve-se remover um a da pilha, no trmino
uma palavra p ser reconhecida se no final do processo a pilha estiver vazia.
Fonte: Internet
A figura 1.7 representa a transio, onde temos (a) o smbolo lido da fita, (A)
representa o smbolo lido da pilha, e (beta) a palavra gravada na pilha.
Resumindo temos:
Fonte: Internet
http://www.alvarofpinheiro.eti.br/ Pgina 10
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
L1 = {a*b* | * >= 0}
1 = ({a,b},{q1,q2,q3}, ,q1,{B})
1(q1,a,?) = {(q1,B)}
1(q1,b,B) = {(q2,?)}
1(q1,?,?) = {(q3,?)}
1(q2,b,B) = {(q2,?)}
1(q2,?,?) = {(q3,?)}
http://www.alvarofpinheiro.eti.br/ Pgina 11
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
1.10.3 Tipo 1
1.10.4 Tipo 0
A MT composta por uma fita que como j dito infinita e pode se mover. Por
um registrador de estados que armazena o estado da mquina, isto , um
dispositivo que armazena os estados, incluindo o estado inicial com o qual o
registrador inicializado. A MT tambm composta por uma tabela de
http://www.alvarofpinheiro.eti.br/ Pgina 12
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
A leitura dessa tabela pode ser feita da seguinte forma como mostra a figura
1.11: Estando a MT no estado s1 e o caractere lido pela cabea for zero, ento
se escreve o caractere b e move-se uma posio para a direita, alm de
mudar o estado para s2.
Figura 1.11 MT
Passo Estado
Fita
----- ------ ----
1 s1 00
2 s2 b0
3 s2 b0b
4 s3 b0bb
5 s4 b0b0
http://www.alvarofpinheiro.eti.br/ Pgina 13
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
6 s5 b0b0
7 s5 b0b0
8 s1 00b0
9 s2 0bb0
10 s3 0bb0
11 s3 0bb0b
12 s4 0bb00
13 s4 0bb00
14 s5 0bb00
15 s1 00b00
Fonte: Prprio
Autor
Abstrao; Clareza;
Confiabilidade;
Eficincia;
Legibilidade;
Ortogonalidade;
Simplicidade; e
Suporte
http://www.alvarofpinheiro.eti.br/ Pgina 14
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
http://www.alvarofpinheiro.eti.br/ Pgina 15
Srie Fundamentos da Engenharia de Software Ano II Nmero 5 Autmatos
http://www.alvarofpinheiro.eti.br/ Pgina 16