Top Banner
Editor de Autômatos Finitos Editor de Autômatos Finitos Acadêmica: Josiane Patr Acadêmica: Josiane Patr í í cia Morastoni cia Morastoni Orientadora: Joyce Martins Orientadora: Joyce Martins 0 0 0 1
52

Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Oct 01, 2018

Download

Documents

vudung
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Editor de Autômatos FinitosEditor de Autômatos Finitos

Acadêmica: Josiane PatrAcadêmica: Josiane Patríícia Morastonicia Morastoni

Orientadora: Joyce MartinsOrientadora: Joyce Martins

0

0

0

1

Page 2: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Roteiro da ApresentaRoteiro da Apresentaççãoão

�� IntroduIntroduççãoão

��Autômatos FinitosAutômatos Finitos

��Desenvolvimento Desenvolvimento trabalhotrabalho

��ConsideraConsideraçções finaisões finais

2/312/31

Page 3: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

IntroduIntroduççãoão

Objetivos especObjetivos especííficos :ficos :-- especificar autômatos finitos para linguagens regulares especificar autômatos finitos para linguagens regulares

atravatravéés de diagramas de transis de diagramas de transiçções;ões;

-- tratar AFD e AFND;tratar AFD e AFND;

-- verificar as propriedades dos autômatos especificados;verificar as propriedades dos autômatos especificados;

-- permitir o reconhecimento de palavras.permitir o reconhecimento de palavras.

3/313/31

Objetivo principal:Objetivo principal:

-- implementar um implementar um editor greditor grááfico defico deautômatos finitosautômatos finitos

para uso como ferramenta de apoio.para uso como ferramenta de apoio.

Page 4: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Autômatos FinitosAutômatos Finitos

4/314/31

Page 5: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

RepresentaRepresentaçção dos Autômatos Finitosão dos Autômatos Finitos

Diagrama de transiDiagrama de transiççãoão

Tabela de transiTabela de transiççãoão

5/315/31

Page 6: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ClassificaClassificaçção dos Autômatos Finitos ão dos Autômatos Finitos

��Autômatos Finitos com Movimento Vazio (AFAutômatos Finitos com Movimento Vazio (AFεεεεεεεε))

��Autômatos Finitos NãoAutômatos Finitos Não--DeterminDeterminíísticos (AFND)sticos (AFND)

��Autômatos Finitos DeterminAutômatos Finitos Determiníísticos (AFD)sticos (AFD)

6/316/31

Page 7: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Elementos dos Autômatos Finitos Elementos dos Autômatos Finitos

M= (M= (ΣΣΣΣΣΣΣΣ, Q,, Q, δδδδδδδδ,, qq00, F), onde:, F), onde:

a)a) ΣΣΣΣΣΣΣΣ éé o alfabeto de so alfabeto de síímbolos de entrada;mbolos de entrada;

b)b) Q Q éé o conjunto finito de estados posso conjunto finito de estados possííveis ;veis ;

c)c) FunFunçção de transião de transiçção (varião (variáável)vel);;

d)d) qq00 éé o estado inicial, tal que qo estado inicial, tal que q00 éé elemento de Q;elemento de Q;

e)e) F F éé o conjunto de estados finais, tal que F esto conjunto de estados finais, tal que F estáá contido em Q.contido em Q.

7/317/31

Page 8: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Autômatos Finitos Autômatos Finitos com movimento vazio (AFcom movimento vazio (AFεεεεεεεε))

-- Um movimento vazio Um movimento vazio éé uma transiuma transiçção sem leitura de são sem leitura de síímbolo na fita.mbolo na fita.

-- MMovimento vazio ovimento vazio éé representado pela aplicarepresentado pela aplicaçção da funão da funçção ão de de transitransiççãoão dedeum um estado q ao sestado q ao síímbolo especial mbolo especial εεεεεεεε, obtendo, obtendo--se se δδδδδδδδ(q, (q, εεεεεεεε). ).

8/318/31

Page 9: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Autômatos Finitos Autômatos Finitos NãoNão--DDetermineterminíístico (AFND)stico (AFND)

-- AoAo processar um sprocessar um síímbolo da entrada a partir do estado mbolo da entrada a partir do estado corrente,corrente,pode ter como resultado um conjunto depode ter como resultado um conjunto denovos estados. novos estados.

9/319/31

Page 10: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Autômatos FinitosAutômatos FinitosDeterminDeterminíístico (AFD)stico (AFD)

-- Ao processar um sAo processar um síímbolo da entrada a partir do estado corrente, o mbolo da entrada a partir do estado corrente, o AFD pode assumir um AFD pode assumir um úúnico estado.nico estado.

10/3110/31

Page 11: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Propriedades de Autômatos FinitosPropriedades de Autômatos Finitos

-- Estados MortosEstados Mortos: : estados que não são finais e a partir deles estados que não são finais e a partir deles

não não éé posspossíível atingir um estado finalvel atingir um estado final;;

-- Estados inalcanEstados inalcançáçáveisveis: : estados que não recebem nenhuma estados que não recebem nenhuma

transitransiççãoão..

11/3111/31

Page 12: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ImplementaImplementaççõesõesde de Autômatos FinitosAutômatos Finitos

PPara construir reconhecedores de linguagens regulares ara construir reconhecedores de linguagens regulares éé preciso: preciso:

12/3112/31

-- especificar expressões regularesespecificar expressões regulares;;

-- converter as expressões regulares em autômatos finitos converter as expressões regulares em autômatos finitos

determindeterminíísticos msticos míínimos correspondentesnimos correspondentes;;

-- implementar os autômatos em uma linguagem qualquer. implementar os autômatos em uma linguagem qualquer.

Page 13: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ImplementaImplementaççõesõesde de Autômatos FinitosAutômatos Finitos

AA construconstruçção de um reconhecedor para a linguagem composta por todas as ão de um reconhecedor para a linguagem composta por todas as palavras de comprimento maior ou igual a dois, iniciando com 01 palavras de comprimento maior ou igual a dois, iniciando com 01 e seguidos e seguidos por nenhum ou vpor nenhum ou váários 0s ou 1s, envolve:rios 0s ou 1s, envolve:

c) c) a implementaa implementaçção de maneira especão de maneira especííficafica ou genou genééricarica::

13/3113/31

a)a) a especificaa especificaçção de uma ER: 01(0+1)*ão de uma ER: 01(0+1)*;;

b)b) a definia definiçção do AFD mão do AFD míínimo correspondente nimo correspondente àà expressão regularexpressão regular::

Page 14: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

SENÃOGOTO erro

FIMSE

qf :SE posição < tamanho (palavra) ENTÃOINC(posição)SE palavra[posição] = '0' OU

palavra[posição] = '1' ENTÃOGOTO qf

FIMSESENÃO

ESCREVA ('palavra reconhecida')GOTO fim

FIMSE

erro: ESCREVA ('palavra não reconhecida')

fim:FIM

ALGORITMO especifico

VARIÁVEIS STRING : palavraINTEIRO: posição

INÍCIO LEIA (palavra)posição ←←←← 0

q0:SE posição < tamanho (palavra) ENTÃOINC(posição) SE palavra[posição] = '0' ENTÃO

GOTO q1SENÃO

GOTO erroFIMSE

SENÃO GOTO erro

FIMSE

q1:SE posição < tamanho (palavra) ENTÃOINC(posição) SE palavra[posição] = '1' ENTÃO

GOTO qf

SENÃOGOTO erro

FIMSE

14/3114/31

Page 15: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ALGORITMO genérico(palavra, estado: STRING; posição : INTEIRO): LÓGICO;

VARIÁVEISCARACTER: símboloINTEIRO : índice BOOLEAN : achouTABELA : transição

INÍCIOSE (COPIA(estado,1,2) = 'qf') E (tamanho(palavra) < posição) ENTÃO

achou ←←←← verdadeiroSENÃO

achou ←←←← falsosímbolo ←←←← COPIA(palavra,posição,1)PARA índice DE 0 ATÉ transição.tamanhotabela FAÇA

SE (transição.estadoAtual = estado) E (transição.sím boloLido = símbolo)E (NÃO achou) ENTÃO

achou ←←←← genérico(palavra, transição.próximoEstado, posição+ 1)FIMSE

FIMPARAFIMSEgenérico ←←←← achou

FIM

15/3115/31

Page 16: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

O algoritmo apresentado O algoritmo apresentado éé recursivo e retorna verdadeiro, caso a palavra tenha recursivo e retorna verdadeiro, caso a palavra tenha sido reconhecida, e falso, em caso contrsido reconhecida, e falso, em caso contráário. rio.

Usa Usa uma tabelauma tabelapara para representarepresentarr aass transitransiççõesões criadascriadas.. Esta tabela tambEsta tabela tambéémm ééusada para validausada para validaççãoão do autômato.do autômato.

16/3116/31

Page 17: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

-- DDesenvolvimentoesenvolvimentoRRáápidopido de de AAplicaplicaççõesões(RAD) descrito em(RAD) descrito emThiryThiry (2001). (2001).

DesenvolvimentoDesenvolvimentododo trabalhotrabalho

17/3117/31

EEssessemodelo engloba:modelo engloba:

a)a) analisar os requisitos, para determinar o foco do problema que sanalisar os requisitos, para determinar o foco do problema que sereráá resolvido;resolvido;

b)b) desenvolver um projeto inicial;desenvolver um projeto inicial;

c)c) repetir os seguintes passosrepetir os seguintes passosatatéé que a aplicaque a aplicaçção esteja pronta:ão esteja pronta:

-- implementar uma versão da aplicaimplementar uma versão da aplicaçção; ão;

-- entregar a implementaentregar a implementaçção para o cliente testar; ão para o cliente testar;

-- receber um feedback do cliente; receber um feedback do cliente;

-- planejar uma nova versão para responder ao feedbackplanejar uma nova versão para responder ao feedback((se houver se houver

problemas, uma nova soluproblemas, uma nova soluçção deve ser propostaão deve ser proposta).).

Page 18: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Estudo de Caso 1Estudo de Caso 1

-- Abrir uma nova janela no editorAbrir uma nova janela no editor;;-- CCriarriar estado inicialestado inicial;;-- CCriarriar outros estadosoutros estados;;-- CCriarriar estados finaisestados finais;;-- CCriarriar transitransiççõesões;;-- II nformarnformar o so síímbolo que sermbolo que seráá reconhecido quando a transireconhecido quando a transiçção for disparadaão for disparada;;-- Estados e transiEstados e transiçções podem ser excluões podem ser excluíídos com excedos com exceçção do estado inicial que ão do estado inicial que

deve ser o deve ser o úúltimo a ser apagado.ltimo a ser apagado.

18/3118/31

Page 19: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Estudo de Caso Estudo de Caso 22

-- O O acadêmicoacadêmicosselecionarelecionaráá no menu Autômato a opno menu Autômato a opçção validaão validaçção do autômatoão do autômato;;

-- O editor determinarO editor determinaráá o tipo do autômato finito, os posso tipo do autômato finito, os possííveis estados mortos e os veis estados mortos e os posspossííveis estados inalcanveis estados inalcançáçáveisveis;;

-- O editor apresentarO editor apresentaráá mensagens com as propriedades identificadas.mensagens com as propriedades identificadas.

19/3119/31

Page 20: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Estudo de Caso 3Estudo de Caso 3

-- O acadêmico digitarO acadêmico digitaráá uma palavra no campo Digite a palavrauma palavra no campo Digite a palavra;;

-- OO acadêmico acadêmico sselecionarelecionaráá no menu Autômato a opno menu Autômato a opçção ão reconhecreconhecer er palavra, palavra,

podendo ser direto ou passo a passo.podendo ser direto ou passo a passo.

-- diretadireta: : o editor retornaro editor retornaráá se a palavra foi aceita ou rejeitadase a palavra foi aceita ou rejeitada;;

-- passo a passopasso a passo: : o editoro editoralaléém da mensagem, pintarm da mensagem, pintaráá o caminho percorrido o caminho percorrido

pelo editor durante o reconhecimento.pelo editor durante o reconhecimento.

20/3120/31

Page 21: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Diagrama de ClasseDiagrama de Classe

21/3121/31

Page 22: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Diagrama de SeqDiagrama de Seqüüênciaência

22/3122/31

Page 23: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

EspecificaEspecificaççãoão: : Diagrama de SeqDiagrama de Seqüüênciaência

23/3123/31

Page 24: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ImplementaImplementaççãoão

Este trabalho foi desenvolvido com linguagemEste trabalho foi desenvolvido com linguagemObjectObjectPascalPascal..

FerramentasFerramentas: :

-- Borland Delphi 6Borland Delphi 6;;

-- Rational Rose; Rational Rose;

-- PhotoShop 6.0.PhotoShop 6.0.

Componentes principaisComponentes principais::

-- A interface do ambiente grA interface do ambiente grááfico foi construfico foi construíída em uma aplicada em uma aplicaçção MDI ão MDI

((Multiple DocumentMultiple DocumentInterface)Interface)

-- DesenhoDesenho: : TDesenhaTDesenhae e TDesenhaLinhaTDesenhaLinha

24/3124/31

Page 25: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

25/3125/31

Page 26: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

26/3126/31

Page 27: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

27/3127/31

Page 28: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

28/3128/31

Page 29: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

29/3129/31

Page 30: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ConsideraConsideraçções finaisões finais

Foram atingidos os objetivos propostos: Foram atingidos os objetivos propostos:

-- permite efetuar a validapermite efetuar a validaçção de autômatos finitos desenhados;ão de autômatos finitos desenhados;

-- o reconhecimento de palavras direto e passo a passo.o reconhecimento de palavras direto e passo a passo.

O desenvolvimento O desenvolvimento na linguagemna linguagemJava Java serseriaia facilitado. facilitado.

Os componentes Os componentes TDesenhaTDesenhae e TDesenhaLinhaTDesenhaLinha não foram desenvolvidos nesse não foram desenvolvidos nesse

trabalho, mas o ctrabalho, mas o cóódigo fonte destes encontradigo fonte destes encontra--se disponse disponíível para as possvel para as possííveis extensões veis extensões

sugeridas.sugeridas.

30/3130/31

Page 31: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ExtensõesExtensões

-- melhorar a interface grmelhorar a interface grááfica;fica;

-- aplicar equivalência em autômatos com movimentos aplicar equivalência em autômatos com movimentos

vazios;vazios;

-- aplicar a transformaaplicar a transformaçção de um AFND em um AFD;ão de um AFND em um AFD;

-- aplicar algoritmos de minimizaaplicar algoritmos de minimizaçção em AFDs.ão em AFDs.

31/3131/31

Page 32: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

ApresentarApresentarEditor deEditor deAutômatos FinitosAutômatos Finitos

Page 33: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

FundamentaFundamentaçção Teão Teóóricarica

Page 34: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Conceito GeraisConceito Gerais

��AlfabetoAlfabeto

ÉÉ um conjunto não vazio onde os elementos são chamados de sum conjunto não vazio onde os elementos são chamados de síímbolos. mbolos.

Exemplo:Exemplo:-- Em Pascal,Em Pascal,usausa--se se programprogram,, beginbegin, end, if, , end, if, thenthen,, elseelse. .

--Para implementar esta linguagem, o alfabeto terPara implementar esta linguagem, o alfabeto teráá novos snovos síímbolos do conjunto mbolos do conjunto ASCII ( letras, dASCII ( letras, díígitos, +, *, entre outros).gitos, +, *, entre outros).

1/11/1

Page 35: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

��PalavraPalavra

Conceito GeraisConceito Gerais

Palavra, cadeia ou sentenPalavra, cadeia ou sentençça são uma seqa são uma seqüüência finita de sência finita de síímbolos mbolos justapostos.justapostos.

Palavra Palavra éé uma funuma funçção que determina uma seqão que determina uma seqüüência s de comprimento n no ência s de comprimento n no alfabeto alfabeto ∑∑∑∑∑∑∑∑..

s:[n]s:[n]→→→→→→→→ ∑∑∑∑∑∑∑∑ tem domtem domíínio [n] e contranio [n] e contra--domdomíínio nio ∑∑∑∑∑∑∑∑..

Com Com ∑∑∑∑∑∑∑∑ = {0,1}, s = 0101 e comprimento 4, tem= {0,1}, s = 0101 e comprimento 4, tem--se a funse a funçção s: [4] ão s: [4] →→→→→→→→ ∑∑∑∑∑∑∑∑, , definida por s(1) = 0, s(2) = 1, s(3) = 0, s(4) = 1.definida por s(1) = 0, s(2) = 1, s(3) = 0, s(4) = 1.

1/21/2

Page 36: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

As palavras podem ser concatenadas para formar novas palavras. As palavras podem ser concatenadas para formar novas palavras. ∑∑= {0,1, x = 0110 e y = 011, a concatena= {0,1, x = 0110 e y = 011, a concatenaçção das palavras x e y ão das palavras x e y éé representada representada porpor xxooyy e e éé igual a 0110011.igual a 0110011.

-- elemento neutro elemento neutro àà esquerda e esquerda e àà direita, ou seqdireita, ou seqüüência vazia: ência vazia: quando n = 0, que quando n = 0, que éé representado por representado por εεεεεεεε. . x x o o εεεεεεεε = = εεεεεεεε o o x = x, ou seja, para x = x, ou seja, para ∑∑∑∑∑∑∑∑={0,1} e x = 01, tem={0,1} e x = 01, tem--se que 01 se que 01 o o εεεεεεεε = = εεεεεεεε oo 01 = 01.01 = 01.

-- sucessiva sucessiva ::representada 1representada 155 = 11111= 11111

Conceito GeraisConceito Gerais

��Palavra (ConcatenaPalavra (Concatenaçção)ão)

2/22/2

Page 37: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

��LinguagensLinguagens

Conceito GeraisConceito Gerais

O conjunto de todas as seqO conjunto de todas as seqüüências que podem ser formadas com os sências que podem ser formadas com os síímbolos mbolos

de um alfabeto de um alfabeto ∑∑∑∑∑∑∑∑ éé uma linguagem, incluindo tambuma linguagem, incluindo tambéém a seqm a seqüüência vazia ência vazia εεεεεεεε. .

Exemplo de uma linguagem L emExemplo de uma linguagem L em∑∑∑∑∑∑∑∑ éé um subconjunto de um subconjunto de ∑∑∑∑∑∑∑∑*, ou seja, L *, ou seja, L ⊆⊆⊆⊆⊆⊆⊆⊆∑∑∑∑∑∑∑∑*. Assim, {0101, 0100, 01, ...} *. Assim, {0101, 0100, 01, ...} éé a linguagem em {0,1}a linguagem em {0,1}** composta por todas composta por todas

as palavras de comprimento maior ou igual a dois que iniciam comas palavras de comprimento maior ou igual a dois que iniciam com01. 01.

1/21/2

Page 38: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

As operaAs operaçções de conjuntos podem ser usadas com as linguagens. ões de conjuntos podem ser usadas com as linguagens.

Logo, se LLogo, se L11 e Le L22 são linguagens em são linguagens em ∑∑∑∑∑∑∑∑*, então:*, então:

a)a) a uniãoa união

LL11 ∪∪∪∪∪∪∪∪ LL22 e e éé igual ao conjunto {x | x igual ao conjunto {x | x ∈∈∈∈∈∈∈∈ LL11 ouou x x ∈∈∈∈∈∈∈∈ LL22}}

b)b) a intersea interseççãoão

LL11 ∩∩∩∩∩∩∩∩ LL22 e e éé igual ao conjunto {x | x igual ao conjunto {x | x ∈∈∈∈∈∈∈∈ LL11 ee x x ∈∈∈∈∈∈∈∈ LL22}}

c)c) a diferena diferenççaa

LL11 –– LL22 e e éé igual ao conjunto {x | x igual ao conjunto {x | x ∈∈∈∈∈∈∈∈ LL11 e x e x ∉∉∉∉∉∉∉∉ LL22}}

d)d) o complementoo complemento

∑∑∑∑∑∑∑∑* * -- LL11 e e éé igual ao conjunto {x | x igual ao conjunto {x | x ∈∈∈∈∈∈∈∈ ∑∑∑∑∑∑∑∑* e x * e x ∉∉∉∉∉∉∉∉ LL11}}

Conceito GeraisConceito Gerais

��LinguagensLinguagens

2/22/2

Page 39: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

��GramGramááticatica

Conceito GeraisConceito Gerais

-- éé um formalismo que permite gerar todas as palavras de uma linguaum formalismo que permite gerar todas as palavras de uma linguagemgem;;

-- éé composta por regras de producomposta por regras de produççãoão;;

Formalmente, uma gramFormalmente, uma gramáática tica éé uma quuma quáádrupla ordenada G=(V, T, P, S), onde:drupla ordenada G=(V, T, P, S), onde:

a) V a) V éé um conjunto finito de sum conjunto finito de síímbolos nãombolos não--terminais;terminais;

b) T b) T éé um conjunto finito de sum conjunto finito de síímbolos terminais disjunto de V;mbolos terminais disjunto de V;

c)c) P P éé um conjunto finito de pares (um conjunto finito de pares (αααααααα, , ββββββββ), denominados regras de produ), denominados regras de produçção, tal ão, tal

que o primeiro componenteque o primeiro componenteéé uma palavra em (V uma palavra em (V ∪∪∪∪∪∪∪∪ T)T)+ + e o segundo e o segundo

componente componente éé uma palavra em (V uma palavra em (V ∪∪∪∪∪∪∪∪ T)*;T)*;

d) S d) S éé o elemento de V denominado so elemento de V denominado síímbolo inicial.mbolo inicial.

1/31/3

Page 40: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

G= (V, T, P, S) = ({S,X}, {0,1}, {(S,01X), (X,G= (V, T, P, S) = ({S,X}, {0,1}, {(S,01X), (X,εεεεεεεε), (X,0X), (X,1X)}, S) tem), (X,0X), (X,1X)}, S) tem--se quese que::

V = {S,X} V = {S,X} éé o conjunto de nãoo conjunto de não--terminais, terminais,

T = {0,1} T = {0,1} éé o conjunto de terminais,o conjunto de terminais,

P = {SP = {S→→→→→→→→01X, X01X, X→ε→ε→ε→ε→ε→ε→ε→ε | 0X |1X} | 0X |1X} éé o conjunto de regras de produo conjunto de regras de produçção para gerar ão para gerar

as palavras de comprimento maior ou igual a dois que iniciam comas palavras de comprimento maior ou igual a dois que iniciam com01.01.

��GramGramááticatica

Conceito GeraisConceito Gerais

2/32/3

Page 41: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Conceito GeraisConceito Gerais

��GramGramááticatica

DefiniDefiniçção dos passos de derivaão dos passos de derivaçção: ão:

⇒⇒⇒⇒⇒⇒⇒⇒** fecho transitivo e reflexivo da relafecho transitivo e reflexivo da relaçção, ou seja, zero ou mais ão, ou seja, zero ou mais

passos de derivapassos de derivaçções sucessivas;ões sucessivas;⇒⇒⇒⇒⇒⇒⇒⇒++ fecho transitivo da relafecho transitivo da relaçção, isto ão, isto éé, um ou mais passos de , um ou mais passos de

derivaderivaçções sucessivas;ões sucessivas;⇒⇒⇒⇒⇒⇒⇒⇒ii exatos i passos de derivaexatos i passos de derivaçções sucessivas, onde i ões sucessivas, onde i éé um num núúmero mero

natural.natural.

Uma regra de produUma regra de produçção (ão (αααααααα, , ββββββββ) ) éé representada por representada por αααααααα →→→→→→→→ ββββββββ. Ela define . Ela define as condias condiçções de geraões de geraçção das palavras da linguagem. ão das palavras da linguagem.

3/33/3

Page 42: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

LinguagensLinguagens

Hierarquia de CHOMSKYHierarquia de CHOMSKY

1/31/3

Page 43: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

LinguagensLinguagensLinguagens regulares ou tipo 3:Linguagens regulares ou tipo 3:

Geradas pelas gramGeradas pelas gramááticas regulares ou tipo 3; ticas regulares ou tipo 3; São reconhecidas pelos autômatos finitos; São reconhecidas pelos autômatos finitos; São usados para desenvolver:São usados para desenvolver:

-- analisadores lanalisadores lééxicos, editores de texto, sistemas de pesquisa e xicos, editores de texto, sistemas de pesquisa e atualizaatualizaçção deão de arquivos, interface de sistemas operacionais, protocolos de arquivos, interface de sistemas operacionais, protocolos de comunicacomunicaçção;ão;

LLinguagensinguagenslivres de contexto ou tipo 2:livres de contexto ou tipo 2:São geradas pelas gramSão geradas pelas gramááticas livres de contexto ou tipo 2; ticas livres de contexto ou tipo 2; Reconhecidas por autômatos com pilha; Reconhecidas por autômatos com pilha; Usados para o desenvolvimento de analisadores sintUsados para o desenvolvimento de analisadores sintááticos, tradutores de ticos, tradutores de linguagens e processadores de textos em geral; linguagens e processadores de textos em geral;

2/32/3

Page 44: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

LLinguagensinguagenssenssensííveis ao contexto ou tipo 1veis ao contexto ou tipo 1

Geradas pelas gramGeradas pelas gramááticas sensticas sensííveis ao contexto ;veis ao contexto ;

São reconhecidas pela mSão reconhecidas pela mááquina dequina deTuringTuring com fita limitada;com fita limitada;

LLinguagensinguagensenumerenumerááveis recursivamente (irrestritas) ou tipo 0:veis recursivamente (irrestritas) ou tipo 0:

São reconhecidas por uma mSão reconhecidas por uma mááquina dequina deTuringTuring;;

Usa um gerador na forma de gramUsa um gerador na forma de gramáática.tica.

LinguagensLinguagens

3/33/3

Page 45: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

RepresentaRepresentaçção :ão :são usados formalismos como gramsão usados formalismos como gramáática regular, expressão regular e autômato tica regular, expressão regular e autômato finito. finito.

-- LLema do bombeamento para as linguagens regulares: ema do bombeamento para as linguagens regulares:

a) a) éé aceita por um autômato finito determinaceita por um autômato finito determiníístico, que tem um nstico, que tem um núúmero finito e mero finito e predefinido de n estados;predefinido de n estados;

b)b) se o autômato reconhece uma palavra de entrada w, de comprimentose o autômato reconhece uma palavra de entrada w, de comprimentomaior ou maior ou

igual a n, o autômato assume algum estado q por mais de uma vez,igual a n, o autômato assume algum estado q por mais de uma vez,criando um criando um

ciclo na funciclo na funçção programa que passa por q;ão programa que passa por q;

c) assim w pode se dividir em trêsc) assim w pode se dividir em trêssubpalavrassubpalavras, w =, w = uvzuvz, tal que |, tal que |uvuv| | ≤≤≤≤≤≤≤≤ n, |v| n, |v| ≥≥≥≥≥≥≥≥ 1, 1,

onde v onde v éé a parte de w que a parte de w que éé reconhecida pelo ciclo. Portanto,reconhecida pelo ciclo. Portanto,uvuviiz z para i para i ≥≥≥≥≥≥≥≥ 0,0, éé

sempre aceito pelo autômato.sempre aceito pelo autômato.

Linguagem RegularLinguagem Regular

1/11/1

Page 46: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Expressões RegularesExpressões Regulares

Uma expressão regular Uma expressão regular éé definida a partir de conjuntos (linguagens bdefinida a partir de conjuntos (linguagens báásicas) e sicas) e operaoperaçções de concatenaões de concatenaçção e união. ão e união.

UUma expressão regular (ER) no alfabeto ma expressão regular (ER) no alfabeto ∑∑∑∑∑∑∑∑ éé definida pelas seguintes regras:definida pelas seguintes regras:

a) a) ∅∅∅∅∅∅∅∅ denota a linguagem vazia;denota a linguagem vazia;b) b) εεεεεεεε denota a linguagem contendo a palavra vazia {denota a linguagem contendo a palavra vazia {εεεεεεεε};};c)c) Qualquer sQualquer síímbolo x pertencente a mbolo x pertencente a ∑∑∑∑∑∑∑∑ denota a linguagem contendo a palavra denota a linguagem contendo a palavra

unitunitáária {x};ria {x};d) Se x e y são ER então:d) Se x e y são ER então:

d.1) (x + y) denota a linguagem X d.1) (x + y) denota a linguagem X ∪∪∪∪∪∪∪∪ Y;Y;d.2) (d.2) (xyxy) denota a linguagem XY = {) denota a linguagem XY = {uvuv | u | u ∈∈∈∈∈∈∈∈ X e v X e v ∈∈∈∈∈∈∈∈ Y};Y};d.3) (x*) denota a linguagem X*.d.3) (x*) denota a linguagem X*.

1/21/2

Page 47: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

Expressões RegularesExpressões Regulares

2/22/2

Page 48: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

a)a) identificar a linha, ou a que contiver o estado inicial, da tabeidentificar a linha, ou a que contiver o estado inicial, da tabela de transila de transiçções ões do AFND e atribuir do AFND e atribuir àà tabela de transitabela de transiçções do AFD.ões do AFD.

1/31/3

Equivalência entre AFND x AFDEquivalência entre AFND x AFD

Page 49: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

b) verificar para cada estado do AFD se todas transib) verificar para cada estado do AFD se todas transiçções foram criadas. Em ões foram criadas. Em caso negativo, atribuir na primeira coluna os estados, possivelmcaso negativo, atribuir na primeira coluna os estados, possivelmente ente conjuntos, que reconhecem os sconjuntos, que reconhecem os síímbolos indicados. Repetir esse passo atmbolos indicados. Repetir esse passo atéé que que todas as transitodas as transiçções tenham sido criadas. ões tenham sido criadas.

2/32/3

Page 50: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

c) Determinar a primeira linha da tabela de transic) Determinar a primeira linha da tabela de transiçção criada como sendo o estado ão criada como sendo o estado inicial do AFD e as linhas que contiverem qf no conjunto de estainicial do AFD e as linhas que contiverem qf no conjunto de estados como sendo dos como sendo estados finais.estados finais.

3/33/3

Page 51: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

MMinimizainimizaççãoão de um de um AAutômatoutômatoFFinitoinito

O autômato finito para ser minimizado deve atender os seguintes O autômato finito para ser minimizado deve atender os seguintes prpréé--requisitos:requisitos:

a)a) deve ser determindeve ser determiníístico;stico;

b)b) não pode ter estados inacessnão pode ter estados inacessííveis, ou seja, estados que não podem ser veis, ou seja, estados que não podem ser

alcanalcanççados a partir do estado inicial;ados a partir do estado inicial;

c)c) a funa funçção programa deve ser total, isto ão programa deve ser total, isto éé, a partir de qualquer estado devem ser , a partir de qualquer estado devem ser

previstas transiprevistas transiçções para todos os sões para todos os síímbolos do alfabeto.mbolos do alfabeto.

1/21/2

Page 52: Editor de Autômatos Finitos - .:. FURB .:. DSCdsc.inf.furb.br/arquivos/tccs/apresentacoes/2002-2josianepatricia... · Introdu ção Objetivos espec íficos : - especificar autômatos

AAlgoritmolgoritmo para minimizapara minimizaçção de autômatos finitos determinão de autômatos finitos determiníísticossticos::

a)a) elimina os estados inacesselimina os estados inacessííveis e suas correspondentes transiveis e suas correspondentes transiçções;ões;

b) altera a funb) altera a funçção programa em total, introduzindo um estado não final ão programa em total, introduzindo um estado não final ΦΦΦΦΦΦΦΦ e e

incluindo incluindo ΦΦΦΦΦΦΦΦ como estado destino das transicomo estado destino das transiçções não previstas; ões não previstas;

c)c) unifica os estados equivalentes, sendo que dois estados são ditounifica os estados equivalentes, sendo que dois estados são ditos equivalentes s equivalentes

se e somente se para qualquer seqse e somente se para qualquer seqüüência de sência de síímbolos resultam mbolos resultam

simultaneamente em estados finais ou estados nãosimultaneamente em estados finais ou estados não--finais tambfinais tambéém m

equivalentes entre si;equivalentes entre si;

d)d) elimina os estados mortos.elimina os estados mortos.

MMinimizainimizaççãoão de um de um AAutômatoutômatoFFinitoinito

2/22/2