Linguagens Formais e Autômatos

Documentos relacionados
Linguagens Formais e Autômatos

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

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

Gramática. Gramática. Gramática

Linguagens Formais e Autômatos P. Blauth Menezes

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

Alfabeto, Cadeias, Operações e Linguagens

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

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

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

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

Um alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.

Como construir um compilador utilizando ferramentas Java

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

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

Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto

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

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

Prof. Adriano Maranhão COMPILADORES

Linguagens Formais - Preliminares

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

IBM1088 Linguagens Formais e Teoria da

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

Definições Hierarquia de Chomsky Exemplos de gramáticas. Gramáticas. Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas

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

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

Função, interação com o compilador Especificação e reconhecimento de tokens Implementação Tratamento de erros. Prof. Thiago A. S.

Definições Exemplos de gramáticas

1 INTRODUÇÃO E CONCEITOS BÁSICOS

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

Transformação de AP para GLC

Linguagens Formais e Autômatos P. Blauth Menezes

Gramática Livre de Contexto

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

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

Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)

Linguagens Formais e Problemas de Decisão

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

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

Compiladores - Análise Léxica

Máquinas de Turing - Computabilidade

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

Modelos de Computação

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagens Formais e Autômatos P. Blauth Menezes

Capítulo 1: Alfabetos, cadeias, linguagens

LINGUAGENS FORMAIS E AUTÔMATOS

Construção de Compiladores

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.

Estrutura geral de um compilador programa-fonte

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

Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos

Linguagens Formais e Autômatos (LFA)

Histórico e motivação

Teoria da Computação. Unidade 1 Conceitos Básicos. Referência Teoria da Computação (Divério, 2000)

Linguagens Formais e Autômatos

Python e sua sintaxe LNCC UFRJ

Gramáticas Livres de Contexto

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação. Aula 01

Teoria da Computação

AF Não-determinísticos Equivalência entre AFND e AFD AFs e GRs Implementação de AFs

Compiladores - Análise Léxica

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

Linguagens Regulares. Prof. Daniel Oliveira

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

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

a n Sistemas de Estados Finitos AF Determinísticos

Expressões Regulares e Gramáticas Regulares

Lista de exercícios 1

UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA

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

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

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

Gramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo

Linguagens Formais e Autômatos P. Blauth Menezes

Operações Fechadas sobre LR s Aplicações

Linguagens de Programação

Compiladores. Análise Léxica

Linguagens Livres de Contexto

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

Gramática Livre de Contexto

a * Expressões Regulares (ER) Conversão de AF para ER no JFLAP Equivalências entre AFD, AFND, AF-, ER, GR

INE5622 INTRODUÇÃO A COMPILADORES

Compiladores Aula 4. Celso Olivete Júnior.

Lema do Bombeamento para Linguagens Livres do Contexto

Transcrição:

Linguagens Formais e Autômatos Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Problema: definir um conjunto de cadeias de símbolos; Prof. Yandre Maldonado - 2 Exemplo: conjunto M dos números binários que têm 2 dígitos M={00,01,10,11} Prof. Yandre Maldonado - 3 Porém, se fosse o conjunto N de todas as combinações de dígitos binários, poderíamos tentar o seguinte: N={0,1,00,01,10,11,000,...} Percebe-se que este conjunto é infinito; 1

Representação clara: humanos x computador Prof. Yandre Maldonado - 4 Representação Formal Computador; Um objetivo de LFA é estudar uma maneira precisa e formal de descrever seqüências de símbolos pertencentes à um determinado conjunto; Prof. Yandre Maldonado - 5 Em especial conjuntos que não podem ser trivialmente enumerados; Os estudos iniciais foram em torno de Linguagens Naturais (LN); Algumas características de LN introduziram dificuldades no tratamento computacional das mesmas: LN é extensa, complexa, não tem sintaxe rígida e semântica bem determinada (rica em ambigüidade); Prof. Yandre Maldonado - 6 Entretanto, os estudos iniciais apresentaram resultados significativos na descrição de linguagens computacionais; Linguagens Computacionais são muito mais simples, são linguagens criadas artificialmente de forma que possam ser tratadas computacionalmente de forma satisfatória; 2

Prof. Yandre Maldonado - 7 As maneiras sistemáticas de descrever uma linguagem de programação são: um método que permite construir programas sintaticamente corretos - geração (Gramática); um método que permite verificar se um programa escrito está sintaticamente correto - reconhecimento (Autômatos); Prof. Yandre Maldonado - 8 Pesquisas já demonstraram o uso destas técnicas em: Análise de linguagens de programação léxica; sintática; Modelos de sistemas biológicos; Desenho de hardware; Relacionamentos com linguagens naturais; Reconhecimento de padrões (em visão computacional por exemplo). Prof. Yandre Maldonado - 9 Alfabeto: Conjunto de finito de símbolos; Normalmente descrito por Σ; Exemplos: Σ={a, b} Σ={1, 2, 3} Σ={00, 11} 3

Prof. Yandre Maldonado - 10 Símbolo ou letra: é todo elemento pertencente à um alfabeto; a é um símbolo de Σ sse a Σ; Exemplo: dado o alfabeto Σ={0, 1, 23} 0 é um símbolo de Σ; 1 é um símbolo de Σ; 23 é um símbolo de Σ; Prof. Yandre Maldonado - 11 Essas duas primeiras definições são bastante livres. Embora os símbolos também possam ser chamados de letras, eles não precisam ter necessariamente um único caractere. E além disso, os símbolos de um alfabeto não precisam todos ter o mesmo número de caracteres. A única restrição é que o tamanho do símbolo seja finito. Prof. Yandre Maldonado - 12 Cadeia ou palavra: É uma concatenação de símbolos de um mesmo alfabeto; É uma seqüência finita de símbolos do alfabeto justapostos; Assim, dado um alfabeto Σ e uma seqüência de símbolos x=a 1 a 2 a 3...a n, x é uma cadeia sobre Σ sse a i Σ para i=1,2,...,n 4

Prof. Yandre Maldonado - 13 Comprimento de Cadeia ou Tamanho de Palavra: É o número de símbolos que compõem uma dada cadeia (ou palavra). O comprimento de uma cadeia x é denotado por x Então, a cadeia x=a 1 a 2 a 3...a n, tem seu comprimento x = n Cadeia nula ou palavra vazia: é um caso especial, ela é denotada por λ (ou ε) e tem tamanho igual a zero. Prof. Yandre Maldonado - 14 Exercício: dado o alfabeto Σ={a, b, c, de}, verifique se as cadeias a seguir são formadas sobre este alfabeto, e se for, verifique qual o comprimento das mesmas: x = ababac y = abdec z = abedc w = abdceaba s = d t = a Prof. Yandre Maldonado - 15 Exponenciação de Alfabetos: Σ k é o conjunto de todas as cadeias com tamanho k, formadas sobre o alfabeto Σ. Exemplo: considere Σ = {0, 1} Σ 0 = {λ} Σ 1 = {0, 1} = Σ Σ 2 = {00, 01, 10, 11}... Exercício: encontre Σ 3 para o exemplo anterior. 5

Prof. Yandre Maldonado - 16 Fechamento de um Alfabeto: Seja Σ um alfabeto, então o fechamento de Σ, descrito por Σ * é definido como Σ * = Σ 0 Σ 1 Σ 2... Σ n... Σ * é o conjunto de todas as cadeias possíveis de se formar sobre o alfabeto Σ. Fechamento positivo Σ + = Σ * - {λ} Questão: quando Σ * é infinito? Prof. Yandre Maldonado - 17 Concatenação de cadeias: dado o alfabeto Σ e as cadeias x, y Σ *, a concatenação de x e y, indicada por xy, produz uma cadeia formada pelos símbolos de x seguidos pelos símbolos de y. Se x = a 1 a 2...a n Σ * e y = b 1 b 2...b m Σ *, então xy = a 1 a 2...a n b 1 b 2...b m Prof. Yandre Maldonado - 18 Exemplos: Σ = {a, b} x = abaa, y = ba, z=λ xy = abaaba yx = baabaa yz = ba = zy = y A cadeia nula (λ) é o elemento neutro da concatenação. 6

Prof. Yandre Maldonado - 19 Concatenação sucessiva: concatenação de uma palavra com ela mesma; Representada através de um expoente: w n Onde w é uma palavra e n indica o número de concatenações sucessivas; Prof. Yandre Maldonado - 20 Dado um alfabeto Σ e x, y Σ *, diz-se que: x é um prefixo de y sse w Σ * tal que y= xw; x é um sufixo de y sse w Σ * tal que y= wx; x é um subpalavra de y sse w,u Σ * tal que y= wxu; Linguagem: dado o alfabeto Σ, o conjunto de palavras L é uma linguagem sobre Σ, sse L Σ *. Prof. Yandre Maldonado - 21 Σ * Linguagem 7

Prof. Yandre Maldonado - 22 Operações sobre linguagens; Considere L1 e L2 linguagens definidas sobre Σ: União: L 1 L 2 = {x x L 1 x L 2 } Intersecção: L 1 L 2 = {x x L 1 x L 2 } Diferença: L 1 - L 2 = {x x L 1 x L 2 } Concatenação: L 1. L 2 = {x x = yz, y L 1 z L 2 } Complemento: L 1 ={x x Σ* x L 1 } Prof. Yandre Maldonado - 23 Exemplos de operações: Sejam L 1 e L 2 definidas sobre {0,1}: L 1 = {0,11} L 2 = {0, 1, 00} L 1 L 2 = {0, 1, 00, 11} L 1 L 2 = {0} L 1 - L 2 = {11} L 1.L 2 = {00, 01, 000, 110, 111, 1100} Prof. Yandre Maldonado - 24 Comparando as definições: Linguagem Natural: Uma palavra em português equivale à um símbolo; Uma sentença da língua portuguesa é uma cadeia composta por vários símbolos; Linguagem Computacional: Cada programa escrito numa linguagem computacional corresponde a uma cadeia de símbolos que podem ser: identificadores; palavras reservadas; símbolos especiais e operadores; constantes numéricas. 8

Uma linguagem computacional como linguagem formal: Alfabeto da linguagem Pascal Prof. Yandre Maldonado - 25 {program, var, integer, real, char, begin, end, if, then, else, for,..., ;,,, :, :=,.,...} Program Teste; Var i: integer; Begin i:=0; End. O código fonte de um programa corresponde à uma cadeia formada a partir de símbolos do alfabeto. LINGUAGEM Conjunto de todas as cadeias descritas a partir do alfabeto que respeitam um conjunto de regras sintáticas. Hierarquia de Chomsky Prof. Yandre Maldonado - 26 Linguagens Enumeráveis Recursivamente Linguagens Sensíveis ao Contexto Linguagens Livres de Contexto Linguagens Regulares MT NORMA POST AP GLC AFD AFND AFS GR ER Bibliografia Prof. Yandre Maldonado - 27 MENEZES, Paulo Blauth. Linguagens Formais e Autômatos. Porto Alegre: Editora Sagra-Luzzatto, 1998; DELAMARO, Márcio Eduardo. Linguagens Formais e Autômatos. UEM, 1998. 9