Gramáticas e Linguagens Independentes de Contexto

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

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

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

Conceitos básicos de Teoria da Computação

Gramáticas e Linguagens independentes de contexto

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

As linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.

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

Aula 8: Gramáticas Livres de Contexto

Fundamentos da Teoria da Computação

LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

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

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

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

IBM1088 Linguagens Formais e Teoria da

Linguagens Formais - Preliminares

Expressões Regulares e Gramáticas Regulares

Autómatos de Pilha e Linguagens Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

LINGUAGENS FORMAIS E AUTÔMATOS

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

Faculdade de Computação

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

Linguagens Formais e Problemas de Decisão

Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma

Fundamentos da Teoria da Computação

Propriedades das Linguagens Livres do Contexto

Histórico e motivação

TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO

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

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

Apostila 03 - Linguagens Livres de Contexto Exercícios

Capítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268

Autómatos de pilha e GIC

Universidade Federal do Rio de Janeiro Departamento de Ciência da Computação

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

COMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang

Capítulo 1: Alfabetos, cadeias, linguagens

Alfabeto, Cadeias, Operações e Linguagens

Vamos estudar neste capítulo algumas características da classe das linguagens regulares sobre um alfabeto. Entre elas salientámos:

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

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

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

Linguagens Livres de Contexto

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 3: Gramáticas

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)

Linguagens Livres de Contexto

Draft-v Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra

Lista 6. Bases Matemáticas. Funções I. 1 Dados A e B conjuntos, defina rigorosamente o conceito de função de A em B.

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

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

Gramática. Gramática. Gramática

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

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

Linguagens Livres de Contexto

Gramáticas Livres de Contexto

Computação Fiável Indução - exercícios básicos

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

Aula 2, 2014/2 Sintaxe da Lógica dos Conectivos

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

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

Expressões regulares

AFNs, Operações Regulares e Expressões Regulares

Gramática Livre de Contexto

Prova 1 de INF1626 Linguagens Formais e Autômatos

Compiladores Aula 4. Celso Olivete Júnior.

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

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

Definições Exemplos de gramáticas

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

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 Σ.

Já falamos que, na Matemática, tudo se baseia em axiomas. Já estudamos os números inteiros partindo dos seus axiomas.

Problemas decidíveis para LICs

Linguagens Formais e Autômatos (LFA)

Transformações úteis para GLC: (1) eliminação de produções nulas; (2) eliminação de produções unitárias; (3) Eliminação de símbolos estéreis e

Aulas 10 e 11 / 18 e 20 de abril

Elementos de Matemática Finita

ALGORITMO DE EUCLIDES

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

Gramá3ca Livre de Contexto (GLC)

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

Transcrição:

Gramáticas e Linguagens Independentes de Contexto 6.1 Responde às uestões seguintes considerando a gramática independente de contexto G = (V, {a, b}, P, R), onde o conjunto de regras P é: R XRX S S at b bt a T XT X X X a b (a) Quais são as variáveis e os símbolos terminais de G? Qual é a variável inicial? (b) Dá três exemplos de palavras de L(G). (c) Dá três exemplos de palavras ue não pertençam a L(G). (d) Verdadeiro ou Falso? Justifica. 1. T aba. 2. T aba. 3. T T. 4. T T. 5. XXX aba. 6. X aba. 7. T XX. 8. T XXX. 9. S. 10. R ab 11. R aba (e) Descreve em português a linguagem L(G). 6.2 Seja G a gramática independente de contexto, descrita por G = (V, Σ, P, S), onde o alfabeto é Σ = {0, 1}, os símbolos não terminais são V = {S}, o símbolo inicial é S e as produções são dadas por P = {S, S 0S, S 1S}. (a) Obtém uma derivação para as seguintes seuências: 001, 101000 e 111000. (b) Mostra ue a linguagem gerada por G é o conjunto de todas as seuências finitas de 0s e 1s, i.e., {0, 1}. 6.3 Justifica a afirmação: a linguagem {0 n 1 2n : n 0} do alfabeto {0, 1} não é regular mas é independente de contexto 6.4 Considera a seguinte gramática independente de contexto G = (V, Σ, R, E), onde V = {E, N} e Σ = {0, 1, +,, (, )}. As regras da gramática são: E E + E E E (E) N N 0 1 Determina as derivações e árvores associadas a cada uma das seguintes palavras: (a) 1 (b) 1 + 0 (c) 1 + 0 + 1 (d) (1 1) + 0 (e) 1 1 + 1 (f) 1 (1 + 1) 6.5 Constrói gramáticas independentes de contexto ue reconheçam as seguintes linguagens. O alfabeto considerado é Σ = {0, 1}.

(a) O conjunto vazio (b) { w w contém pelo menos três 1s } (c) { w w começa e termina pelo mesmo símbolo } (d) { w o comprimento de w é ímpar } (e) { w o comprimento de w é ímpar e o símbolo do meio é 0 } (f) { w w contém mais 1s ue 0s } (g) { w w = w R } (h) { w w tem duas vezes mais 0s do ue 1s } (i) O complemento da linguagem { 0 n 1 n n 0 } (j) {w {0, 1} 3 divide a diferença entre o número de 0 s e 1 s em w } (k) { 0 i 1 j 0 i i 0, j 0 } (l) { 0 i 1 i+j 0 j i 0, j 0 } 6.6 Mostra ue a seguinte gramática independente de contexto G = ({S}, {a, b}, P, S) com as regras: gera a linguagem dos palíndromos em {a, b}. S asa bsb a b 6.7 Escreve gramáticas independentes de contexto para as linguagens seguintes. Indica se são ao não regulares. (a) as fórmulas do cálculo proposicional: símbolos proposicionais: p,, r, s conectivas lógicas:,,, parêntesis: ( e ) (b) números decimais em notação científica: por exemplo 3.14, 15.21,.13E2, 23E 5 (c) as expressões regulares em {a, b} símbolos básicos: a, b, e operadores +, (concatenação) e parêntesis: ( e ) 6.8 Seja G = ({S}, {a, b, c}, {S aas, S ccs, S bsaa, S b}, S) uma gramática independente de contexto. Denote-se por V e Σ os conjuntos de variáveis e terminais de G, respectivamente. (a) Determina D n = {w (V Σ) S n G w} para n = 1, 2, 3, 4. (b) Determina as árvores de derivação para aaccbaa e aabccbaabaaaa. (c) Mostra ue abaac / L(G). (d) Descreve informalmente a linguagem gerada pela gramática. (e) Mostra por indução sobre o número de passos da derivação ue uaisuer ue sejam n > 0 e x (V Σ), se S n G x então k 0 w ({b}a)k y A x = ywba 2k x = ywsa 2k em ue A = {aa, cc}. Conclui ue L(G) {ywba 2k y A, w ({b}a) k, k 0} = {xa 2(k 1) x (A{b}) k, k > 0}. (f) Mostra ue L(G) {xa 2(k 1) x (A{b}) k, k > 0} em ue A = {aa, cc}, mostrando ue S w /2 G ws, ualuer ue seja w A; (Por indução sobre w ) concluindo ue S 1+ w /2 G wb, ualuer ue seja w A; e concluindo ue S 1+ w /2 G wbsaa, ualuer ue seja w A;

para mostrar ue para todo k > 0, se w (A{b}) k {a} 2(k 1) S G w então w (A{b}) k+1 {a} 2k S G w; e concluir L(G) {xa 2(k 1) x (A{b}) k, k > 0}. (g) Descreve formalmente L(G) 6.9 Escreve uma gramática independente de contexto ue gere a linguagem de alfabeto Σ = {0, 1} constituída pelas palavras em ue o número de 1 s não excede o número de 0 s. Demonstra ue a gramática obtida gera a linguagem. 6.10 Escreve uma gramática independente de contexto ue gera a linguagem de alfabeto Σ = {a, b, c} constituída pelas palavras da forma a n b m c l em ue l = n. Demonstra ue a gramática obtida gera a linguagem. Gramáticas ambíguas 6.11 Considera a seguinte gramática G = ({S}, {S asbs bsas }, {a, b}, S) (a) Mostra ue L(G) é o conjunto de palavras de {a, b} com o mesmo número de a s e b s. (b) Mostra ue G é ambígua. (c) Escreve uma gramática não ambígua euivalente a G 6.12 Considera a gramática G = ({S, X}, {S X Sa, X a b}, {a, b}, S) Mostra ue não é ambígua e descreve a linguagem gerada. 6.13 Considera a seguinte gramática para expressões aritméticas em notação prefixa: ({E}, {E +EE EE EE x y}, {+,,, x, y}, E) (a) Encontra derivações pela esuerda e pela direita e uma árvore de derivação para + xyxy. (b) Mostra ue a gramática não é ambígua. 6.14 Considera a seguinte gramática ({S, A, B}, {S A0B, A 1A, B 0B 1B }, {0, 1}, S) (a) Mostra ue a gramática não é ambígua. (b) Descreve a linguagem gerada pela gramática (c) Encontra uma gramática ambígua euivalente e justifica a sua ambiguidade 6.15 Mostra ue a seguinte gramática de alfabeto {,, p, (, )} é ambígua e encontra uma euivalente ue o não seja. S S S S S (S) p 6.16 Mostra ue a seguinte gramática de alfabeto {0, 1} é ambígua e encontra uma euivalente ue o não seja. S AB1 A A11A B B0B B1B

Resolução de exercícios escolhidos 6.9 Seja G a gramática com as seguintes regras: S 0S1S 1S0S 0S Temos ue mostrar ue, sendo L a linguagem formada pelas palavras em ue o número de 1 s não excede o número de 0 s, se tem: L(G) L e L L(G). (L(G) L): A única palavra de L(G) ue pode ser derivada com um só passo é ue pertence trivialmente a L. Seja então r uma palavra de L(G), portanto existe uma derivação de r em G com n passos (n = 1). Suponhamos ue para todas as palavras r com uma derivação mais curta ue a de r se tem r L. Como existe uma derivação de r em G (e estamos a supor ue tem mais do ue um passo), esta tem ue ter uma das seguintes formas: S 0S1S r S 1S0S r S 0S r Como o tamanho da derivação de r é n o tamanho das derivações das palavras ue correspondem a cada um dos S ue ocorrem no primeiro passo de derivação de r têm ue ter derivações menores ue n. Portanto, pela hipótese de indução, são palavras cujo número de 1 s não excede o número de 0 s. Então em ualuer dos três casos é trivial concluir ue a palavra r goza dessa mesma propriedade e portanto r L. (L L(G)): Provemos ue ualuer palavra r ue contenha um número de 1 s ue não exceda o número de 0 s pode ser derivada em G, ou seja r L(G), por indução no comprimento de r. Se r = 0, então r = e portanto pode ser trivialmente derivada em G. Seja então r L com r = n e suponhamos ue ualuer palavra r com comprimento menor ue n se tem r L r L(G). Suponhamos ue o primeiro caracter de r é um 0, se r é composta somente por 0 s então r temos ue S 0S e como 0 n 1 L por hipótese de indução existe uma derivação para 0 n 1 e portanto existe uma derivação S 0S r logo r L(G). Se pelo contrário existir algum 1 em r então r = 0r 1r para algum r, r L porue: se o último caracter de r é um 1 então r = 0r 1 e r L; se o último caracter é um 0 então tomemos o 1 mais à esuerda em r: r = 0r 01r 0 0 se r 0, r 0 0 L está o problema resolvido... se não é porue r 0 L e r 0 0 L (pois r 0 só contém 0 s) e r 0 contém pelo menos mais um 0 do ue 1 s (porue, por hipótese r 0 0 L e r L). Então tomamos o 1 seguinte: r = 0r 11r 1 0 se r 1, r 1 L o problema está resolvido senão é porue se tem r 1 L e r 1 L (porue r 0 tinha pelo menos um 0 mais ue ue 1 s e r 1 só contém mais um 1 ue r ), notando ue r 1 continua a ter de conter pelo menos mais um 0 do ue 1 s prosseguimos o processo para o 1 seguinte.... Temos garantia ue o processo termina com sucesso pois r termina com um 0 pelo ue para o último 1 (o mais à direita) não é possível ter com r n L e r n L. r = 0r n1r n0

Portanto r = 0r 1r como r, r L. Como r, r < n pela hipótese de indução r, r L(G) logo r L(G). O caso de r ter como primeiro caracter um 1 é inteiramente análogo ao anterior. 6.10 Uma gramática ue gera a linguagem é a gramática com as seguintes regras: S asc A C A aa ab C Cc Bc B bb Seja L a linguagem pedida, temos ue mostrar ue L = L(G) ou seja ue L L(G) L(G) L. (L(G) L) : Vamos mostrar o seguinte: B w então w é da forma b m com m N. Se w for derivável num só passo então w =. Se a derivação de w tiver m passos w é trivialmente da forma b m 1. C w então w é da forma b m c l com m, l N, l > 0. Se na derivação de w intervem somente uma vez a regra C então w tem ue ser da forma b m c. Se na derivação intervierem l regras C então w é trivialmente da forma b m c l. A w então w é da forma a n b m com n, m N, n > 0. Inteiramente análogo à anterior. S w então w é da forma a n b m c l com n, m, l N, n = l. Se na derivação de w só intervem uma vez a regra S então w é da forma a n b m ou b m c l. Como cada derivação usando a regra S asc acrescenta um a e um c, se S w então w tem a forma pretendida. (L L(G)) : Seja w L então w é da forma a n b m c l com n = l logo ou n > l ou n < l. Suponhamos ue n > l, seja n = l + k então S l a l Ac l k a l a k Bc k m a n b m c l logo w L(G). Se n < l a demonstração é inteiramente análoga. 6.15 Para mostrar ue a gramática é ambígua basta encontrar uma palavra com duas árvores de derivação distintas, p.e para : S 8 8888888 S S 8 8888888 S S S S S S S Uma gramática não ambígua, euivalente à anterior é: S P S P S P P (S) p

6.16 Para mostrar ue esta gramática é ambígua basta exibir duas árvores de derivação diferentes para uma mesma palavra, p.e 11111: S A B 1 A 1 1 A A 1 1 A S 7 7777777 A B 1 B 1 B B 1 B B 1 B B 1 B Uma gramática euivalente à anterior, mas não ambígua é: S 1S 0S 1 de derivação y esuerda. {,,,} das palavras com dois tipos de parêntesis bem casados. Definimos PAREN 2 indutivamente como o menor conjunto tal ue: PAREN 2 e x PAREN 2 PAREN 2 / PAREN 2. gere PAREN 2. esuerda e uma derivação pela direita para a palavra. {a,b,+,, }, S})