• Save
Formal Languages ​​and Automata
Upcoming SlideShare
Loading in...5
×
 

Formal Languages ​​and Automata

on

  • 529 views

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

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

Statistics

Views

Total Views
529
Views on SlideShare
525
Embed Views
4

Actions

Likes
0
Downloads
0
Comments
0

1 Embed 4

https://twitter.com 4

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Formal Languages ​​and Automata Formal Languages ​​and Automata Document Transcript

  • 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- chel.mas@gmail.com, michelalavessantos@hotmail.com. Disciplina: Linguagens Formais e Autômatos. Docente Responsável: Eliana Almeida. 1
  • Sumário Lista de Figuras 2 Lista de Tabelas 2 1 Construa o AFD MÍNIMO que reconheça a linguagem denotada por (utilize o algoritmo 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 um exemplo explicando o seu funcionamento. 5 Referências Bibliográficas 8 Lista de Figuras 1 Autômato Finito Determinístico que aceita a linguagem La denotada por (aa + bb)*. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 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 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 novos rótulos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Lista de Tabelas 1 Tabela de transição do autômato Ma. . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Tabela de transição do autômato Mb. . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 Tabela de transição do autômato Mc. . . . . . . . . . . . . . . . . . . . . . . . . . 5 4 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 reconhece a linguagem La pode ser dado pela figura 1. A descrição do autômato Ma que reconhece a linguagem La é dada por: Ma = ({a, b}, {q0, q1, q2}, δ, q0, {q0}) 2
  • Figura 1: Autômato Finito Determinístico que aceita a linguagem La denotada por (aa + bb)*. δ λ a b q0 q0 q1 q2 q1 - 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ém podemos 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ância pela 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 b q0 q0 q0,q2 q0,q1 q1 - - q0 q2 - 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 maneira devemos transformar o autômato Mb em um autômato Mc finito e determinístico. Usando os devidos mecanismos de transformação de autômatos não-determinísticos em determinísticos teremos 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
  • 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
  • Figura 4: Autômato Finito Determinístico Mc que aceita a linguagem Lb denotada por (a + bb)*(aa + b)*. δ a b q0 q0q2 q0q1 q0q1 q0q2 q0q1 q0q2 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 do autômato Mb em um autômato finito determinístico. O mapeamento utilizado poderá ser visualizado através da tabela 4 e da figura 5. Antigo Estado Novo Estado q0 p0 q0q1 p1 q0q2 p2 Tabela 4: Tabela de mapeamento de estados do autômato Mc. 2 Descreva sobre a Máquina de MEALY e a Máquina de MOORE, apresente um exemplo explicando o seu funcio- namento. A Máquina de MEALY é um autômato finito determinístico modificado de forma a gerar uma palavra de saída (a qual pode ser vazia) para cada transição da máquina. Uma Máquina de MEALY M é representada por uma 6-upla: M = (Σ, Q, δ, q0, F, ∆) Na qual: a) Σ é um alfabeto de símbolos de entrada; 5
  • 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 de diálogo entre um programa de computador e seu usuário, gerando, eventualmente, ações internas ao 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 de eventos e ações que definam um diálogo adequado para as diversas situações possíveis. Um outro exemplo de uso da Máquina de MEALY seria na definição de máquinas de cifras. As máquinas de Mealy oferecem um modelo matemático rudimentar para construir tais máquinas. Considerando como alfabeto de entrada e de saída o alfabeto latino, por exemplo, então a máquina de Mealy pode 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, apesar de ser possível descrever a Enigma(nome pela qual é conhecida a máquina electro-mecânica de criptografia com rotores, utilizada tanto para criptografar como para descriptografar mensagens secretas, usada em várias formas na Europa a partir dos anos 1920) através de uma máquina de Mealy, o diagrama de estados seria por demais complexo para se considerar um método cômodo para desenhar máquinas de cifra. A Máquina de MOORE possui uma segunda função, que gera uma palavra de saída (a qual pode ser vazia) para cada estado da máquina. Uma Máquina de MOORE M é um autômato finito determinístico com saídas associadas aos estados. É representada por uma 7-upla: 6
  • 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 de Analisadores 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ásicos da linguagem como, por exemplo, números, identificadores, separadores, etc. Uma Máquina de MOORE 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 codifica a 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
  • Referências Hopcroft, 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