IBM1088 Linguagens Formais e Teoria da

Documentos relacionados
Linguagens Formais e Autômatos P. Blauth Menezes

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

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

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

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

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

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

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

1 INTRODUÇÃO E CONCEITOS BÁSICOS

Linguagens Formais - Preliminares

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

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

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

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

Modelos de Computação

Alfabeto, Cadeias, Operações e Linguagens

Gramáticas Livres de Contexto

Expressões regulares

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

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?

Linguagens Formais e Problemas de Decisão

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

Histórico e motivação

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

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

Aula 8: Gramáticas Livres de Contexto

Expressões Regulares e Gramáticas Regulares

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

Conceitos básicos de Teoria da Computação

Linguagem (formal) de alfabeto Σ

Gramáticas e Linguagens independentes de contexto

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

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

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?

Autômatos finitos não-determinísticos

Definições Exemplos de gramáticas

Compiladores Aula 4. Celso Olivete Júnior.

Linguagens Formais e Autômatos

Linguagens Formais e Autômatos

Autômato com pilha. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz

Lema do Bombeamento para Linguagens Livres do Contexto

Prof. Adriano Maranhão COMPILADORES

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

IBM1088 Linguagens Formais e Teoria da Computação

Linguagens, Reconhecedores e Gramáticas

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

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

Revisões de Conjuntos

Fundamentos da Teoria da Computação

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha

Modelos de Computação Folha de trabalho n. 8

Autómatos de pilha e Gramáticas independentes de contexto

Autómatos de pilha e GIC

Linguagens Formais e Autômatos (LFA)

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

LINGUAGENS FORMAIS E AUTÔMATOS

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

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

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

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

Linguagens Regulares. Prof. Daniel Oliveira

Gramáticas e Linguagens Independentes de Contexto

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

Linguagens Formais e Autômatos

Curso: Ciência da Computação Turma: 6ª Série. Teoria da Computação. Aula 2. Conceitos Básicos da Teoria da Computação

Alfabeto e palavras. Alfabeto conjunto finito de símbolos (Σ).

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

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

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

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

Teoria da Computação

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

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

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

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

Gramática. Gramática. Gramática

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

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

Capítulo 1: Alfabetos, cadeias, linguagens

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

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

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

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

Universidade Federal de Alfenas

Notas sobre Definições Recursivas

Construção de Compiladores

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

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

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

Propriedades das Linguagens Livres do Contexto

LINGUAGENS FORMAIS E AUTÔMATOS

Faculdade de Computação

Conceitos Básicos. Vocabulário Cadeias Linguagens Problema

IBM1088 Linguagens Formais e Teoria da Computação

Transcrição:

IBM1088 Linguagens Formais e Teoria da Computação Linguagens e Gramáticas Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 47

Frase do dia Sofremos muito com o pouco que nos falta e gozamos pouco o muito que temos. William Shakespeare a a Dramaturgo e poeta inglês (1564 1616). E.E.S. Ruiz (USP) LFA 2 / 47

Preâmbulo Objetivo deste tópico: Definir formalmente dois conceitos, linguagem e gramática Preparar outros conceitos e propriedades para o estudo das linguagens formais E.E.S. Ruiz (USP) LFA 3 / 47

Conteúdo 1 Alfabeto 2 Palavra 3 Linguagem formal 4 Gramática E.E.S. Ruiz (USP) LFA 4 / 47

Preâmbulo Linguagem O que é: Para CC a sabemos que é um conceito (+ a ferramenta embutida) fundamental em Computação, no processamento da informação e na Informática. a Mesmo antes de definir formalmente o que é linguagem. E.E.S. Ruiz (USP) LFA 5 / 47

Preâmbulo Linguagem segundo Aurélio Definição A linguagem é o uso da palavra articulada, ou escrita, como meio de expressão, ou comunicação entre pessoas. E.E.S. Ruiz (USP) LFA 6 / 47

Preâmbulo Linguagem segundo Aurélio Definição A linguagem é o uso da palavra articulada, ou escrita, como meio de expressão, ou comunicação entre pessoas. Definição ampla, pouco clara para Ciências Exatas Insuficiente para o estudo de linguagens em Computação Falta formalismo (Álgebra, Matemática, um modelo) Não permite o desenvolvimento lógico (algébrico, matemático) E.E.S. Ruiz (USP) LFA 6 / 47

Preâmbulo Linguagem: início da definição Vamos então definir linguagem através de dois outros conceitos: Alfabeto Palavra E.E.S. Ruiz (USP) LFA 7 / 47

Alfabeto Alfabeto Definição Um alfabeto é um conjunto finito de símbolos ou caracteres. E.E.S. Ruiz (USP) LFA 8 / 47

Alfabeto Alfabeto Definição Um alfabeto é um conjunto finito de símbolos ou caracteres. Portanto: Um conjunto infinito não é um alfabeto Um conjunto vazio ( ) é um alfabeto E.E.S. Ruiz (USP) LFA 8 / 47

Alfabeto Exemplos São exemplos de alfabetos: {a, b, c} {} A = { x N x 10} E.E.S. Ruiz (USP) LFA 9 / 47

Alfabeto Exemplos São exemplos de alfabetos: {a, b, c} {} A = { x N x 10} Não são exemplos de alfabetos: N {a, ab, aa, ab, bb, aaa,...} E.E.S. Ruiz (USP) LFA 9 / 47

Alfabeto Exemplos São exemplos de alfabetos: {a, b, c} {} A = { x N x 10} Não são exemplos de alfabetos: N {a, ab, aa, ab, bb, aaa,...} Representação Σ é normalmente usado para representar um alfabeto, o conjunto dos símbolos usados na linguagem. E.E.S. Ruiz (USP) LFA 9 / 47

Alfabeto Exercício em sala: 1 minuto Qual é o alfabeto da linguagem de programação C? E.E.S. Ruiz (USP) LFA 10 / 47

Alfabeto Alfabeto e linguagem de programação O alfabeto de uma linguagem de programação, como a linguagem C, é o conjunto de todos os símbolos usados na construção de programas, tais como: Letras; Dígitos; Caracteres especiais; e Espaço em branco E.E.S. Ruiz (USP) LFA 11 / 47

Alfabeto Alfabeto e linguagem de programação O alfabeto de uma linguagem de programação, como a linguagem C, é o conjunto de todos os símbolos usados na construção de programas, tais como: Letras; Dígitos; Caracteres especiais; e Espaço em branco Alfabeto binário Σ = {a, b}. Usaremos muito este alfabeto. Similar ao alfabeto real de hardware binário baseado em 0 e 1. Facilita o desenvolvimento de abordagens relacionadas a LFA. E.E.S. Ruiz (USP) LFA 11 / 47

Palavra Palavra Definição Uma palavra (ou cadeia de caracteres) sobre um alfabeto é uma seqüência finita de símbolos justapostos do alfabeto. Notem que, pela definição acima, uma cadeia sem símbolos é uma palavra válida. Notação: ɛ = palavra vazia ou cadeia vazia E.E.S. Ruiz (USP) LFA 12 / 47

Palavra Prefixo e sufixo Definição Um prefixo de uma palavra é qualquer seqüência inicial de símbolos da palavra. E.E.S. Ruiz (USP) LFA 13 / 47

Palavra Prefixo e sufixo Definição Um prefixo de uma palavra é qualquer seqüência inicial de símbolos da palavra. Definição Um sufixo de uma palavra é qualquer seqüência final de símbolos da palavra. E.E.S. Ruiz (USP) LFA 13 / 47

Palavra Exemplos abcd é uma palavra sobre Σ = {a, b, c, d} ɛ, a, ab, abc, abcd são prefixos na palavra abcd ɛ, d, cd, bcd, abcd são sufixos na palavra abcd E.E.S. Ruiz (USP) LFA 14 / 47

Palavra Exemplos abcd é uma palavra sobre Σ = {a, b, c, d} ɛ, a, ab, abc, abcd são prefixos na palavra abcd ɛ, d, cd, bcd, abcd são sufixos na palavra abcd Definição Uma subpalavra de uma palavra é qualquer seqüência de símbolos contíguos da palavra. Portanto, qualquer prefixo ou sufixo é uma subpalavra. E.E.S. Ruiz (USP) LFA 14 / 47

Palavra Outro exemplo!!! Palavra Considerando uma linguagem de programação como C, um um programa é uma palavra. E.E.S. Ruiz (USP) LFA 15 / 47

Palavra Concatenação de palavras Definição A concatenação de palavras, ou simplesmente concatenação, é uma operação binária, definida sobre um conjunto de palavras, a qual associa a cada par de palavras uma palavra formada pela justaposição da primeira com a segunda. E.E.S. Ruiz (USP) LFA 16 / 47

Palavra Exemplo de concatenação Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa e w = bb. Vale que: vw = baaaabb E.E.S. Ruiz (USP) LFA 17 / 47

Palavra Exemplo de concatenação Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa e w = bb. Vale que: vw = baaaabb vɛ = v = baaaa E.E.S. Ruiz (USP) LFA 17 / 47

Palavra Exemplo de concatenação Suponha o alfabeto Σ = {a, b}. Suponha as palavras v = baaaa e w = bb. Vale que: vw = baaaabb vɛ = v = baaaa Usamos aqui duas propriedades da concatenação: Elemento neutro ɛw = wɛ = w Associatividade v(wt) = (vw)t E.E.S. Ruiz (USP) LFA 17 / 47

Palavra Concatenação sucessiva Definição A concatenação sucessiva de uma palavra, representada na forma de um expoente de uma palavra (e.g.: w ), ou seja: w n, tal que, n é o número de concatenações sucessivas, é definida indutivamente como: w 0 = ɛ w n = ww n 1, para n > 0 Percebam como ɛ é realmente uma palavra em Σ. E.E.S. Ruiz (USP) LFA 18 / 47

Palavra Exemplo Sejam: a um símbolo de Σ, w uma palavra e n N. Então: w 3 = www w 1 = w a n = aaaa... a }{{} n E.E.S. Ruiz (USP) LFA 19 / 47

Palavra Importante! Notações importantes Se Σ representa um alfabeto, então: Σ denota o conjunto de todas as palavras possíveis em Σ; e Σ + = Σ {ɛ} E.E.S. Ruiz (USP) LFA 20 / 47

Palavra Conjunto de todas as palavras Definição Seja Σ um alfabeto. Então o conjunto de todas as palavras, Σ, é indutivamente definido como: Base da indução: ɛ Σ x Σ, x Σ Passo da indução Se u e v são palavras em Σ então a concatenação uv é uma palavra em Σ. E.E.S. Ruiz (USP) LFA 21 / 47

Palavra Definição alternativa Definição de palavra Assim, uma definição alternativa para palavra ou sentença sobre um alfabeto Σ é qualquer elemento w de Σ, ou seja, w Σ E.E.S. Ruiz (USP) LFA 22 / 47

Palavra Exemplo Considerando Σ = {a, b}, então: Σ + = {a, b, aa, ab, ba, bb, aaa,...} Σ = {ɛ, a, b, aa, ab, ba, bb, aaa,...} E.E.S. Ruiz (USP) LFA 23 / 47

Palavra Comprimento de uma palavra Definição O comprimento, ou tamanho, de uma palavra w, representado por w, é o número de símbolos que compõem a palavra. E.E.S. Ruiz (USP) LFA 24 / 47

Palavra Comprimento de uma palavra Definição O comprimento, ou tamanho, de uma palavra w, representado por w, é o número de símbolos que compõem a palavra. Representação do comprimento da palavra w: w Domínio: Σ Imagem: N E.E.S. Ruiz (USP) LFA 24 / 47

Palavra Exemplos abcd = 4 ɛ = 0 E.E.S. Ruiz (USP) LFA 25 / 47

Linguagem formal Linguagem formal Definição Uma linguagem formal, ou simplesmente uma linguagem L definida sobre um alfabeto Σ, é um conjunto de palavras sobre Σ, ou seja, L Σ Lembrando... Σ são as palavras possíveis, incluindo ɛ. E.E.S. Ruiz (USP) LFA 26 / 47

Linguagem formal Lembrando... Paĺındromo Um paĺındromo é uma palavra, ou qualquer outra sequência símbolos, cujo significado pode ser interpretado igualmente se lida tanto da direita para a esquerda como da esquerda para a direita. Exemplos: anilina, Renner, A cara rajada da jararaca. E.E.S. Ruiz (USP) LFA 27 / 47

Linguagem formal Exemplos de linguagens Σ e Σ + são linguagens sobre Σ. Lembrando que Σ Σ + E.E.S. Ruiz (USP) LFA 28 / 47

Linguagem formal Exemplos de linguagens Σ e Σ + são linguagens sobre Σ. Lembrando que Σ Σ + Seja Σ = {a, b}, então o conjunto de paĺındromos sobre Σ é um exemplo de linguagem infinita. São palavras desta linguagem ɛ, a, b, aa, bb, aba, bab, aaa,... E.E.S. Ruiz (USP) LFA 28 / 47

Linguagem formal Exemplos de linguagens Σ e Σ + são linguagens sobre Σ. Lembrando que Σ Σ + Seja Σ = {a, b}, então o conjunto de paĺındromos sobre Σ é um exemplo de linguagem infinita. São palavras desta linguagem ɛ, a, b, aa, bb, aba, bab, aaa,... Uma linguagem de programação E.E.S. Ruiz (USP) LFA 28 / 47

Linguagem formal Exemplos de linguagens Σ e Σ + são linguagens sobre Σ. Lembrando que Σ Σ + Seja Σ = {a, b}, então o conjunto de paĺındromos sobre Σ é um exemplo de linguagem infinita. São palavras desta linguagem ɛ, a, b, aa, bb, aba, bab, aaa,... Uma linguagem de programação e {ɛ} são linguagens sobre qualquer alfabeto. Saibam que: {ɛ} E.E.S. Ruiz (USP) LFA 28 / 47

Linguagem formal Diferença conceitual entre e {ɛ} Imaginem uma palavra: abab E.E.S. Ruiz (USP) LFA 29 / 47

Linguagem formal Diferença conceitual entre e {ɛ} Imaginem uma palavra: abab abab = ababɛ E.E.S. Ruiz (USP) LFA 29 / 47

Linguagem formal Diferença conceitual entre e {ɛ} Imaginem uma palavra: abab abab = ababɛ Imaginem a leitura, caracter a caracter, desta palavra Existirá o momento da leitura de ɛ, o final da cadeia é a ausência de palavra w = ɛ é a palavra vazia, mas é uma palavra E.E.S. Ruiz (USP) LFA 29 / 47

Linguagem formal Diferença conceitual entre e {ɛ}, continua Imaginem a linguagem L = {a, ab, abab} ɛ / L, ou seja, a cadeia vazia não faz parte de L E.E.S. Ruiz (USP) LFA 30 / 47

Linguagem formal Diferença conceitual entre e {ɛ}, continua Imaginem a linguagem L = {a, ab, abab} ɛ / L, ou seja, a cadeia vazia não faz parte de L Mas, como em todo conjunto, L 2 L = {, {a}, {ab}, {abab}, {aab}, {aabab}, {ababab}, {a, ab, abab}} E.E.S. Ruiz (USP) LFA 30 / 47

Gramática Gramática: definição informal É basicamente um conjunto finito de regras para gerar palavras. O conjunto de todas as palavras geradas pela gramática define uma linguagem. E.E.S. Ruiz (USP) LFA 31 / 47

Gramática Assim... Um programa = palavra Conjunto de todas as palavras de uma gramática de uma LP = Linguagem de programação E.E.S. Ruiz (USP) LFA 32 / 47

Gramática Assim... Um programa = palavra Conjunto de todas as palavras de uma gramática de uma LP = Linguagem de programação Conjunto de todos os programas (e.g.: Na linguagem C) Porém, esta não é uma definição formalmente adequada, ou algebricamente ideal para o estudo de LFA E.E.S. Ruiz (USP) LFA 32 / 47

Gramática Gramática Definição Uma gramática de Chomsky, ou uma gramática irrestrita, aqui denotada por G, é uma quádrupla ordenada em que G = (V, T, P, S) V é um conjunto de símbolos não terminais T é um conjunto de símbolos terminais, para T disjunto de V P : (V T ) + (V T ) é uma relação finita chamada de relação de produções. Cada par é denominado regra de produção ou produção S é um elemento de V denominado símbolo inicial. E.E.S. Ruiz (USP) LFA 33 / 47

Gramática Em termos práticos... Nem tanto! Uma regra de produção pode ser representada como: α β Um grupo de regras de produção da forma α β 1 ; α β 2 ;... ; α β n e pode ser abreviado como: α β 1 β 2... β n E.E.S. Ruiz (USP) LFA 34 / 47

Gramática Em termos práticos... Nem tanto! Uma regra de produção pode ser representada como: α β Um grupo de regras de produção da forma α β 1 ; α β 2 ;... ; α β n e pode ser abreviado como: α β 1 β 2... β n Importante! As regras de produção definem as condições de geração das palavras da linguagem. E.E.S. Ruiz (USP) LFA 34 / 47

Gramática Derivação: informalmente Derivação A aplicação de uma regra de produção é denominada derivação de uma palavra e é formalmente definida como um par de uma relação. E.E.S. Ruiz (USP) LFA 35 / 47

Gramática Derivação: informalmente Derivação A aplicação de uma regra de produção é denominada derivação de uma palavra e é formalmente definida como um par de uma relação. Nota: A aplicação sucessiva de regras de produção (Fecho Transitivo da Relação de Derivação) permite derivar as palavras da linguagem representada pela gramática. E.E.S. Ruiz (USP) LFA 35 / 47

Gramática Relação de derivação Definição Seja G = (V, T, P, S) uma gramática. Uma derivação é um par da relação de derivação denotada por com domínio em (V T ) + e imagem (codomínio) (V T ) a. Um par α, β da relação de derivação é representado na forma infixa como: α β. Esta relação é definida como: a (V T ) + (V T ) próximo slide... E.E.S. Ruiz (USP) LFA 36 / 47

Gramática Relação de derivação: continua... Definição Esta relação é definida como: Para toda produção na forma S β, (S símbolo inicial em G) o seguinte par pertence a relação de derivação S β Para todo par η ρ α σ da relação de derivação, se α β é regra de P, então o seguinte par também pertence à relação de derivação η ρ β σ Vemos que uma derivação é a substituição de uma subpalavra de acordo com uma regra de produção. E.E.S. Ruiz (USP) LFA 37 / 47

Gramática Notem que: Existe uma derivação que é um par de (V T ) + (V T ) Um par da relação de derivação α, β é representado por α β; Esta relação é definida através de regras de produção na forma inicial S β E.E.S. Ruiz (USP) LFA 38 / 47

Gramática Uma coisa é uma coisa, outra coisa é... Derivação A derivação de uma cadeia é conseqüência da aplicação de regras de produção que transformam um símbolo inicial nesta cadeia. A derivação prova que a cadeia pertence a linguagem descrita pela gramática. Regras de produção É a definição da regra de derivação. E.E.S. Ruiz (USP) LFA 39 / 47

Gramática Passos de derivação Os sucessivos passos de derivação são definidos como: Fecho transitivo e reflexivo da relação, ou seja, zero ou mais passos sucessivos de derivação; + Fecho transitivo da relação, ou seja, um ou mais passos sucessivos de derivação; i Exatos i passos de derivações sucessivas, i N. E.E.S. Ruiz (USP) LFA 40 / 47

Gramática Linguagem gerada Definição Seja G = (V, T, P, S) uma gramática. A linguagem gerada por G, denotada por L(G), é composta por todas as palavras de símbolos terminais deriváveis a partir do símbolo inicial S, ou seja, L(G) = {w T S + w} E.E.S. Ruiz (USP) LFA 41 / 47

Gramática Exemplo Suponha G = (V, T, P, S) uma gramática capaz de gerar qualquer número natural válido. Assim G, na qual: V = {N, D}, símbolos não terminais T = {0, 1, 2,..., 9}, símbolos terminais P = {N D, N DN, D 0 1... 9} gera, sintaticamente, N. Perceba que G gera distintamente 0123 e 123 E.E.S. Ruiz (USP) LFA 42 / 47

Gramática Regra Passo da derivação Passo da derivação Regra usada N N DN DN D 2 2N N DN 2DN D 4 24N N D 24D D 3 243 Existe alguma outra derivação para 243? E.E.S. Ruiz (USP) LFA 43 / 47

Gramática Regra Passo da derivação Passo da derivação Regra usada N N DN DN D 2 2N N DN 2DN D 4 24N N D 24D D 3 243 Existe alguma outra derivação para 243? Portanto, indica-se que: 243 + 243 6 243 E.E.S. Ruiz (USP) LFA 43 / 47

Gramática Outro exemplo Seja G = ({S, X, Y, A, B, F }, {a, b}, P, S) uma gramática na qual: P = {S XY, X XaA XbB F Aa aa, Ab ba, AY Ya, Ba ab, Bb bb, BY Yb, Fa af, Fb bf, FY ɛ}. G gera a linguagem cujas palavras são tais que a primeira metade é igual a segunda metade, ou seja, Veja a seguir: {ww w é palavra de {a, b} } E.E.S. Ruiz (USP) LFA 44 / 47

Gramática Regra Passo da derivação para a palavra baba Passo da derivação S XY XaAY XaYa XbBaYa XbaBYa XbaYba FbaYba bfayba bafyba baba Regra usada S XY X XaA AY Ya X XbB Ba ab BY Yb X F Fb bf Fa af FY ɛ E.E.S. Ruiz (USP) LFA 45 / 47

Gramática Exercício em sala: 5 minutos Existe alguma outra derivação para baba? E.E.S. Ruiz (USP) LFA 46 / 47

Palavra final Caros, Teremos mais na próxima aula, inclusive exercícios. Estudem, pois novos conceitos dependerão dos conceitos estudados hoje. E.E.S. Ruiz (USP) LFA 47 / 47