Linguagens Formais e Autômatos P. Blauth Menezes

Documentos relacionados
IBM1088 Linguagens Formais e Teoria da

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

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

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

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

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

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

1 INTRODUÇÃO E CONCEITOS BÁSICOS

1 introdução. capítulo. O que é uma solução computável? Quais são os limites do que pode ser computado? Existem problemas sem solução computacional?

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

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

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

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

Linguagens Formais e Autômatos

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens Formais e Autômatos P. Blauth Menezes

Alfabeto, Cadeias, Operações e Linguagens

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

Linguagens Formais - Preliminares

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

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

Expressões Regulares e Gramáticas Regulares

Linguagens Formais e Autômatos P. Blauth Menezes

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

Aula1 Noções de matemática Discreta Técnicas de Demonstração. Prof. Dr. Ricardo Luis de Azevedo da Rocha

Modelos de Computação

Linguagens Formais e Autômatos P. Blauth Menezes

Histórico e motivação

Linguagens Formais e Problemas de Decisão

Matemática Discreta para Computação e Informática

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

Linguagens Formais e Autômatos P. Blauth Menezes

Conceitos básicos de Teoria da Computação

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

Gramáticas ( [HMU00], Cap. 5.1)

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

Lista de exercícios 1

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

Aula 8: Gramáticas Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Compiladores Aula 4. Celso Olivete Júnior.

Prof. Adriano Maranhão COMPILADORES

Gramáticas e Linguagens independentes de contexto

Definições Exemplos de gramáticas

Construção de Compiladores

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

Capítulo II Gramáticas

Fundamentos da Teoria da Computação

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

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

Gramática. Gramática. Gramática

BCC244. Alfabeto, String, Linguagem, Gramática. Registro aqui o agradecimento à Profa. Lucília por ceder slides que fazem parte deste materal.

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

Linguagens Regulares. Prof. Daniel Oliveira

Capítulo II Gramáticas

LINGUAGENS FORMAIS E AUTÔMATOS

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

Linguagens, Reconhecedores e Gramáticas

Teoria das Linguagens. Linguagens Formais e Autómatos (Linguagens)

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

Lista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos

Problema A Codificação Símbolos Dado um inteiro n, n é N representação de inteiros 0,1,...,b - 1 numa base b Dado um grafo G, G é conexo?

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

SCC Capítulo 1 Linguagens Regulares e Autômatos Finitos

Segunda Lista de Exercícios 2004/2...

LINGUAGENS FORMAIS E AUTÔMATOS

Linguagem (formal) de alfabeto Σ

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

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

Linguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)

Teoria da Computação

Linguagens Livres de Contexto

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

Python e sua sintaxe LNCC UFRJ

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

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

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

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

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

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

Notas sobre Definições Recursivas

Linguagens Formais e Autômatos. Alfabetos, Palavras, Linguagens e Gramáticas

Capítulo 1: Alfabetos, cadeias, linguagens

Linguagens Formais e Autômatos (LFA)

Gramáticas Livres de Contexto Parte 1

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

Marcos Castilho. DInf/UFPR. 21 de março de 2019

1 introdução e conceitos básicos

Exemplo preliminar. Considere a linguagem dos Palíndromos Lpal:

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky

Expressões regulares

Exercícios Associados à Aula 28 (27/11/2013) Feitos em sala e em equipes

Linguagens Formais e Autômatos P. Blauth Menezes

Gramáticas Livres de Contexto

Transcrição:

Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes 1

Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 2

2 Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 3

2 Linguagens e Gramáticas Linguagem: Dicionário Aurélio o uso da palavra articulada ou escrita como meio de expressão e comunicação entre pessoas Não é suficientemente precisa para desenvolvimento matemático de uma teoria baseada em linguagens Linguagens Formais e Autômatos - P. Blauth Menezes 4

Linguagem conceito fundamental em Computação e Informática Para definir linguagem alfabeto palavra ou cadeia de caracteres Linguagens Formais e Autômatos - P. Blauth Menezes 5

2 Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 6

2.1 Alfabeto Símbolo ou Caractere entidade abstrata básica, não definida formalmente base para definições exemplos: letras e dígitos Def: Alfabeto Conjunto finito de símbolos ou caracteres Portanto conjunto infinito não é alfabeto é um alfabeto Linguagens Formais e Autômatos - P. Blauth Menezes 7

Exp: Alfabeto São alfabetos { a, b, c } (conjunto vazio) Não são alfabetos (por quê?) N (conjunto dos números naturais) { a, b, aa, ab, ba, bb, aaa, } Linguagens Formais e Autômatos - P. Blauth Menezes 8

Exp: Alfabeto: Linguagem de Programação Alfabeto de uma linguagem de programação como Pascal o conjunto de todos os símbolos usados nos programas letras dígitos caracteres especiais como >, /, etc espaço ou branco Alfabeto binário { a, b } domínio de valores de um bit analogia com a representação interna dos computadores reais poucos símbolos: simplifica as diversas abordagens desenvolvidas. Linguagens Formais e Autômatos - P. Blauth Menezes 9

2 Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 10

2.2 Palavra Def: Palavra, Cadeia de Caracteres, Sentença Sobre um alfabeto seqüência finita de símbolos justapostos Cadeia sem símbolos ε - cadeia vazia ou palavra vazia Linguagens Formais e Autômatos - P. Blauth Menezes 11

Def: Prefixo, Sufixo, Subpalavra Prefixo (Sufixo) qualquer seqüência inicial (final) de símbolos da palavra Subpalavra qualquer seqüência de símbolos contíguos da palavra Exp: Palavra, Prefixo, Sufixo, Subpalavra abcb palavra sobre o alfabeto { a, b, c } ε, a, ab, abc, abcb são todos os prefixos ε, b, cb, bcb, abcb são todos os sufixos qualquer prefixo ou sufixo é uma subpalavra Linguagens Formais e Autômatos - P. Blauth Menezes 12

Exp: Palavra: Linguagem de Programação Em uma linguagem de programação como Pascal uma palavra é um programa Linguagens Formais e Autômatos - P. Blauth Menezes 13

Def: Concatenação de Palavras Concatenação de Palavras ou simplesmente Concatenação operação binária sobre um conjunto de palavras associa a cada par de palavras palavra formada pela justaposição da primeira com a segunda Notação justaposição dos símbolos que representam as palavras componentes Propriedades Elemento Neutro: ε w = w = w ε Associativa: v(w t) = (v w)t Associatividade - parênteses podem ser omitidos: v w t Linguagens Formais e Autômatos - P. Blauth Menezes 14

Exp: Concatenação de Palavras Σ = { a, b } um alfabeto. Para v = baaaa e w = bb v w = baaaabb v ε = v = baaaa Def: Concatenação Sucessiva de uma Palavra Concatenação Sucessiva de uma Palavra (com ela mesma) ou simplesmente Concatenação Sucessiva w n onde n é o número de concatenações sucessivas indutivamente a partir da operação de concatenação w 0 = ε w n = w w n-1, para n > 0 Linguagens Formais e Autômatos - P. Blauth Menezes 15

Exp: Concatenação Sucessiva w palavra e a símbolo w 3 = w w w w 1 = w a 5 = aaaaa a n = aaa a (o símbolo a repetido n vezes) Linguagens Formais e Autômatos - P. Blauth Menezes 16

Se Σ é um alfabeto Σ* conjunto de todas as palavras possíveis sobre Σ Σ + = Σ* - { ε } Def: Conjunto de Todas as Palavras Σ alfabeto. Σ* é indutivamente definido Base de Indução ε Σ* para qualquer x Σ, vale x Σ* Passo de Indução Se u e v são palavras de Σ*, então a concatenação u v é uma palavra de Σ* Linguagens Formais e Autômatos - P. Blauth Menezes 17

Definição alternativa para palavra sobre um alfabeto Σ qualquer elemento w de Σ* w Σ* Exp: Conjunto de Todas as Palavras Se Σ = { a, b }, então: Σ + = { a, b, aa, ab, ba, bb, aaa, } Σ* = { ε, a, b, aa, ab, ba, bb, aaa, } Linguagens Formais e Autômatos - P. Blauth Menezes 18

Def: Comprimento, Tamanho de uma Palavra De uma palavra w, representado por w número de símbolos que compõem a palavra função com domínio em Σ* e codomínio em N Exp: Palavra, Prefixo, Sufixo, Comprimento abcb = 4 ε = 0 Linguagens Formais e Autômatos - P. Blauth Menezes 19

2 Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 20

2.3 Linguagem Formal Def: Linguagem Formal Linguagem Formal ou simplesmente Linguagem L sobre um alfabeto Σ L Σ* Exp: Linguagem Formal e { ε } são linguagens sobre qualquer alfabeto { ε } Σ* e Σ + são linguagens sobre um Σ qualquer Σ* Σ + Conjunto de palíndromos sobre Σ = { a, b } ε, a, b, aa, bb, aaa, aba, bab, bbb, aaaa, Linguagens Formais e Autômatos - P. Blauth Menezes 21

Exp: Conjunto de Todas as Linguagens Sobre um Alfabeto Conjunto das partes de Σ* 2 Σ* Exp: Linguagem Formal: Linguagem de Programação Linguagem de programação como Pascal conjunto de todos os programas (palavras) da linguagem Linguagens Formais e Autômatos - P. Blauth Menezes 22

2 Linguagens e Gramáticas 2.1 Alfabeto 2.2 Palavra 2.3 Linguagem Formal 2.4 Gramática Linguagens Formais e Autômatos - P. Blauth Menezes 23

2.4 Gramática Linguagem de programação definida pelo conjunto de todos os programas (palavras) Linguagem de propósitos gerais como Pascal conjunto de todos os programas é infinito não é definição adequada para implementação em computador Formalismo Gramática uma maneira de especificar de forma finita linguagens (eventualmente) infinitas Linguagens Formais e Autômatos - P. Blauth Menezes 24

Gramática é, basicamente conjunto finito de regras quando aplicadas sucessivamente, geram palavras conjunto de todas as palavras geradas por uma gramática define a linguagem Gramáticas para linguagens naturais como Português as mesmas que as usadas para linguagens artificiais como Pascal Gramáticas também são usadas para definir semântica entretanto, em geral, são usados outros formalismos Linguagens Formais e Autômatos - P. Blauth Menezes 25

Def: Gramática Gramática de Chomsky, Gramática Irrestrita ou Gramática G = (V, T, P, S) V, conjunto finito de símbolos variáveis ou não-terminais T, conjunto finito de símbolos terminais disjunto de V P: (V T) + (V T)*, relação finita: Produções par da relação: regra de produção ou produção S, elemento distinguido de V: símbolo inicial ou variável inicial Representação de uma regra de produção (α, β) α β Representação abreviada para α β 1, α β 2,..., α β n α β 1 β 2 β n Linguagens Formais e Autômatos - P. Blauth Menezes 26

Derivação aplicação de uma regra de produção é denominada derivação aplicação sucessiva de regras de produção fecho transitivo da relação de derivação permite derivar palavras da linguagem Linguagens Formais e Autômatos - P. Blauth Menezes 27

Def: Relação de Derivação G = (V, T, P, S) gramática Derivação é um par da Relação de Derivação denotada por domínio em (V T) + e codomínio em (V T)* α, β é representado de forma infixada α β é indutivamente definida como segue: para toda produção da forma S β (S é o símbolo inicial de G) S β para todo par η ρ α σ da relação de derivação se α β é regra de P, então η ρ β σ Linguagens Formais e Autômatos - P. Blauth Menezes 28

Portanto, derivação substituição de uma subpalavra de acordo com uma regra de produção Sucessivos passos de derivação * fecho transitivo e reflexivo da relação zero ou mais passos de derivações sucessivos + fecho transitivo da relação um ou mais passos de derivações sucessivos I exatos i passos de derivações sucessivos (i natural) Linguagens Formais e Autômatos - P. Blauth Menezes 29

Gramática é um formalismo aximático de geração permite derivar ("gerar") todas as palavras da linguagem Def: Linguagem Gerada G = (V, T, P, S) gramática Linguagem Gerada por G: L(G) ou GERA(G) palavras de símbolos terminais deriváveis a partir de S L(G) = { w T* S + w } Linguagens Formais e Autômatos - P. Blauth Menezes 30

Exp: Gramática, Derivação, Linguagem Gerada: Números Naturais G = (V, T, P, N) V = { N, D } T = { 0, 1, 2,, 9 } P = { N D, N DN, D 0 1 9 } Gera, sintaticamente, o conjunto dos números naturais se distinguem os zeros à esquerda exemplo: 123 de 0123 Linguagens Formais e Autômatos - P. Blauth Menezes 31

Exp: Gramática, Derivação, Linguagem Gerada: Números Naturais G = (V, T, P, N) V = { N, D } T = { 0, 1, 2,, 9 } P = { N D, N DN, D 0 1 9 } Uma derivação do número 243 N N DN DN D 2 2N N DN 2DN D 4 24N N D 24D D 3 243 Linguagens Formais e Autômatos - P. Blauth Menezes 32

Portanto S * 243 S + 243 S 6 243 Interpretação indutiva da gramática Base de Indução: todo dígito é natural Passo de Indução: se n é natural, então a concatenação com qualquer dígito também é natural Linguagens Formais e Autômatos - P. Blauth Menezes 33

Exp: Gramática, Derivação, Linguagem Gerada: Palavra Duplicada na qual: G = ({ S, X, Y, A, B, F }, { a, b }, P, S) P = { S XY, X XaA XbB F Aa aa, Ab ba, AY Ya, Ba ab, Bb bb, BY Yb, Fa af, Fb bf, FY ε } gera a linguagem { ww w é palavra de { a, b }* } Linguagens Formais e Autômatos - P. Blauth Menezes 34

Derivação de baba S XY XaAY XaYa XbBaYa XbaBYa XbaYba FbaYba bfayba bafyba baba S XY X XaA AY Ya X XbB Ba ab BY Yb X F Fb bf Fa af FY ε Existe mais alguma derivação de baba? Linguagens Formais e Autômatos - P. Blauth Menezes 35

Def: Gramáticas Equivalentes G 1 e G 2 são Gramáticas Equivalentes se e somente se GERA(G 1 ) = GERA(G 2 ) Convenções A, B, C,, S, T para símbolos variáveis a, b, c,, s, t para símbolos terminais u, v, w, x, y, z para palavras de símbolos terminais α, β, para palavras de símbolos variáveis ou terminais Linguagens Formais e Autômatos - P. Blauth Menezes 36

Linguagens Formais e Autômatos P. Blauth Menezes 1 Introdução e Conceitos Básicos 2 Linguagens e Gramáticas 3 Linguagens Regulares 4 Propriedades das Linguagens Regulares 5 Autômato Finito com Saída 6 Linguagens Livres do Contexto 7 Propriedades e Reconhecimento das Linguagens Livres do Contexto 8 Linguagens Recursivamente Enumeráveis e Sensíveis ao Contexto 9 Hierarquia de Classes e Linguagens e Conclusões Linguagens Formais e Autômatos - P. Blauth Menezes 37