INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

Documentos relacionados
Linguagens Regulares. Prof. Daniel Oliveira

Linguagens Formais e Autômatos. Linguagens Regulares Prof. Anderson Belgamo

Análise Léxica. Fundamentos Teóricos. Autômatos Finitos e Conjuntos Regulares (cap. III da apostila de Linguagens Formais e Compiladores)

COMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang

INE5317 Linguagens Formais e Compiladores AULA 6: Propriedades das Linguagens Regulares

INE5317 Linguagens Formais e Compiladores AULA 3: Introdução a Teoria da Computação

LINGUAGENS FORMAIS Modelos Determinísticos e Não Determinísticos. Usam-se modelos matemáticos para representar eventos (fenômenos) do mundo real.

INE5317 Linguagens Formais e Compiladores AULA 6: Autômatos Finitos Com S aída

Expressões Regulares e Gramáticas Regulares

INE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

Máquina de Turing Linguagens Sensíveis ao Contexto e Enumeráveis Recursivamente

LFA Aula 05. AFND: com e sem movimentos 05/12/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Linguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática

Autômatos finitos não-determinísticos

LINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam

Linguagens Formais e Autômatos 02/2016. LFA Aula 04 16/11/2016. Celso Olivete Júnior.

SCC 205 Teoria da Computação e Linguagens Formais

Linguagens Formais e Autômatos. Autômatos Finitos Determinísticos (AFD)

Compiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador

Linguagens Formais e Autômatos P. Blauth Menezes

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação

Editor de Autômatos Finitos. Acadêmica: Josiane Patrícia Morastoni Orientadora: Joyce Martins

Linguagens Formais e Autômatos P. Blauth Menezes

Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação

a n Sistemas de Estados Finitos AF Determinísticos

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Compiladores. Prof. Bruno Moreno Aula 8 02/05/2011

Autómatos Finitos Determinísticos (AFD)

Teoria da Computação

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Lista de exercícios 1

Linguagens Formais e Autômatos. Conceitos Básicos Prof. Anderson Belgamo

INE5317 Linguagens Formais e Compiladores. Ricardo Azambuja Silveira INE-CTC-UFSC URL:

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Autômatos Finitos Não Determinís5cos (AFN)

Linguagens Formais e Autômatos

Linguagens Livres de Contexto

Apostila 02. Objetivos: Estudar os autômatos finitos Estudar as expressões regulares Estudar as gramáticas regulares Estudar as linguagens regulares

Licenciatura em Engenharia Informática DEI/ISEP Linguagens de Programação 2006/07

Aula 7: Autômatos com Pilha

Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios

Linguagens livres de contexto e autômatos de pilha

EXPRESSÃO REGULAR PARA UMA FUNÇÃO EQUIVALENTE EM PASCAL, UTILIZANDO DOIS ALGORITMOS BASEADOS NO TEOREMA DE KLEENE RONALD GLATZ

Linguagens e Programação Automátos Finitos. Paulo Proença

Teoria da Computação. Máquinas Universais Máquina de Turing

INCLUSÃO DO ALGORITMO DE TRANSFORMAÇÃO DE UM AUTÔMATO FINITO EM EXPRESSÃO REGULAR NO AMBIENTE EDITOR DE AUTÔMATOS FINITOS

Concurso Público para provimento de cargo efetivo de Docentes. Edital 20/2015 CIÊNCIA DA COMPUTAÇÃO II Campus Rio Pomba

LFA Aula 07. Equivalência entre AFD e AFND. Equivalência entre ER s e AF s Equivalência entre GR s e AF s. Linguagens Formais e Autômatos

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

Draft-v0.1. Máquinas de Turing Máquinas de Turing

BCC242. Auômato Finito Determinístico

Introdução Definição Conceitos Básicos de Linguagem

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 4. Autômatos Finitos

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

Sistemas de Estados Finitos AF Determinísticos. (H&U, 1979) e (H;M;U, 2001)

Como construir um compilador utilizando ferramentas Java

Expressões e Gramáticas Regulares e Autómatos Finitos

Aula 3: Autômatos Finitos

Gramáticas Livres de Contexto Parte 1

Linguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.

Universidade Federal de Alfenas

Linguagens Livres de Contexto

IV Gramáticas Livres de Contexto

INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto

Teoria de Linguagens 2 o semestre de 2017 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 19/9/2017 Valor: 10 pontos

Teoria da Computação. Expressões Regulares e Autômatos Finitos. Thiago Alves

Aula 3: Autômatos Finitos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 5. Aplicação Prática de Autômatos Finitos

Expressões Regulares. Linguagens Formais e Autômatos. Andrei Rimsa Álvares

Fundamentos da Teoria da Computação

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

Teoria de Linguagens 1 o semestre de 2018 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 17/4/2018 Valor: 10 pontos

UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo

I.2 Introdução a Teoria da Computação

Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Teoria da Computação. Capítulo 1. Máquina de Turing. Prof. Wanderley de Souza Alencar, MSc.

Máquinas Universais. Máquina de Turing. Celso Olivete Júnior.

Capítulo 8: O problema da parada. Decidibilidade e computabilidade. José Lucas Rangel Introdução.

Máquinas de Turing - Computabilidade

a n Sistemas de Estados Finitos AF Determinísticos

Linguagens Formais e Autômatos 02/2016. LFA Aula 01 24/10/2016. Celso Olivete Júnior.

Folha 2 Autómatos e respectivas linguagens

Linguagens Formais e Autômatos (LFA)

Aula 9: Máquinas de Turing

Procedimentos e Algorítmos Programas e Linguagens de Programação Tese de Church-Turing Formas de Representação de Linguagens

Linguaguens recursivamente enumeráveis e recursivas

Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)

Teoria da Computação. Máquinas Universais Máquina com Pilhas

A. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)

Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.

Teoria da Computação

Linguagens recursivamente enumeráveis

Propriedades de Fecho de Linguagens Regulares.

Transcrição:

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira

As Linguagens e os formalismos representacionais Os tipos de formalismos utilizados: Denotacional: as linguagens são representadas por meio de uma função que caracteriza o conjunto de palavras admissíveis na linguagem EXPRESSÕES REGULARES Axiomático: as linguagens são representadas através de regras que constituem uma Gramática que permite derivar todo o conjunto de sentenças GRAMÁTICAS Operacional: as linguagens são representadas por máquinas abstratas ou autômatos, baseados em estados, em instruções primitivas e em como cada símbolo modifica cada estado AUTÔMATOS 06/09/06 Ricardo Silveira 2

Sistemas de Estados Finitos Um Sistema de Estados Finitos é um modelo matemático de sistemas com entradas e saídas discretas que pode assumir um número finito e pré-definido de estados Cada estado resume somente as informações do passado necessárias para determinar as ações para a próxima entrada 06/09/06 Ricardo Silveira 3

Tipos de autômatos Autômato finito Autômato com pilha Máquina de Turing com fita finita Máquina de Turing 06/09/06 Ricardo Silveira 4

LINGUAGENS REGULARES E AUTÔMATOS FINITOS Constituem um conjunto de linguagens decidíveis bastante simples e com propriedades bem definidas e compreendidas. Podem ser reconhecidas por Autômatos Finitos e são facilmente descritas por expressões simples, chamadas Expressões Regulares. Podem ser abordadas através de fomalismos: Operacional ou reconhecedor: Autômato Finito (Determinístico e Não-determinístico e Vazio). Axiomático ou gerador: Gramática Regular Denotacional: Expressão Regular 06/09/06 Ricardo Silveira 5 18

Autômato Finito Um Autômato Finito é um reconhecedor de L.R. Entende-se por reconhecedor de uma linguagem L um dispositivo que tomando uma seqüência w como entrada, responde sim se w L e não caso contrário. Os Autômatos Finitos classificam-se em: Autômatos Finitos Determinísticos (AFD) Autômatos Finitos Não-Determinísticos (AFND) Autômatos Finitos com Movimentos Vazios (AFε) 06/09/06 Ricardo Silveira 6 20

Autômato Finito Determinístico Um autômato finito determinístico é uma máquina abstata composta por: Fita Dispositivo de entrada que contém a informação a ser processada Unidade de controle Reflete o estado corrente da máquina. Possui uma leitora que lê uma célula de cada vez e movimenta-se para a direita Programa ou Função de Transição Comanda as leituras e define o estado da máquina 06/09/06 Ricardo Silveira 7

Autômato Finito Determinístico Um autômato finito determinístico (AFD)é uma 5- upla: M= (Q, Σ, δ, q 0,F) Q é um conjunto de estados possíveis do autômato, o qual é finito; Σ é um alfabeto de símbolos de entrada; δ (delta) é um programa ou função de transição: δ:q Σ Q q 0 é o estado inicial, tal que q 0 é elemento de Q F é o conjunto de estados a a b c c b a a Control 06/09/06 Ricardo Silveira 8

Função de transição δ(q; a) = p para q, p K e a Σ, significando que, estando no estado q e lendo o síımbolo a na fita de entrada, o autômato muda para o estado p e avança o cabeçote uma posição. 06/09/06 Ricardo Silveira 9

Represertação de autômato como grafo M= (Σ, Q, δ, q0,f) alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito; δ programa ou função de transição: δ: Q x Q q 0 estado inicial, tal que q 0 é elemento de Q (indicado por uma seta) F conjunto de estados finais, tal que F está contido em Q; p a q estado anterior símbolo lido novo estado 06/09/06 Ricardo Silveira 10 21

Exemplo M = ({q0, q1, q2}, {a; b}, δ, q0, {q2}), δ(q0; a) = q1, δ(q1; a) = q1, δ(q1; b) = q2. Logo, T(M) = {a n b n 1 }. 06/09/06 Ricardo Silveira 11

Tabela de transição de estados Uma terceira forma de representar um AF: Tabela indicando na vertical os estados, e na horizontal os síımbolos do alfabeto. No cruzamento estão as transições possíveis; O estado inicial é indicado por uma seta, e os estados finais por asteriscos. δ a b q0 q1 - q1 q1 q2 *q2 - - 06/09/06 Ricardo Silveira 12

a q0 Exemplo de AFD Considere a linguagem:l1={w w possui aa ou bb como subpalavra} b δ 1 é representada na tabela AF: M1=({a,b},{q0,q1,q2,qf}, δ 1, q0, {qf}) δ a b q1 a b qf a q2 b q0 q1 q2 q1 qf q2 q2 q1 qf qf qf qf a,b 06/09/06 Ricardo Silveira 13

Exemplo de AFD Considere a linguagemconstituída por sentenças em {0; 1}* as quais não contém dois ou mais 1 s consecutivos AF: M1=({0,1},{q0,q1}, δ, q0, {q0,q1}) 0 q0 δ(q0; 0) = q0, δ(q0; 1) = q1, δ(q1; 0) = q0. 1 0 q1 δ 0 1 *q0 q0 q1 *q1 q0 - δ 1 é representada na tabela 06/09/06 Ricardo Silveira 14

Autômato Finito Não-Determinístico M= (Σ, Q, δ, q0,f) alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito; δ programa ou função de transição: δ: Q x 2 Q q 0 estado inicial, tal que q 0 é elemento de Q F conjunto de estados finais, tal que F está contido em Q; p estado anterior a a a símbolo lido p1 p2 pn Conjunto de novos estados 06/09/06 Ricardo Silveira 15

a q0 Exemplo de AFND Considere a linguagem:l1={w w possui aa ou bb como subpalavra} AF: M1=({a,b},{q0,q1,q2,qf}, δ 2, q0, {qf}) a,b b δ 1 é representada na tabela δ a b q1 a qf q2 b q0 {q0,q1} {q0, q2} q1 {qf} - q2 - {qf} qf {qf} {qf} a,b 06/09/06 Ricardo Silveira 16

Exemplo de AFND 06/09/06 Ricardo Silveira 17

Equivalência entre AFD e AFND A partir de um AFND é possível construir um AFD 06/09/06 Ricardo Silveira 18

Determinismo X Não-determinismo Muitas vezes é mais fácil desenvolver um AFN do que um AFD exemplo { w o quinto símbolo da direita para a esquerda de w é a } solução determinista: não é trivial; número grande de estados solução não-determinista: bem simples, poucos estados Alternativa para construir um AFD desenvolver inicialmente AFN 06/09/06 Ricardo Silveira 19

Exemplo M6 = ({ a, b }, { q0, q1, q2, qf }, δ6, q0, { qf }) 06/09/06 Ricardo Silveira 20

Exemplo Tabela de transição de estados do AFD 06/09/06 Ricardo Silveira 21

Exemplo Grafo do AFD resultante do AFN 06/09/06 Ricardo Silveira 22

Exemplo Dado o AFND M = ({q0, q1}, {0, 1}, δ, q0, {q1}) e δ(q0, 0) = {q0, q1} δ(q0; 1) = {q1} δ(q0; 1) = φ; δ(q1; 1) = {q0, q1} Construir o AFD M0 equivalente. 06/09/06 Ricardo Silveira 23

Exemplo Tabela do AFND Tabela do AFD 06/09/06 Ricardo Silveira 24

Autômato Finito com Movimentos Vazios AFε M= (Σ, Q, δ, q0,f) alfabeto de símbolos de entrada; Q conjunto de estados possíveis do autômato, o qual é finito; δ programa ou função de transição: δ: Q x ( U {ε}) 2 Q q 0 estado inicial, tal que q 0 é elemento de Q F conjunto de estados finais, tal que F está contido em Q; p estado anterior ε a a símbolo lido p1 p2 pn Conjunto de novos estados 06/09/06 Ricardo Silveira 25

Diagrama de um AFε 06/09/06 Ricardo Silveira 26

Exemplo 06/09/06 Ricardo Silveira 27

Exemplo Um AFε que aceita numeros decimais compostos por um sinal opcional (+ ou -) e digitos separados por um ponto decimal 0,1,..., 9 0,1,..., 9 ε,+,-. 0,1,..., 9 q 0 q 1 q 2 q 3 q 5 0,1,..., 9. q 4 06/09/06 Ricardo Silveira 28

Computação vazia 06/09/06 Ricardo Silveira 29

Exemplo 06/09/06 Ricardo Silveira 30

Computaçao nos AFε 06/09/06 Ricardo Silveira 31

Computaçao nos AFε Função Programa Estendida (computação) M= (Σ, Q, δ, q0,f) 06/09/06 Ricardo Silveira 32

Exemplo 06/09/06 Ricardo Silveira 33

Exemplo 06/09/06 Ricardo Silveira 34

Equivalência entre AFN e AFε construção de uma função programa sem movimentos vazios conjunto de estados destino de cada transição nãovazia ampliado com os demais estados possíveis de serem atingidos exclusivamente por transições vazias 06/09/06 Ricardo Silveira 35

Equivalência entre AFN e AFε 06/09/06 Ricardo Silveira 36

Expressões Regulares X Linguagens Regulares Se r é uma expressão regular ela foi gerada por uma LR; Uma linguagem é regular, se e somente se, é possível construir um AF (AFD, AFND, AFε ) que reconheça a linguagem. Portanto, para determinar que uma expressão é regular deve-se construir um AF a partir dela. 06/09/06 Ricardo Silveira 37 30

Expressões Regulares X Linguagens Regulares 06/09/06 Ricardo Silveira 38 30

Expressões Regulares X Linguagens Regulares 06/09/06 Ricardo Silveira 39 30

Expressões Regulares X Linguagens Regulares 06/09/06 Ricardo Silveira 40 30

Expressões Regulares X Linguagens Regulares 06/09/06 Ricardo Silveira 41 30

Expressões Regulares X Linguagens Regulares 06/09/06 Ricardo Silveira 42 30

Exemplo 06/09/06 Ricardo Silveira 43

Exemplo 06/09/06 Ricardo Silveira 44

Exemplo 06/09/06 Ricardo Silveira 45

Gramática Regular Linguagem Regular 06/09/06 Ricardo Silveira 46

Gramática Regular Linguagem Regular 06/09/06 Ricardo Silveira 47

Construção de um AFε a partir de uma GR 06/09/06 Ricardo Silveira 48

Construção de um AFε a partir de uma GR 06/09/06 Ricardo Silveira 49

Linguagem Regular GramáticaRegular 06/09/06 Ricardo Silveira 50

Linguagem Regular GramáticaRegular 06/09/06 Ricardo Silveira 51

Construção de uma GR a partir de um AFε 06/09/06 Ricardo Silveira 52

Construção de uma GR a partir de um AFε 06/09/06 Ricardo Silveira 53