formal languages and automata

8
Linguagens Formais e Autômatos Michel Alves dos Santos * Outubro de 2010 * Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: mi- [email protected], [email protected]. Disciplina: Linguagens Formais e Autômatos. Docente Responsável: Eliana Almeida. 1

Upload: michel-alves

Post on 07-Jul-2015

280 views

Category:

Education


1 download

DESCRIPTION

List of exercises - formal languages and automata discipline - UFAL (Federal University of Alagoas - Maceió - Brazil)

TRANSCRIPT

Page 1: Formal Languages and Automata

Linguagens Formais e Autômatos

Michel Alves dos Santos ∗

Outubro de 2010

∗Bacharelando em Ciência da Computação, Universidade Federal do Estado de Alagoas(UFAL). E-mails: [email protected], [email protected]. Disciplina: Linguagens Formais e Autômatos. DocenteResponsável: Eliana Almeida.

1

Page 2: Formal Languages and Automata

SumárioLista de Figuras 2

Lista de Tabelas 2

1 Construa o AFD MÍNIMO que reconheça a linguagem denotada por (utilize oalgoritmo para obter o AFD MÍNIMO, se for o caso!): 2

2 Descreva sobre a Máquina de MEALY e a Máquina de MOORE, apresente umexemplo explicando o seu funcionamento. 5

Referências Bibliográficas 8

Lista de Figuras1 Autômato Finito Determinístico que aceita a linguagem La denotada por (aa +

bb)*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Autômato Finito Determinístico Mínimo que aceita a linguagem La denotada por

(aa + bb)*. Levando em consideração que a palavra vazia λ leva sempre ao estadoinicial que consequentemente é o final. . . . . . . . . . . . . . . . . . . . . . . . . 4

3 Autômato Finito Não-Determinístico que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

4 Autômato Finito Determinístico Mc que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

5 Autômato Finito Determinístico Mc que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*. Note que os antigos estados agregados foram mapeados para novosrótulos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Lista de Tabelas1 Tabela de transição do autômato Ma. . . . . . . . . . . . . . . . . . . . . . . . . . 32 Tabela de transição do autômato Mb. . . . . . . . . . . . . . . . . . . . . . . . . . 33 Tabela de transição do autômato Mc. . . . . . . . . . . . . . . . . . . . . . . . . . 54 Tabela de mapeamento de estados do autômato Mc. . . . . . . . . . . . . . . . . . 5

1 Construa o AFD MÍNIMO que reconheça a linguagem de-notada por (utilize o algoritmo para obter o AFD MÍ-NIMO, se for o caso!):• a. (aa + bb)*

A linguagem denotada pela expressão regular dada acima aceita as seguintes palavras: La ={λ, aa, bb, aaaa, bbbb, aaaaaa, bbbbbb, ...}. Um Autômato Finito Determinístico que reconhecea linguagem La pode ser dado pela figura 1. A descrição do autômato Ma que reconhece alinguagem La é dada por:

Ma = ({a, b}, {q0, q1, q2}, δ, q0, {q0})

2

Page 3: Formal Languages and Automata

Figura 1: Autômato Finito Determinístico que aceita a linguagem La denotada por (aa + bb)*.

δ λ a bq0 q0 q1 q2q1 - q0 -q2 - - q1

Tabela 1: Tabela de transição do autômato Ma.

A lista de transição de estados do autômato Ma é exibida através da tabela 1. Porémpodemos observar que o autômato descrito anteriormente ainda é passível de minimização.Isso pode ser observado através da figura 2.

• b. (a + bb)*(aa + b)*A linguagem denotada pela expressão regular dada acima aceita as seguintes palavras:Lb = {λ, a, b, bb, aa, ab, aaa, abb, bbaa, bbb, aaaa, aaaaaa, bbbbbb, abbbb, ...}. Um Autômato Fi-nito Não-Determinístico que reconhece a linguagem Lb pode ser dado em primeira instânciapela figura 3. A descrição do autômato Mb que reconhece a linguagem Lb é dada por:

Mb = ({a, b}, {q0, q1, q2}, δ, q0, {q0})

As transições de estado do autômato Mb são exibidas através da tabela 1. Porém até

δ λ a bq0 q0 q0,q2 q0,q1q1 - - q0q2 - q0 -

Tabela 2: Tabela de transição do autômato Mb.

o presente momento só dispomos de um autômato finito não-determinístico, dessa maneiradevemos transformar o autômatoMb em um autômatoMc finito e determinístico. Usando osdevidos mecanismos de transformação de autômatos não-determinísticos em determinísticosteremos o autômato representado pela figura 4. As transições mapeadas do autômato Mb

para o autômato Mc são dadas pela tabela 3. Nesse momento faz-se necessário um novo

3

Page 4: Formal Languages and Automata

Figura 2: Autômato Finito Determinístico Mínimo que aceita a linguagem La denotada por (aa+ bb)*. Levando em consideração que a palavra vazia λ leva sempre ao estado inicial que conse-quentemente é o final.

Figura 3: Autômato Finito Não-Determinístico que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*.

4

Page 5: Formal Languages and Automata

Figura 4: Autômato Finito Determinístico Mc que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*.

δ a bq0 q0q2 q0q1q0q1 q0q2 q0q1q0q2 q0q2 q0q1

Tabela 3: Tabela de transição do autômato Mc.

mapeamento de rótulos dos estados do autômato Mc gerado a partir da transformação doautômato Mb em um autômato finito determinístico. O mapeamento utilizado poderá servisualizado através da tabela 4 e da figura 5.

Antigo Estado Novo Estadoq0 p0q0q1 p1q0q2 p2

Tabela 4: Tabela de mapeamento de estados do autômato Mc.

2 Descreva sobre a Máquina de MEALY e a Máquina deMOORE, apresente um exemplo explicando o seu funcio-namento.

A Máquina de MEALY é um autômato finito determinístico modificado de forma a gerar umapalavra de saída (a qual pode ser vazia) para cada transição da máquina. Uma Máquina deMEALY M é representada por uma 6-upla:

M = (Σ, Q, δ, q0, F,∆)

Na qual:

a) Σ é um alfabeto de símbolos de entrada;

5

Page 6: Formal Languages and Automata

Figura 5: Autômato Finito Determinístico Mc que aceita a linguagem Lb denotada por (a +bb)*(aa + b)*. Note que os antigos estados agregados foram mapeados para novos rótulos.

b) Q é um conjunto de estados possíveis do autômato;

c) δ é uma função de transição;

d) q0 é um elemento distinto de Q, chamado de estado inicial;

e) F é um subconjunto de Q, chamado de conjunto de estados finais;

f) ∆ é um alfabeto de símbolos de saída;

Uma aplicação comum e frequentemente recomendada para os autômatos com saída é o projeto dediálogo entre um programa de computador e seu usuário, gerando, eventualmente, ações internasao sistema. Basicamente um diálogo pode ser de dois tipos:

• Comandado pelo programa;

• Comandado pelo usuário.

Em qualquer caso, uma das principais dificuldades do projetista é a visualização do conjunto deeventos e ações que definam um diálogo adequado para as diversas situações possíveis. Um outroexemplo de uso da Máquina de MEALY seria na definição de máquinas de cifras. As máquinas deMealy oferecem um modelo matemático rudimentar para construir tais máquinas. Considerandocomo alfabeto de entrada e de saída o alfabeto latino, por exemplo, então a máquina de Mealypode ser desenhada de forma que dada uma série de letras (uma sequência de entrada de dados),ela pode processá-la numa série cifrada (uma sequência de saída de dados). No entanto, apesarde ser possível descrever a Enigma(nome pela qual é conhecida a máquina electro-mecânica decriptografia com rotores, utilizada tanto para criptografar como para descriptografar mensagenssecretas, usada em várias formas na Europa a partir dos anos 1920) através de uma máquina deMealy, o diagrama de estados seria por demais complexo para se considerar um método cômodopara desenhar máquinas de cifra.

A Máquina de MOORE possui uma segunda função, que gera uma palavra de saída (a qualpode ser vazia) para cada estado da máquina. Uma Máquina de MOORE M é um autômato finitodeterminístico com saídas associadas aos estados. É representada por uma 7-upla:

6

Page 7: Formal Languages and Automata

M = (Σ, Q, δ, q0, F,∆, δS)

Na qual:

a) Σ é um alfabeto de símbolos de entrada;

b) Q é um conjunto de estados possíveis do autômato;

c) δ é uma função de transição δ : QxΣ→ Q a qual é uma função parcial;

d) q0 é um elemento distinto de Q, chamado de estado inicial;

e) F é um subconjunto de Q, chamado de conjunto de estados finais;

f) ∆ é um alfabeto de símbolos de saída;

g) δS é uma função de saída δS : Q→ ∆∗ que é uma função total;

Um exemplo comum de aplicação do conceito de Máquina de MOORE é o desenvolvimento deAnalisadores Léxicos de compiladores ou tradutores de linguagens em geral. Basicamente um ana-lisador léxico é um autômato finito (em geral, determinístico) que identifica os componentes básicosda linguagem como, por exemplo, números, identificadores, separadores, etc. Uma Máquina deMOORE como um Analisador Léxico é como segue:

• Um estado final é associado a cada unidade léxica;

• Cada estado final possui uma saída (definida pela função de saída) que descreve ou codificaa unidade léxica identificada;

• Para os demais estados (não finais) em geral, a saída gerada é a palavra vazia. Eventual-mente pode ser não vazia, se alguma informação adicional à codificação da unidade léxica énecessária.

7

Page 8: Formal Languages and Automata

ReferênciasHopcroft, J. E. (2003), Introdução à Teoria de Autômatos, Linguagens e Computação, 2 ed.,Elsevier.

Menezes, P. B. (2008), Linguagens Formais e Autômatos., 5 ed., Bookman Editora, Porto Alegre.

8