Documente Academic
Documente Profesional
Documente Cultură
Formais e de Autmatos
Anibal S. Jukemura1, Hugo A. D. do Nascimento1, Joaquim Q. Ucha2
1
1. Introduo
O estudo de Linguagens Formais e Autmatos imprescindvel para a formao de
profissionais em Cincias da Computao e em reas de conhecimento afins. As
definies e os problemas vistos nesse estudo so a base para compreender conceitos
mais complexos em Teoria da Computao, tais como decidibilidade e complexidade de
problemas. Alm disso, a Teoria de Autmatos tem aplicaes diretas na modelagem de
vrios sistemas fsicos de estados finitos e na construo de compiladores e
interpretadores para linguagens de programao. At mesmo processadores de texto
fazem uso de autmatos finitos para realizarem a busca de substrings (sub-cadeias de
1
XIII WEI
2432
2.
As definies encontradas nesta seo so baseadas nos trabalhos de Aho [Aho 1973],
Hopcroft [Hopcroft 1979], Menezes [Menezes 2000] e Sudkamp [Sudkamp 1997].*
Um autmato finito um modelo matemtico de uma mquina computacional
de estados finitos que l uma seqncia de smbolos (uma string) de uma fita e aceita ou
rejeita essa entrada. Tal modelo composto de trs partes:
a) Uma Fita consiste de um dispositivo de entrada que contm a informao
(smbolos) a ser processada;
b) Uma Unidade de Controle composta por uma leitora (cabea de leitura)
que acessa uma clula da fita de cada vez e movimenta-se para uma nova
posio na fita;
c) Um Programa ou Funo de Transio delta uma funo que, dado
um estado atual da mquina e um smbolo lido da fita, determina uma
mudana de estado.
Um autmato finito comea em um ou mais estados iniciais e l uma seqncia
de smbolos da fita. Durante o processo de leitura, o autmato muda de estado de acordo
*
Definies adicionais em Teoria de Autmatos podem ser encontradas nas referncias citadas.
2
XIII WEI
2433
com a sua funo programa. Uma vez lida a seqncia de smbolos, o autmato pra sua
execuo, e emite uma mensagem dizendo se aceita ou rejeita essa seqncia. O sinal de
aceitao emitido, se e somente se o autmato tiver parado em um estado previamente
definido como final.
O conjunto de todas as strings aceitas por um autmato formam a linguagem
aceita por essa mquina.
Os autmatos normalmente esto classificados nos seguintes grupos:
Autmatos Finitos Determinsticos (AFD): so mquinas que apresentam
uma funo programa delta que, para cada estado e cada smbolo, possui
uma nica transio bem definida. Alm disso, o autmato comea em um
nico estado inicial e a leitora da mquina avana imediatamente para a
prxima posio da fita aps a leitura de um smbolo.
Autmatos Finitos No-Determinsticos (AFND): so mquinas semelhantes
s da classe determinstica, diferenciando-se na funo programa delta que,
ao processar uma entrada composta pelo estado corrente e um smbolo lido,
tem como resultado um conjunto de novos estados. A mquina pode ter
tambm mais de um estado inicial. O funcionamento de um autmato nodeterminstico pode ser simulado atravs de uma multiplicao da unidade de
controle de um autmato determinstico.
Autmatos Finitos No-Determinsticos com Movimentos Vazios (AFND- ):
so mquinas semelhantes s da classe no-determinstica, com o adicional
de poderem realizar uma transio de estados sem a leitura de um smbolo da
fita.
Autmatos de Pilhas ou Autmatos push-down (APD): so mquinas
anlogas aos Autmatos Finitos anteriores, mas com a incluso de uma pilha
que funciona como memria auxiliar.
Mquinas de Turing (MT): o formalismo mais poderoso dentre as quais
foram citadas. Na realidade os autmatos desta classe so capazes de
executar quaisquer tarefas que sejam efetivamente computveis.
Existem algumas operaes bsicas que so realizadas sobre autmatos, entre
elas destacam-se:
1. Anlise e validao de cadeias de entrada: ao se analisar uma string de
entrada, a mquina de estados capaz de determinar se essa cadeia de
caracteres um elemento ou no da linguagem representada.
2. Converso de um AFND para um AFD e vice-versa: essa operao comprova
que essas duas classes so equivalentes.
3. Minimizao de um AFD: o objetivo da minimizao gerar um autmato
finito equivalente ao autmato original, mas com o menor nmero de estados
possvel.
XIII WEI
2434
3. A Ferramenta GAM
A Ginux Abstract Machine (GAM) uma ferramenta opensource (cdigo aberto) que
pode ser utilizada em sala de aula ou em laboratrio, como parte de um material de
apoio para o aprendizado de conceitos em Teoria de Linguagens Formais, Teoria da
Computao e Compiladores. Ela oferece os seguintes recursos:
1. mdulos para a entrada e teste de mquinas formuladas por alunos e pelo
professor;
2. suporte a diversos tipos de autmatos;
3. interface grfica para visualizao da mquina de entrada;
4. possibilidade de acompanhar passo-a-passo a execuo da funo de
transio delta; e
5. operaes de converso e minimizao de autmatos.
A GAM se originou de um trabalho de Especializao do Departamento de
Computao da Universidade Federal de Lavras, Minas Gerais [Jukemura 2004a]. A
ferramenta pode ser usada em ambientes GNU/Linux, Windows e em sistemas
operacionais que suportem GTK e GTKmm, estando disponvel para download em
http://www.ufgvirtual.ufg.br/~anibal/ginux.
3.1. Estrutura Interna
A estrutura interna da ferramenta GAM consiste de seis elementos distintos (ver Figura
1):
Mdulo dos autmatos: este mdulo composto pela classe que armazena
funcionalmente os autmatos que sero manipulados pela GAM.
XIII WEI
2435
Entrada de Dados
(Cadeia de
Caracteres)
Interface
Grfica
Visualizao do
Autmato (grafo
direcionado)
Salvar
Projeto
Validao da
Entrada:
aceita/rejeita
Minimizao de AFD
Autmato
Disco
Carregar
Projeto
Converso
AFND AFD
XIII WEI
2436
Janela de
Desenhos
Barra de
Ferramentas
Caixa de Anlise de
Entradas
XIII WEI
2437
XIII WEI
2438
de
de
de
de
XIII WEI
2439
4. Avaliao da Ferramenta
Para testar a funcionalidade, usabilidade e o papel didtico da ferramenta GAM, foi
elaborado um experimento prtico com usurios reais, conforme descrito a seguir.
4.1. Planejamento do Experimento
Vinte e cinco alunos do terceiro e quarto anos do curso de Cincias da Computao do
Instituto de Informtica (INF) da Universidade Federal de Gois que esto cursando a
disciplina de Linguagens Formais e Autmatos tomaram parte da avaliao da
ferramenta.
O experimento foi dividido em duas baterias de testes com dez alunos na
primeira bateria e quinze alunos na segunda, utilizando-se o laboratrio GNU/Linux de
ps-graduao do INF. Os testes foram distribudos em trs estgios:
Estgio 1: nessa parte do experimento, os alunos responderam a uma lista de
cinco exerccios contendo questes relacionadas com a construo de AFNDs,
converso entre AFNDs e AFDs, anlise de palavras de entrada e minimizao de
AFDs. Para essa parte, foi previsto um tempo de 10min.
Estgio 2: uma vez respondida a lista de exerccios, cada aluno teve acesso
ferramenta GAM, a fim de validar suas respostas.
Estgio 3: esse estgio compreendeu o preenchimento de um questionrio sobre
a utilidade e a usabilidade da ferramenta GAM pelo aluno. Foi planejado um perodo de
15 minutos para a realizao dessa atividade.
4.2. Resultados Encontrados
Para o Estgio 1 do experimento, os alunos gastaram em mdia, 12min para resolver
todos os exerccios propostos. interessante observar que todos demonstraram domnio
do contedo da disciplina, at porque j haviam estudado o assunto da lista de exerccio
no bimestre anterior.
O Estgio 2 durou de 15 a 20 minutos e, para preencherem a ficha no Estgio 3,
os alunos gastaram de 10 a 13 minutos.
Pelas respostas obtidas atravs do experimento, percebeu-se uma unanimidade
com relao facilidade de uso do software, visto que todos no tiveram dificuldades de
aprenderem por si prprios a manipularem suas funes (lembrando que no houve um
treinamento prvio). Isso tudo fez com que o Estgio 2 do experimento no se
prolongasse tanto.
Com relao instalao da ferramenta em ambiente GNU/Linux,
12% no opinaram.
9
XIII WEI
2440
XIII WEI
2441
Caractersticas
Sistema
Windows
Operacional GNU/Linux
MAC/OS
Licena
GPL
Comercial
Simular AFD
Simular AFND
Simular AFND-
AFD AFND
Funes
DFApplet 1.0
Ferramentas
VAS
Visual Turing
*
*
*
*
AFD ER
ER AFND-e
Minimizar AFD
Simular APD
Simular MT
GAM
6. Concluso
A GAM foi implementada com as funes de simulao de AFDs e AFNDs, com
opes de anlise passo a passo e anlise total para strings de entrada com at vinte
caracteres. Com o auxlio da interface grfica que expe a funo programa, fica
evidente a facilidade de estudar essas classes de uma forma muito clara e prtica.
A principal vantagem da ferramenta encontra-se nas funes de simulao de
AFD e AFND, juntamente com as operaes de converso de AFNDs para AFDs e
minimizao de AFDs, as quais fornecem uma excelente opo prtica exposio
terica do estudo desses itens, alm de economizar muito tempo em simulaes de
cadeias de caracteres de entrada para os autmatos durante demonstraes em sala de
aula.
Adicionalmente, o projeto foi desenvolvido sob licena GPL. Com a sua
continuidade, em conjunto com a divulgao comunidade livre, espera-se o
surgimento de muitas contribuies para o desenvolvimento das prximas verses.
Prope-se de imediato a implantao das seguintes operaes em uma nova verso:
anlise de cadeia de entrada para os modelos de APDs e MTs;
simulao passo a passo da pilha auxiliar para os APDs; e
simulao completa de AFND-, APDs, MTs.
11
XIII WEI
2442
Outra interessante funo que pode ser includa nessa ferramenta a alterao do
mdulo de desenho grfico das mquinas abstratas para que ele suporte mais estados e
tambm possa fornecer liberdade de manipulao de componentes pelo usurio.
Referncias
Aho, A. V., Currents in the Theory of Computing, Prentice Hall, 1973
Bovet Jean, Visual Automata Simulator. [on-line]. Disponvel na internet via
http://www.cs.usfca.edu/~jbovet/vas.html. Arquivo capturado em janeiro de 2005.
Cheran Cristian, Visual Turing. [on-line]. Disponvel
http://sourceforge.net. Arquivo capturado em janeiro de 2005.
na
internet
via
Monografia
de
Keller, Rodrigo dos Santos; Schereiber, Jacques N. C.; (Artigo Completo) GEO-3D: A
Realidade Virtual como Suporte ao Ensino da Geometria Espacial. Anais do
WISE99 - Workshop Internacional Sobre Educao Virtual. 9-11 de Dezembro de
1999. Fortaleza CE.
Kowaltowki, Tomasz; Lucchesi Cludio L.; Stolfi, Jorge. Finite Automata and Efficient
Lexicon Implementation. Relatrio Tcnico IC-98-2, Instituto de Computao Unicamp, Janeiro de 1998. 13 pginas.
Menezes, Paulo F. Blauth. Linguagens Formais e Autmatos. Porto Alegre: Ed. Sagra
Luzzatto, 2000. 160p.
Sudkamp, Thomas A., Languages and Machines. USA: Addison-Wesley Publishing
Company, Inc. Segunda Edio, 1997. P.155-295
Unitex-PB,
Compress.
[on-line].
Disponvel
na
internet
via
http://www.nilc.icmc.usp.br:8180/unitex-pb/compactador.html. Arquivo capturado em
fevereiro de 2005.
12
XIII WEI
2443