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

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

Linguagens Regulares. Prof. Daniel Oliveira

Universidade Federal de Alfenas

Teoria da Computação. Aula 01

LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Hierarquia de Chomsky e sua relação com os autômatos

Linguagens de Programação Aula 3

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

Compiladores Aula 4. Celso Olivete Júnior.

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

SCC Teoria da Computação e Linguagens Formais

Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais

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

Gramáticas Livres de Contexto

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

Linguagens Formais e Autômatos (LFA)

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

Apostila 01 Fundamentação da Teoria da Computação e Linguagens Formais

Introdução à Programação

LFA Aula 08. Minimização de AFD Autômatos Finitos com saídas 25/01/2017. Linguagens Formais e Autômatos. Celso Olivete Júnior.

Expressões Regulares e Gramáticas Regulares

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

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

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

LINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos

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

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

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

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

Gramáticas Livres de Contexto Parte 1

Linguagens Livres de Contexto

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

Prof. Adriano Maranhão COMPILADORES

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

Conceitos Básicos. Vocabulário Cadeias Linguagens Expressões Regulares Problema X Linguagem

Linguagens Formais e Autômatos

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1

Gramática. Gramática. Gramática

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

IV Gramáticas Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

Alfabeto, Cadeias, Operações e Linguagens

Máquinas de Turing - Computabilidade

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

Revisão: linguagens de programação

Compiladores - Análise Léxica

Construção de Compiladores Aula 16 - Análise Sintática

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagens Livres do Contexto. Adaptado de H. Brandão

Compiladores. Análise Léxica

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

Teoria da Computação Aula 02 Introdução

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

TRANSFORMAÇÃO DE GRAMÁTICAS LIVRES DO CONTEXTO PARA EXPRESSÕES REGULARES ESTENDIDAS

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

Matemática Discreta para Ciência da Computação

Linguagens Livres de Contexto

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Histórico e motivação

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

IBM1088 Linguagens Formais e Teoria da Computação

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

Linguagens Formais e Autômatos. Apresentação do Plano de Ensino

MINISTÉRIO DA EDUCAÇÃO UNIVERSIDADE FEDERALRURAL DO RIO DE JANEIRO Instituto Multidisciplinar Departamento de Ciência da Computação

Linguagens Formais e Autômatos (LFA)

Universidade Estadual da Paraíba - UEPB Curso de Licenciatura em Computação

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

Compiladores. Introdução

Python e sua sintaxe LNCC UFRJ

ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO

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

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

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

Linguagens Livres de Contexto

Construção de Compiladores

Especificações Gerais do Compilador e Definição de FRANKIE

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

LFA. Aula 04. Sintaxe e Semântica. Conceitos Básicos Alfabeto Palavra Linguagem

Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)

Linguagens de Programação Aula 4

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

Introdução as Máquinas de Autômatos

SCC 205 Teoria da Computação e Linguagens Formais

Prof. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018

IBM1088 Linguagens Formais e Teoria da

Introdução à Ciência da Computação

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

Como construir um compilador utilizando ferramentas Java

Mecanismos de Interrupção e de Exceção, Barramento, Redes e Sistemas Distribuídos. Sistemas Operacionais, Sistemas

Linguagens e Programação Gramáticas. Paulo Proença

Transcrição:

LFA Aula 01 Apresentação 24/10/2016 Celso Olivete Júnior olivete@fct.unesp.br 1

Professor Celso Olivete Júnior Bacharelado em Ciência da Computação (Unoeste-2002) Mestrado e Doutorado em Engenharia Elétrica Área: Visão Computacional (USP-SC-2005/2009) Áreas de interesse e atuação: Visão Computacional Processamento de Imagens Médicas Desenvolvimento para Web e Dispositivos Móveis Compiladores Celso Olivete Júnior 2

Site do Curso www.fct.unesp.br/docentes/dmec/olivete/lfa slides, exercícios, notas e demais materiais estarão disponíveis no site Envio de trabalhos e dúvidas através do email olivete@fct.unesp.br Celso Olivete Júnior 3

Celso Olivete Júnior 4

A disciplina LFA Linguagens formais e autômatos é uma disciplina fundamental dos cursos superiores da área de computação, especialmente daqueles que apresentam ênfase na formação científica do aluno, como é o caso dos cursos de bacharelado em Ciência da Computação e de vários cursos de Engenharia de Computação. Ela faz parte do núcleo denominado Fundamentos da Computação (conforme o currículo de referência da Sociedade Brasileira de Computação - www.sbc.org.br ); Celso Olivete Júnior 5

A disciplina LFA Áreas de Aplicação relacionadas com o aprendizado adquirido nesta disciplina: Inteligência Artificial Gramáticas Autômatos Finitos (Linguagens Regulares) Compiladores e Interpretadores Linguagens Livres de Contexto Linguagens Sensíveis ao Contexto... Celso Olivete Júnior 6

A disciplina LFA utilização na disciplina de Compiladores Celso Olivete Júnior 7

Programa 1. Introdução e fundamentos matemáticos (conjuntos, funções e relações, cadeias e linguagens 2. Linguagens regulares: expressões regulares, autômatos finitos, gramáticas regulares, 3. Propriedades das linguagens regulares 4. Autômato finito com saída: Máquinas de Moore e Mealy 5. Linguagens livre de contexto: BNF e EBNF e autômato com pilha 6. Propriedades das linguagens livre de contexto Celso Olivete Júnior 8

Objetivo da disciplina LFA Fornecer meios para um correto entendimento e aplicação dos conceitos de procedimento efetivo, computabilidade e solucionabilidade de problemas. Celso Olivete Júnior 9

Avaliação Avaliação 1: 19/12 Avaliação 2: 20/02 Rer: 06/03 A cada bimestre Uma prova: NP Trabalhos e projetos: MT MB = (7*NP + 3*MT)/10 SE E SOMENTE SE (NP>=5 E MT>=5) Caso contrário (MT<5 OU NP<5) MB = Menor Nota (NP ou MT) Onde: NP = Nota da prova MT = Média dos trabalhos MB = Média do Bimestre A nota final (NF) do aluno no curso será a média das notas obtidas nos 2 bimestres Caso o aluno não obtenha a nota mínima para aprovação, será oferecida uma terceira avaliação (RR) Celso Olivete Júnior 10

Avaliação A cola ou plágio em provas, exercícios ou atividades práticas implicará na atribuição de nota zero para todos os envolvidos. Dependendo da gravidade do incidente, o caso será levado ao conhecimento da Coordenação e do Conselho do Departamento, para as providências cabíveis. Na dúvida do que é considerado cópia ou plágio, o aluno deve consultar o professor antes de entregar um trabalho. Celso Olivete Júnior 11

Projeto (em duplas) Parte 1: especificar e simular autômatos finitos através de diagramas de transições; especificar e simular expressões regulares e especificar e simular gramáticas regulares Maior detalhamento no site da disciplina. Celso Olivete Júnior 12

Projeto (em duplas) Parte 2: Permitir a conversão entre os modelos: AF GR; AF ER especificar e simular autômatos finitos com saída (Máquina de Moore ou Mealy) através de diagramas de transições; Maior detalhamento no site da disciplina. Celso Olivete Júnior 13

Ferramenta exemplo: JFlap http://www.jflap.org/ Celso Olivete Júnior 14

Visão Geral da Disciplina Celso Olivete Júnior 15

Linguagem Formal Uma Linguagem Formal possui: Sintaxe bem definida: Dada uma sentença, é possível sempre saber se ela pertence ou não a uma linguagem; Semântica precisa: De modo que não contenha sentenças sem significado ou ambíguas; Celso Olivete Júnior 16

Linguagem Formal: exemplos na Computação Java, C, Pascal, HTML, Basic, C#, VB.net,... Ao projetar um sistema, o programador precisa estabelecer uma linguagem formal de comunicação com o usuário final linguagem de comunicação complexa = sistema mal projetado Fundamental em COMPILADORES Celso Olivete Júnior 17

Classificação das Linguagens: qual será abordada considerando a Hierarquia de Chomsky? Programa do curso Expressões regulares e linguagens Propriedades das linguagens regulares Gramáticas e Linguagens Autômatos Finitos Linguagens Livre de Contexto Autômatos finitos Expressões regulares Gramáticas regulares Celso Olivete Júnior 18

Classificação das Linguagens: qual será abordada considerando a Hierarquia de Chomsky? Máquina de Turing Máquina de Turing com fita limitada Autômato à pilha Gramáticas livre de contexto Programa do curso Expressões regulares e linguagens Propriedades das linguagens regulares Gramáticas e Linguagens Autômatos Finitos Linguagens Livre de Contexto Autômatos finitos Expressões regulares Gramáticas regulares Celso Olivete Júnior 19

Classificação das Linguagens: qual será abordada considerando a Hierarquia de Chomsky? Disciplina teoria da Computação Máquina de Turing Máquina de Turing com fita limitada Autômato à pilha Gramáticas livre de contexto Programa do curso Expressões regulares e linguagens Propriedades das linguagens regulares Gramáticas e Linguagens Autômatos Finitos Linguagens Livre de Contexto Autômatos finitos Expressões regulares Gramáticas regulares Celso Olivete Júnior 20

Linguagem Um linguagem é um conjunto de strings; Uma string é uma sequência de símbolos; Estes símbolos estão definidos em um alfabeto finito; Ex: Linguagem C ou Pascal, etc. Linguagem regular - Formas de representação: expressão regular (ER), autômato finito (AF) e gramática regular (GR) ER: Servem para verificar se uma string está ou não em uma linguagem Celso Olivete Júnior 21

Equivalências entre linguagens regulares Expressão regular (ER) Existe um AF correspondente Existe uma ER correspondente Autômato finito (AF) Existe um AF correspondente Existe uma G que o represente Gramática regular (Gr) Celso Olivete Júnior 22

Visão geral - Expressão regular (ER) Uma ER é definida a partir de conjuntos básicos e operações de concatenação e união e oferece um modo declarativo de expressar as cadeias que queremos aceitar. desenvolvidas a partir de : 1. símbolos do alfabeto Σ 2. operadores de: união : representado por ou + ou conjunto de cadeias que está em um conjunto ou em outro concatenação: representado por ou sem ponto junção dos elementos fecho-estrela (fechamento): representado por * cadeias que podem ser formadas tomando qualquer número de repetição do elemento do conjunto (inclusive nenhuma vez) 3. parênteses Celso Olivete Júnior 23

Visão geral - Expressão regular Exemplos ER aa?? ba*?? (a+b)?? (a+b)*?? (a+b)*aa(a+b)*?? a*ba*ba*?? (a+b)*(aa+bb)?? Linguagem reconhecida Simulador de ER http://tools.lymas.com.br/regexp_br.php# Celso Olivete Júnior 24

Visão geral - Expressão regular (ER) Exemplos Início da ER final da ER Simulador de ER http://tools.lymas.com.br/regexp_br.php# Celso Olivete Júnior 25

Visão geral - Expressão regular Exemplos aa ba* (a+b) (a+b)* ER (a+b)*aa(a+b)*?? a*ba*ba*?? (a+b)*(aa+bb)?? somente a palavra aa Linguagem reconhecida iniciam com bseguido por 0 oumais ocorrências de a formadapor aouporb formada por qualquer quantidade de aoub, inclusive nenhuma vez Simulador de ER http://tools.lymas.com.br/regexp_br.php# Celso Olivete Júnior 26

Visão geral - Expressão regular Exemplos aa ba* (a+b) (a+b)* ER somente a palavra aa Linguagem reconhecida iniciam com b seguido por 0 ou mais a formadapor a oupor b formada por qualquer quantidade de a oub, inclusive nenhuma vez (a+b)*aa(a+b)* contém aa como elemento a*ba*ba* (a+b)*(aa+bb) todas as palavras contendo exatamente 2 b s terminam com aa ou bb Defina uma ER que reconheça: - um identificador em Java - um número Celso Olivete Júnior 27

Visão geral - Expressão regular: atuam na especificação de uma linguagem Autômatos finitos: é um formalismo que pode convertido em um programa de computador Celso Olivete Júnior 28

Visão Geral - Autômatos finitos são formados por: Um conjunto finito de estados Arestas levando de um estado a outro, anotada com um símbolo Um estado inicial Um ou mais estados finais Normalmente os estados são numerados ou nomeados para facilitar a manipulação e discussão Celso Olivete Júnior 29

Visão Geral - Autômatos finitos: constituem um modelo útil para muitos elementos de hardware e software. Ex: 1. Controlar um interruptor: dispositivo para acender ou apagar uma lâmpada 2. software para projetar e verificar o comportamento de circuitos digitais; 3. analisador léxico de um compilador 4. descrever o processo de reconhecimento de padrões em cadeias de entrada, e assim podem ser utilizados para construir sistemas de busca; Celso Olivete Júnior 30

Autômatos finitos: o que é e o que ele faz? Em cada um exemplos citados, podemos citar o autômato como estando em um de um número finito de estados O estado permite lembrar o passado relevante do sistema (ele chegou lá após um certo número de transições/passos, que são o seu passado) e para onde pode seguir. Se o número de estados de um sistema é finito, pode-se representá-lo com uma quantidade limitada de recursos. Celso Olivete Júnior 31

Autômato finito: exemplo clássico do interruptor Estado inicial Transição Estado final o dispositivo memoriza se está no estado ligado ou no estado desligado, e permite ao usuário pressionar um botão diferente do estado atual pressionar desligado ligado desligado ligado pressionar Celso Olivete Júnior 32

Autômato finito: parte de um analisador léxico reconhece a palavra reservada else cada estado memoriza o que já foi reconhecido da palavra vazia até a palavra completa else parte do analisador léxico, representado pelo autômato, examina letra a letra do arquivo fonte que está sendo compilado até atingir o estado q4 (reconhece o else) Celso Olivete Júnior 33

Autômatos finitos: principais características Memória Limitada. Trabalha apenas sobre o estado atual. Memória limitada pela quantidade de estados. Celso Olivete Júnior 34

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? Expressões regulares (ER) Existe um AF correspondente Existe uma ER correspondente Autômatos finitos (AF) Existe um AF correspondente Gramáticas (G) Existe uma G que o represente Celso Olivete Júnior 35

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? aa ER somente a palavra aa Linguagem gerada Celso Olivete Júnior 36

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? aa ER somente a palavra aa Linguagem gerada Reconheceu o primeiro a Celso Olivete Júnior 37

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? aa ER somente a palavra aa Linguagem gerada Reconheceu o primeiro a Reconheceu o segundo a, formando a linguagem aa Celso Olivete Júnior 38

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? ba* ER Linguagem gerada iniciam com b seguido por 0 ou mais a Celso Olivete Júnior 39

Autômatos finitos (AF) versus Expressões Regulares (ER) como transformar? (a+b) ER formadapor a oupor b Linguagem gerada Celso Olivete Júnior 40

Visão Geral - Gramática A gramática é um formalismo projetado para a definição de linguagens Uma gramática mostra como gerar as palavras de uma linguagem Um elemento fundamental das gramáticas é denominado regra Celso Olivete Júnior 41

Visão Geral Gramática Exemplo de regra S ab B b ou S Ba B b qual a linguagem gerada? ideia: substituia o símbolo que está em maiúsculo no lado direito da regra por seu significado correspondente encontrado no lado esquerdo: B pode ser substituído por b logo a linguagem gerada é representada pela ER = ab ou ba Celso Olivete Júnior 42

Visão Geral Gramática S ab B b AF correspondente linguagem gerada é representada pela ER = ab Celso Olivete Júnior 43

Gramática: Exemplo 2 S as ba ε A c qual a linguagem gerada? Celso Olivete Júnior 44

Gramática: Exemplo 2 AF correspondente S as ba ε A c qual a linguagem gerada? qualquer quantidade de a ou bc ER = a* + bc Celso Olivete Júnior 45

Gramática: Exemplo 2 AF correspondente S as ba ε A c qual a linguagem gerada? qualquer quantidade de a ou bc ER = a* + bc Celso Olivete Júnior 46

Gramática: aplicação em compiladores: reconhecimento de números inteiros com sinal Int +Dig -Dig Dig 0Dig 1Dig... 9Dig 0 1... 9 Celso Olivete Júnior 47

Gramática: regras que definem o comando WHILE (Pascal) comando comandowhile comandowhile WHILE expr_bool DO comando; expr_bool expr_arit < expr_arit expr_arit > expr_arit... expr_arit expr_arit * termo termo... termo expr_arit NÚMERO IDENTIFICADOR Celso Olivete Júnior 48

Próxima aula: Linguagens regulares: Alfabeto String Concatenação Comprimento de uma cadeia Operações: união, concatenação, reverso, fechamento... Expressões regulares Projeto: Definição dos grupos Celso Olivete Júnior 49

Celso Olivete Júnior 50