Gramáticas Livres de Contexto



Documentos relacionados
6.3 Equivalência entre Autômatos com Pilha Não-Determinísticos e Gramáticas Livre do Contexto

Exercícios Teóricos Resolvidos

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

Teoria da Computação Linguagens e Expressões Regulares, Autómatos de Estados Finitos

Bases Matemáticas. Aula 2 Métodos de Demonstração. Rodrigo Hausen. v /15

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

Autômatos a pilha. UFRN/DIMAp/DIM0330 Linguagens formais. David Déharbe. david/enseignement/2003.

Conceitos e fórmulas

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

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

9xy yx9 = (9 100+x 10+y) (y 100+x 10+9) = (8 y) (y+1)

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Aplicações de Combinatória e Geometria na Teoria dos Números

Aula 8: Gramáticas Livres de Contexto

Polos Olímpicos de Treinamento. Aula 2. Curso de Teoria dos Números - Nível 2. Divisibilidade II. Prof. Samuel Feitosa

Matemática - UEL Compilada em 18 de Março de Prof. Ulysses Sodré Matemática Essencial:

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

O B. Podemos decompor a pirâmide ABCDE em quatro tetraedros congruentes ao tetraedro BCEO. ABCDE tem volume igual a V = a2.oe

Soluções das Questões de Matemática do Processo Seletivo de Admissão ao Colégio Naval PSACN

a 1 x a n x n = b,

Sistemas de Numerações.

Aula: Equações polinomiais

IMPORTAÇÃO DO CADASTRO DE PESSOAS

TIPO DE PROVA: A. Questão 1. Questão 4. Questão 2. Questão 3. alternativa D. alternativa A. alternativa D. alternativa C

Dicas para a 6 a Lista de Álgebra 1 (Conteúdo: Homomorfismos de Grupos e Teorema do Isomorfismo para grupos) Professor: Igor Lima.

Avaliação 1 - MA Gabarito. Sendo dados os segmentos de medidas a e b, descreva como construir com régua e compasso a medida ab.

Simulado OBM Nível 2

A trigonometria do triângulo retângulo

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior

Teoria dos Números. A Teoria dos Números é a área da matemática que lida com os números inteiros, isto é, com o conjunto

Renata de Freitas e Petrucio Viana. IME, UFF 12 de março de 2015

Respostas de MAIO. A sequência é formada elevando-se ao quadrado os números 2,3,4... e somandolhes 2 em cada caso.

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Capítulo 5. Linguagens livres de contexto

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

a soma dois números anteriores da primeira coluna está na segunda coluna: (3m +1) + (3n +1) = 3(m + n) + 2.

POLINÔMIOS. x 2x 5x 6 por x 1 x seja x x 3

Apostila 03 Linguagens Livres de Contexto

Princípio da Casa dos Pombos I

Linguagens Livres de Contexto e Autômatos a Pilha (Push- Down) Um Modelo de Computação de Força Intermediária. Gramática Livre de Contexto

GAAL /1 - Simulado - 1 Vetores e Produto Escalar

Só Matemática O seu portal matemático FUNÇÕES

Prog A B C A e B A e C B e C A,B e C Nenhum Pref

Linguagens, Gramáticas e Máquinas

13 ÁLGEBRA Uma balança para introduzir os conceitos de Equação do 1ºgrau

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Lista n 0 1 de Exercícios de Teoria da Computação

SISTEMAS LINEARES CONCEITOS

ficha 3 espaços lineares

MD Sequências e Indução Matemática 1

Olimpíadas Portuguesas de Matemática

37ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA PRIMEIRA FASE NÍVEL 1 (6º e 7º anos do Ensino Fundamental) GABARITO

4.2 Produto Vetorial. Orientação sobre uma reta r

QUESTÕES COMENTADAS E RESOLVIDAS

UNIBRATEC Ensino Superior e Técnico em Informática DHD Desenvolvimento em Hardware

INE Fundamentos de Matemática Discreta para a Computação

Estruturas Discretas INF 1631

36ª Olimpíada Brasileira de Matemática GABARITO Segunda Fase

IFSP - EAD - GEOMETRIA TRIÂNGULO RETÂNGULO CONCEITUAÇÃO :

ITA º DIA MATEMÁTICA BERNOULLI COLÉGIO E PRÉ-VESTIBULAR

EXAME NACIONAL DE QUALIFICAÇÃO GABARITO. Questão 1.

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

Vetores. Definição geométrica de vetores

Exercícios 1. Determinar x de modo que a matriz

Resolução da Prova da Escola Naval Matemática Prova Azul

Solução da prova da 1 a fase OBMEP 2008 Nível 1

Algoritmos e Estrutura de Dados III. Árvores

Exercícios Adicionais

Revisão para a Bimestral 8º ano

AV2 - MA (a) De quantos modos diferentes posso empilhá-los de modo que todos os CDs de rock fiquem juntos?

Capítulo 1. x > y ou x < y ou x = y

Função. Definição formal: Considere dois conjuntos: o conjunto X com elementos x e o conjunto Y com elementos y. Isto é:

A Matemática no Vestibular do ITA. Material Complementar: Prova c 2014, Sergio Lima Netto sergioln@smt.ufrj.br

Autómatos Finitos Determinísticos

RESOLUÇÃO Matemática APLICADA FGV Administração

Estabilidade. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Módulo de Geometria Anaĺıtica 1. Paralelismo e Perpendicularismo. 3 a série E.M.

XXVI Olimpíada de Matemática da Unicamp. Instituto de Matemática, Estatística e Computação Científica Universidade Estadual de Campinas

Apostila 03 - Linguagens Livres de Contexto Exercícios

Programa Olímpico de Treinamento. Aula 9. Curso de Combinatória - Nível 2. Tabuleiros. Prof. Bruno Holanda

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

Construção de tabelas verdades

Princípio da Casa dos Pombos II

INSTITUTO TECNOLÓGICO

Circuitos Digitais. Engenharia de Automação e Controle Engenharia Elétrica. São Paulo Prof. José dos Santos Garcia Neto

MATEMÁTICA GEOMETRIA ANALÍTICA I PROF. Diomedes. E2) Sabendo que a distância entre os pontos A e B é igual a 6, calcule a abscissa m do ponto B.

Sistemas de Numeração. Professor: Rogério R. de Vargas INFORMÁTICA 2014/2

ANALÓGICA X DIGITAL. Vamos começar essa aula estabelecendo os dois tipos de eletrônica: Eletrônica Analógica. Eletrônica Digital

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

94 (8,97%) 69 (6,58%) 104 (9,92%) 101 (9,64%) 22 (2,10%) 36 (3,44%) 115 (10,97%) 77 (7,35%) 39 (3,72%) 78 (7,44%) 103 (9,83%)

Aula 10 Triângulo Retângulo

Automata e Linguagens Formais

Manual Verba Conceito de verba. Funcionamento Básico

Nome: Turma: Unidade: 1º SIMULADO - 9º ANO LÓGICA, CONTEÚDO. 45 Questões Dia: 07 de Maio - quinta-feira EDUCANDO PARA SEMPRE

QUESTÃO 1 ALTERNATIVA B

Busca. Pesquisa sequencial

RESOLUÇÃO DAS QUESTÕES DE RACIOCÍNIO LÓGICO-MATEMÁTICO

5 Equacionando os problemas

Transcrição:

Gramáticas Livres de Contexto 25 de novembro de 2011 Definição 1 Uma Regra (ou produção) é um elemento do conjunto V (V Σ). Sendo que V é um conjunto finito de elementos chamados de variáveis e Σ um conjunto disjunto chamado de Al fabeto. Uma regra [A, w] normalmente é escrita como A w. Definição 2 Uma Gramática Livre de Contexto é uma quádrupla (V, Σ, P, S), onde V é um conjunto finito de variáveis, Σ (ou o Alfafeto) é um conjunto finito de símbolos terminais, P é um conjunto finito de regras, e S é um elemento de V chamado de símbolo inicial. Os conjuntos V e Σ são disjuntos. Definição 3 Uma Árvore de Derivação de uma palavra pertencente à uma lingüagem gerada por uma gramática livre de contexto, é uma árvore construída iterativamente da seguinte forma: 1. Inicialize a árvore com a raíz S. 2. Se A x 1 x 2...x n com x i (V Σ) é a regra de derivação aplicada à palavra uav, então adicione x 1,x 2,...,x n como filhos de A na árvore. 3. Se A λ é a única regra de derivação aplicada à palavra uav, então adicione λ como o único filho de A na árvore. Definição 4 Uma Gramática Regular é uma gramática livre de contexto na qual toda regra de derivação tem uma das seguintes formas: 1. A a 2. A ab 3. A λ Exercícios da Seção 0 Exercício 1 - Seja G a gramática S absc A A cad cd. 1

a) Dê uma derivação de ababccddcc. S absc ababscc ababacc ababcadcc ababccddcc b) Construa a árvore de derivação da derivação do exercício anterior. c) Use a notação de conjuntos para definir L(G). L(G) = {(ab) m c n d n c m m,n 0} Exercício 2 - Seja G a gramática S ASB λ A aab λ B bba ba a) Dê uma derivação à esquerda de aabbba. S ASB aabsb aaabbsb aabbsb aabbb aabbba b) Dê uma derivação à direita de abaabbbabbaa. 2

S ASB ASbBa ASbbaa AASBbbaa AASbabbaa AAbabbaa AaAbbabbaa AaaAbbbabbaa Aaabbbabbaa aabaabbbabbaa abaabbbabbaa c) Construa a árvore de derivação para as duas derivações anteriores. d) Use a notação de conjuntos para definir L(G). L(G) = {A n B n,n 0} A = {a n b n,n }0 B = {b n a n,n > 0} Exercício 3 - Seja G a gramática S SAB λ A aa a B bb λ a) Dê uma derivação à esquerda de abbaab. S SAB SABAB ABAB abab 3

abbab abbbab abbab abbaab abbaab abbaabb abbaab b) Dê duas derivações à esquerda de aa. S SAB AB aab aab aa S SAB SABAB ABAB abab aab aab aa c) Construa a árvore de derivação das duas derivações da questão anterior. d) Dê uma expressão regular para L(G). (aa b ) Exercício 4 - Seja DT a árvore de derivação a) Dê uma derivação à esquerda que gera a árvore DT. S AB 4

aab aab aaab aaab aaab b) Dê uma derivação à direita que gera a árvore DT. S AB AAB AAb Aab aaab aaab c) Quantas derivações diferentes podem gerar DT? Existem ao todo 17 diferentes derivações que resultam nesta árvore. Exercício 5 - Dê uma derivação à direita e à esquerda correspondente à cada árvore de derivação abaixo. 5

S AA aa aaaa abaaa abaaa ababaa ababaa ababaa S AA AAAA AAAa AAbAa AAbaa AbAbaa Ababaa ababaa S AA AAAA aaaa abaaa abaaa ababaa ababaa ababaa S AA Aa AAAa AAbAa AAbaa AbAbaa Ababaa ababaa A quarta árvore é igüal à primeira e a terceira é igüal à segunda. Ou ao menos deveria ser, há um erro na imagem apresentada no livro. A segunda árvore está errada e não pode ser gerada pela gramátida dada como exemplo. Exercício 6 - Para cada uma das seguintes gramáticas livres de contexto, use a notação de conjuntos para definir a lingüagem gerada pela gramática. a) S aasb λ B bb b L(G) = {a 2n b m m n 0} b) S asbb A A ca c L(G) = {a i c n b 2i n,i 0} c) S absdc A A cdaba λ L(G) = {(ab) m (cd) n (ba) n (dc) m m > 0,n 0} d) S as ba λ A aa bs L(G) = {(A B) n n 0} 6

A = {a n n 0} B = {b n n > 0} Exercício 7 - Construa uma gramática sobre {a,b,c} cuja lingüagem é {a n b 2n c m n,m > 0}. S AC A aabb λ C cc λ Exercício 8 - Construa uma gramática sobre {a,b,c} cuja lingüagem é {a n b m c 2n+m n,m > 0}. S ascc bac λ A bac λ Exercício 9 - Construa uma gramática sobre {a,b,c} cuja lingüagem é {a n b m c i 0 n+m i}. S ascc bacc C λ A bacc λ C cc λ Exercício 10 - Construa uma gramática sobre {a, b} cuja lingüagem é {a m b n 0 n m 3n}. S asb aasb aaasb λ Exercício 11 - Construa uma gramática sobre {a, b} cuja lingüagem é {a m b i a n i = m+n}. S AB λ A aab λ B bba λ 7

Exercício 12 - Construa uma gramática sobre {a,b} cuja lingüagem é o conjunto de palavras com o mesmo número de as e bs. S asb bsa abs bas λ Exercício 13 - Para cada uma das seguintes gramáticas regulares, dê uma expressão regular para a lingüagem gerada pela gramática. a) S aa A aa ba b a(a b) b b) S aa A aa bb B bb λ aa b b c) S as ba A bb B ab λ a bba d) S as ba λ A aa bs (a ba ba ) Exercício 14 - Construa uma gramática sobre {a,b} cuja lingüagem é o conjunto de palavras de tamanho ímpar e que contém o mesmo símbolo no começo e na posição do meio. 8

S A B A aa a aa b a B bb a bb b a A aa a aa b ba a ba b a B ab a ab b bb a bb b b Exercício 15 - Dê uma gramática regular para o conjunto das palavras sobre {a,b,c} nas quais todos os as precedem bs, que por sua vez precedem cs, sendo possível que não hajam as, bs ou cs. S λ as ab bb cc B bb bc λ C cc λ Exercício 16 - Dê uma gramática regular para a mesma lingüagem do exercício anterior, mas sem a palavra vazia. S as ab bb cc B bb bc λ C cc λ Exercício 17 - Dê uma gramática regular para o conjunto de palavras de tamanho dois ou mais sobre {a,b} nos quais todos os as precedem os bs. S aa bb A aa bb A aa λ B bb B bb λ Exercício 18 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} que contém a subpalavra aa e bb. 9

S aq bq aa bb Q aq bq aa bb A aq B bq Q aq bq bb Q aq bq aa A aq B bq Q aq bq λ Exercício 19 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} nas quais a subpalavra aa aparece ao menos duas vezes. S aq bq aa Q aq bq aa A aq Q aq bq aa A aq Q aq bq λ Exercício 20 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} que não contém aa. S an bs cs λ N bs cs λ Exercício 21 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} que não começa com aaa. S aa bs λ S aa bs λ A bs aa λ A bs λ 10

Exercício 22 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} que não contém aaa. S aa bs λ A bs aa λ A bs λ Exercício 23 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} que não contém aba. S aa bs λ A as ba λ A bs λ Exercício 24 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} que contém a subpalavra aa exatamente uma vez. S aq bq aa Q aq bq aa A aq Q aq bq λ Exercício 25 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} que começa com a, contém exatamente dois bs e termina com cc. S aq Q aq bq cq Q aq bq cq Q aq cq cc C c Exercício 26 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} que contém ab e contém ba. 11

S as bs cs aa bb A as cs bq B aq cs bs Q aq bq bb cq Q aq bq cq aa A bq aq cq B Q bq aq cq aq bq cq λ Exercício 27 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} que contém aa, bb e cc. S as bs cs aa bb cc A ad cs bs B as cs be C as cf bs D ad bd cd bb cc E ae be ce aa cc F af bf cf aa bb A ac ce be A ab cf bf B ad cd bc B af cf ba C ad bd cb C ae be ca A aa ba ca aa f B ab bb cb bb f C ac bc cc cc f A f aq ba ca B f ab bq cb C f ac bc cq Q aq bq cq λ Exercício 28 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} nas quais todo b é seguido por pelo menos um c. S as cs bb B cs Exercício 29 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} com tamanho três. 12

S aa ba ca A ab bb cb B a b c Exercício 30 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} com tamanho menor que três. S aa ba ca λ A a b c λ Exercício 31 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} com tamanho maior que três. S aa ba ca A ab bb cb B ac bc cc C ad bd cd D ad bd cd λ Exercício 32 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} nas quais o número de as é divisível por três. S aa bs λ A ab ba B as bb Exercício 33 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} nas quais o número total de bs e cs é três. S as ba ca A aa bb cb B ab bc cc C ac λ 13

Exercício 34 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} nas quais todo a é seguido ou precedido por b. S ab ba λ A as ba λ B ba Exercício 35 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} de tamanho ímpar e que contém bb. S ai bi bb I as bs bb B bi B bp I af bf F ai bi λ P ax bx λ X ap bp Exercício 36 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} de tamanho par e que contém exatamente um a. S ap bi ci I ai bs cs P bx cx λ X bp cp I bf cf F bi ci λ Exercício 37 - Dê uma gramática regular para o conjunto de palavras sobre {a,b,c} com um número ímpar de ocorrências de ab. S aa bs cs A bi bs cs I aa bi ci λ A bs bi ci λ 14

Exercício 38 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} com tamanho ímpar e exatamente dois bs. S ai bb i I as bb p B i B p P I P f ap bp f ai bi f ai bi f ap bp f ax λ X ap f I f af F ai f λ Exercício 39 - Dê uma gramática regular para o conjunto de palavras sobre {a,b} com um número par de as ou ímpar de bs. S ab ba λ A ac bs λ B as bc C aa bb λ Exercício 40 - A gramática abaixo gera (b ab ab 8 ) +, o conjunto de todas as palavras com um número par e positivo de as. Prove. S AA A AAA ba Ab a À medida que fazemos qualquer derivação nesta gramática, o número total de variáveis As e terminais as que conseguimos é sempre par. Quando temos somente S, temos zero As, e portanto um número par. Derivando S AA, passamos a ter dois As, e portanto, um número par. A derivação A AAA remove um A existente e coloca mais três. Logo, somam-se dois As quando fazemos isso e se o número de As era par, ele continua par. A mesma propriedade se mantém para A ba e A Ab, pois o valor total é o mesmo. E por fim, A a somente troca a variável A pelo terminal a, mantendo o número par do total de variáveis A e terminais a. Logo após a primeira derivação, a única variável que podemos encontrar é A, portanto, só precisamos levar em conta ela ao analizar as derivações possíveis. Qualquer A pode gerar qualquer quantidade de bs à sua esquerda ou direita de modo recursivo. Mas a recursão só encerra quando o A gera um a por meio de A a. Portanto, 15

confirmamos a propriedade de que esta gramática sempre gerará uma quantidade par de as. E que podemos ter qualquer quantidade e bs intercalando os as. Resta demonstrar que o número de as não pode ser nulo. Para que isso ocorrêsse, precisaríamos ter uma derivação na qual não geramos nenhum A. Mas isso é impossível, pois a única derivação inicial possível é S AA. Portanto, encerramos a demonstração de tais propriedades das palavras geradas por essa gramática. Exercício 41 - Prove que a gramática abaixo gera a lingüagem {a n b m c m d 2n n 0,m > 0}. S asdd A A bac bc Primeiro demonstraremos que quando todos os símbolos aparecem em uma palavra, eles sempre aparecem na ordem especificada. A derivação S asdd é a única na qual a variável inicial aparece à direita. Portanto, isso garante que quando temos todos os símbolos, os as aparecem primeiro e os ds por último. Como S A e A bac e A bc, não existindo outras derivações de A, garantimos que entre os as e os ds sempre encontramos um ou mais bs e cs nesta ordem. Verifica-se que geramos sempre o dobro de ds que de as pela derivação S asdd, a única que gera tais terminais. Verifica-se que temos sempre um número igüal de bs e cs pela derivação A bac e A bc, as únicas que geram tais terminais. Portanto, para cada b gerado, sempre geramos um c e vice-versa. Podemos ter um número nulo de as e ds. Basta optarmos como derivação inicial S A. Fazendo isso, acabamos com as variáveis S e isso faz com que nenhum a ou d possa ser derivado. Entretanto, sempre temos ao menos um b e c. Para que a recursividade das derivações se encerrem, é preciso que em algum momento façamos S A, pois é a única forma de encerrar a recursão de S. Uma vez tendo derivado A, a única derivação não-recursiva possível é A bc. Não há outra. Portanto, sempre teremos ao menos um b e c. Demonstramos assim todas as propriedades pedidas da lingüagem gerada pela gramática. Exercício 42 - Seja G a gramática abaixo, prove que L(G) = {a n b m 0 n < m}. S asb B B bb b Todo B gera um ou mais bs, não sendo capaz de gerar outros terminais. Isso ocorre por que todo B é derivado como B bb, que pode gerar potencialmente infinitos bs graças à recursão ou é derivado como B b, que gera um b e é também a única opção de encerrar a recursão da primeira derivação. Como S asb, temos que as palavras geradas pela lingüagem podem sempre começar com as e terminar com bs. A outra derivação possível para S é S B, que é uma derivação obrigatória para toda palavra, pois é a única forma de encerrar a recursão de S. Quando ela é usada, ou não temos qualquer terminal gerado, ou temos um número igüal de as e bs, com os bs depois dos as. Como B pode gerar qualquer número positivo de bs (é equivalente à b +, temos que quando finalmente usamos S B, que o número de bs será sempre maior que o de as, pois B gerará 16

no mínimo um b quando tínhamos um número igüal dos dois símbolos. E depois disso nenhum a poderá ser gerado. Por fim, o número de as pode ser nulo, bastando aplicar como derivação inicial S B. Mas o número de bs nunca é nulo, pois é obrigatório derivarmos um B para qualquer palavra e isso sempre nos trás ao menos um b. Exercício 43 - Seja G a gramática S asaa B B bbbdd C C bd. a) O que é L(G)? L(G) = {a n b m d m a 2n n 0,m > 0,m é ímpar} b) Prove. A ordem dos símbolos é garantida, pois a única forma de gerar as é por meio de S asaa, o que faz com que se existirem as, eles sempre estarão no começo e no fim. Por sua vez, a única outra derivação possível de S é S B, e B só pode gerar bs e ds nesta ordem por meio de B bbbdd e B C bd. Podem existir zero ou mais as. Nenhum a é derivado se a derivação inicial for S B. O número de as no fim é sempre o dobro do número do começo. Isso é válido quando não temos as, que é o caso inicial (0 = 0 2), e permanece válido para toda derivação S asaa, que faz com que para cada a derivado no começo, derivemos o dobro no fim. O menor número possível de bs e ds é um, pois a única derivação que não gera variáveis, somente terminais é C bd. O que significa que obrigadoriamente um de cada um destes terminais deve ser gerado. A menor palavra gerada então, é obtida por meio de S B C bd. O número de bs e ds é sempre igüal, pois as únicas derivações que os geram é B bbbdd e C bd. As duas geram sempre o mesmo número de bs e ds. Por fim, este número é sempre ímpar, pois uma vez que derivamos um único B (o que sempre ocorre em toda palavra), teremos sempre um número par de bs e ds enqüanto usamos a derivação B bbbdd recursivamente. Mas uma vez que formos encerrar a recursão, acabaremos usando B C bd, adicionando um de cada símbolo. Como até este ponto tínhamos um número par de cada um dos símbolos, quando enfim adicionamos mais um, passamos a ter uma quantidade ímpar. Exercício 44 - Seja G a gramática S asbs as λ. Prove que todo prefixo de um palavra em L(G) tem ao menos tantos as como bs. Isso equivale a demonstrar que o número de as nunca será menor que o de bs. A derivação S asbs gera o mesmo número de as e bs. A derivação S as gera um número maior de as que de bs. E a derivação S λ não altera o número de as e bs. Portanto, nunca teremos menos as que bs. 17

Exercício 45 - Usando a definição de Pascal do Apêndice III do livro, construa uma derivação de xly à partir de < variavel >. < variavel > < variavel inteira > < identificador variavel > < identificador > < letra > {< letra ou digito >} < letra >< letra > {< letra ou digito >} < letra >< letra >< letra > x < letra >< letra > xl < letra > xly Exercício 46 - Usando a definição de Pascal do Apêndice III do livro, construa uma derivação de (xly) à partir de < expressao >. < expressao > < expressao simples > < termo > < fator > (< expressao >) (< termo >) (< fator >) (< variavel >) (< variavel inteira >) (< identificador variavel) > (< identificador >) (< letra > {< letra ou digito >}) (< letra >< letra > {< letra ou digito >}) (< letra >< letra >< letra >) (x < letra >< letra >) (xl < letra >) (xly) Exercício 47 - Usando a definição de Pascal do Apêndice III do livro, construa uma derivação de (x y 5) à partir de < expressao >. < expressao > < expressao simples > < termo > 18

< fator > (< expressao >) (< expressao simples >) (< termo >) (< termo >< operador multiplicacao >< fator >) (< termo >< operador multiplicacao >< fator >< operador multiplicacao >< fator >) (< fator >< operador multiplicacao >< fator >< operador multiplicacao >< fator >) (< fator > < fator >< operador multiplicacao >< fator >) (< fator > < fator > < fator >) (< variavel > < fator > < fator >) (< variavel > < variavel > < fator >) (< variavel > < variavel > < unsigned constant >) (< variavel inteira > < variavel > < unsigned constant >) (< identificador variavel > < variavel > < unsigned constant >) (< identificador > < variavel > < unsigned constant >) (< letra > < variavel > < unsigned constant >) (x < variavel > < unsigned constant >) (x < variavel inteira > < unsigned constant >) (x < identificador variavel > < unsigned constant >) (x < identificador > < unsigned constant >) (x < letra > < unsigned constant >) (x y < unsigned number >) (x y < unsigned number >) (x y < unsigned integer >) (x y < digito >) (x y 5) Exercício 48 - Usando a definição de Pascal do Apêndice III do livro, construa uma derivação de (x+y (12+z)) à partir de < expressao >. < expressao > < expressao simples > < termo > < fator > (< expressao >) (< expressao simples >) (< expressao simples >< operador soma >< termo >) (< termo >< operador soma >< termo >) (< fator >< operador soma >< termo >) (< variavel >< operador soma >< termo >) (< variavel inteira >< operador soma >< termo >) (< identificador variavel >< operador soma >< termo >) (< identificador >< operador soma >< termo >) 19

(< letra >< operador soma >< termo >) (x < operador soma >< termo >) (x+ < termo >) (x+ < termo >< operador multiplicacao >< fator >) (x+ < fator >< operador multiplicacao >< fator >) (x+ < variavel >< operador multiplicacao >< fator >) (x+ < variavel inteira >< operador multiplicacao >< fator >) (x+ < identificador variavel >< operador multiplicacao >< fator >) (x+ < identificador >< operador multiplicacao >< fator >) (x+ < letra >< operador multiplicacao >< fator >) (x+y < operador multiplicacao >< fator >) (x+y < fator >) (x+y (< expressao >)) (x+y (< expressao simples >)) (x+y (< expressao simples >< operador soma >< termo >)) (x+y (< termo >< operador soma >< termo >)) (x+y (< fator >< operador soma >< termo >)) (x+y (< unsigned constant >< operador soma >< termo >)) (x+y (< unsigned constant >< operador soma >< termo >)) (x+y (< unsigned number >< operador soma >< termo >)) (x+y (< unsigned integer >< operador soma >< termo >)) (x+y (< digito >< digitos >< operador soma >< termo >)) (x+y (< digito >< digito >< operador soma >< termo >)) (x+y (1 < digito >< operador soma >< termo >)) (x+y (12 < operador soma >< termo >)) (x+y (12+ < termo >)) (x+y (12+ < fator >)) (x+y (12+ < variavel >)) (x+y (12+ < variavel inteira >)) (x+y (12+ < identificador >)) (x+y (12+ < letra >)) (x+y (12+z)) Exercício 49 - Seja G 1 e G 2 as seguintes gramáticas: G 1 : S aabb A aa a B bb b G 2 : S A A B B A A A a B B B b a) Para cada variável X, mostre que o lado direito de cada regra de G 1 é derivável de sua variável correspondente X usando as regras de G 2. Use isso para concluir que L(G 1 ) L(G 2 ). 20

Pela definição b é derivável de B. A outra derivação de B é B bb. Mas bb pode ser derivável de B fazendo B B B bb. Como para a outra derivação de B, já demonstramos ser equivalente à uma derivação de B, temos então que bb é equivalente à bb. Portanto, tudo que pode ser derivado de B, pode ser derivado de B. O mesmo raciocínio demonstra que A e A são equivalentes. Portanto, S A A B B é equivalente à S AABB. Basta continuar derivando AABB aabb aabb, que verificamos que a última regra que faltava analizar das duas gramáticas são equivalentes. Sendo assim, L(G 1 ) = L(G 2 ), e portanto, L(G 1 ) L(G 2 ). b) Prove que L(G 1 ) = L(G 2 ). Vide resposta anterior. Exercício 50 - Uma gramática linear direita é uma gramática livre de contexto cujas regras tem uma das seguintes formas: 1. A w 2. A wb 3. A λ, onde w Σ. Prove que uma lingüagem L é gerada por uma gramática linear direita se, e somente se, L é gerada por uma gramática regular. Se w = 0, o primeiro tipo de regra vira igüal ao terceiro e ambos são regras de gramáticas regulares. Já a regra A B pode ser substituída por A x, para todo x tal que B x. Portanto, se as outras regras forem compatíveis com a de uma gramática regular, esta regra também será. Se w = 1, então não há diferença alguma entre a regra de uma gramática linear direita e uma gramática livre de contexto. Se w > 1, assumindo que para w = aw,a Σ,w Σ e que as regras do tipo A w, A w B temos algo equivalente às regras de uma gramática regular, podeos escrever A w e A wb de modo que também seja equivalente à uma gramática regular. Para A w, basta reescrever como A w A e A a. Para A wb, basta reescrever como A w B, B ab. Com isso, demonstramos que toda gramática linear direita pode ser reduzida à uma gramática regular. Temos também que toda gramática regular é também uma gramática linear direita. Com isso, demonstramos que os dois tipos de gramática são equivalentes. Exercício 51 - Tente construir uma gramática regular que gere a lingüagem {a n b n n 0}. Explique por que nenhuma das suas tentativas foi bem-sucedida. Nem vou tentar. Essa não é uma lingüagem regular. É preciso memorizar de alguma forma o número de as escrito para poder escrever a quantidade de bs. Isso não é possível com gramáticas regulares, pois não há como memorizar isso de forma alguma. Exercício 52 - Tente construir uma gramática livre de contexto que gere a lingüagem {a n b n c n n 0}. Explique por que nenhuma das suas tentativas foi bem-sucedida. Nem vou tentar. Não é possível, pois tendo somente um símbolo do lado esquerdo de uma regra, não é possível garantir uma quantia igüal de três símbolos diferentes em uma lingüagem. A lingüagem especificada não é livre de contexto. 21