Editor de Autômatos Finitos - .:. FURB .:....

52
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

Transcript of Editor de Autômatos Finitos - .:. FURB .:....

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

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

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.

Autômatos FinitosAutômatos Finitos

4/314/31

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

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

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

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

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

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

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

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.

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::

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

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

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

-- 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).).

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

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

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

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

21/3121/31

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

22/3122/31

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

23/3123/31

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

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

25/3125/31

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

26/3126/31

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

27/3127/31

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

28/3128/31

Operacionalidade do Editor de AFOperacionalidade do Editor de AF

29/3129/31

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

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

ApresentarApresentarEditor deEditor deAutômatos FinitosAutômatos Finitos

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

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

��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

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

��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

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

��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

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

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

LinguagensLinguagens

Hierarquia de CHOMSKYHierarquia de CHOMSKY

1/31/3

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

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

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

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

Expressões RegularesExpressões Regulares

2/22/2

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

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

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

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

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