LINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO

Documentos relacionados
Linguagens Livres de Contexto

Gramáticas Livres de Contexto Parte 1

Linguagens Formais e Autômatos

Gramáticas Livres de Contexto

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

Linguagens Livres de Contexto

Linguagens Formais e Autômatos P. Blauth Menezes

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky

Capítulo II Gramáticas

Linguagens, Reconhecedores e Gramáticas

Compiladores Aula 4. Celso Olivete Júnior.

Capítulo II Gramáticas

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

Linguagens Regulares. Prof. Daniel Oliveira

Gramática Livre de Contexto

Análise Sintática. Fabiano Baldo

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

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

Linguagens Formais e Autômatos P. Blauth Menezes

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

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

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

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 - Preliminares

Aula 8: Gramáticas Livres de Contexto

Hierarquia de Chomsky Exemplos de gramáticas

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

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

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

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

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

IV Gramáticas Livres de Contexto

Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação

INE5317 Linguagens Formais e Compiladores AULA 8: Linguagens Livres de Contexto

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

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

Gramá3ca Livre de Contexto (GLC)

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

Automata e Linguagens Formais

Linguagens Formais e Autômatos P. Blauth Menezes

Python e sua sintaxe LNCC UFRJ

Definições Exemplos de gramáticas

Linguagens Livres de Contexto

Análise Sintática Introdução

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

Gramática Livre de Contexto

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

Gramáticas e Linguagens independentes de contexto

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

Aula de 28/10/2013. sticas; Implementação. em Ruby

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

Se o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.

Gramáticas e Linguagens Independentes de Contexto

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

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

INE5317 Linguagens Formais e Compiladores AULA 5: Autômatos Finitos

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

Expressões Regulares e Gramáticas Regulares

Linguagens Livres do Contexto. Adaptado de H. Brandão

SCC 205 Teoria da Computação e Linguagens Formais

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

Autômatos com Pilha: Reconhecedores de LLCs

Análise Sintática LL(1)

Folha 2 Autómatos e respectivas linguagens

Apostila 05 Assunto: Linguagens dos tipos 0 e 1

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

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

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

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

Compiladores - Análise Ascendente

Compiladores - Análise Ascendente

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

Linguagens e Gramáticas Livres de Contexto

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

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

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

AF Não-determinísticos Equivalência entre AFDN e AFD Equivalência entre AF e GR (H&U, 1969 e 1979), (H;M;U, 2001) e (Menezes, 2002) 1

IBM1088 Linguagens Formais e Teoria da

Os movimentos do reconhecedor correspondem ao uso de derivações mais à esquerda; A árvore de sintaxe é montada de cima para baixo (da raiz em direção

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

Prof. Adriano Maranhão COMPILADORES

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

Linguagens e Gramáticas. Linguagens Formais Hierarquia de Chomsky

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

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

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

Alfabeto, Cadeias, Operações e Linguagens

Definições Hierarquia de Chomsky Exemplos de gramáticas

Hierarquia de Chomsky e sua relação com os autômatos

V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC

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

SCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha

Universidade Federal de Alfenas

INE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:

Automata e Linguagens Formais

Transcrição:

LINGUAGEM LIVRE DE CONTEXTO As Linguagens Livres de Contexto é um reconhecedor de linguagens, capaz de aceitar palavras corretas (cadeia, sentenças) da linguagem. Por exemplo, os autômatos. Um gerador de linguagens é um dispositivo capaz de sintetizar todas as palavras de uma linguagem, é o caso das gramáticas. Autômatos Finito e Expressões Regulares definem Linguagens Regulares. Linguagem Regulares não permitem construções contendo alinhamentos sintáticos. Assim foi adicionado a possibilidade de alinhamentos às Linguagens Regulares (LRs), obtendo outra classe de linguagens, as Linguagens Livres de Contexto. A classe das LLCs é de fundamental importância para o estudo da informática, pois: a) Compreende um universo mais amplo que as LR, permitindo tratar questões como: Parênteses Balanceados, Construções Bloco-Estruturadas Outras estruturas próprias de linguagens como C, Pascal, etc. b) Os algoritmos que as implementam são simples e possuem uma boa eficiência. c) Aplicações: analisadores sintáticos, tradutores de linguagens e processadores de texto etc. O estudo das LLC é desenvolvido a partir de um formalismo gerador (gramática) e um formalismo operacional ou reconhecedor (autômato) como segue: a) Gramáticas Livres de Contexto: São gramáticas onde as regras de produção são definidas de forma mais livre do que nas gramáticas regulares, b) Autômato de Pilha: Possui a estrutura básica de um AFD ao qual é associado uma memória auxiliar na forma de pilha e a facilidade de não-determinismo. GRAMÁTICA LIVRE DE CONTEXTO As Linguagens Livres Contexto são desenvolvidas a partir das Gramáticas Livres de Contexto (GLC). A GLC é um tipo mais complexo de geradores de linguagem, as quais materializam um completo entendimento do procedimento de construção das palavras pertencentes à linguagem. A GLC é aplicada em compiladores e conversores de documentos. Exemplo: GLC para a linguagem a n b n Regras 1- S λ 2- S a S b Exemplo de funcionamento para a palavra aabb S a S b (aplicamos a regra 2) Resultado: aabb aa S bb (aplicamos em S a regra 2) aa λ bb (aplicamos em S a regra 1) Definição: 1

Há quatro conceitos importantes em uma descrição de uma gramática: Um conjunto finito de símbolos, chamados terminais ou símbolos terminais; Conjunto finito de variáveis, chamados de categorias sintáticas ou não terminais. Uma das variáveis representa a linguagem que está sendo definida, chamada símbolo de início. Existe um conjunto finito de produções ou regras que representam a definição recursiva de uma linguagem. Cada produção consiste em: Uma variável que está sendo (parcialmente) definida pela produção. Essa variável é chamada de cabeça (head) da produção O símbolo de produção, Uma palavra de zero ou mais terminais e variáveis. Esta parte é chamada de corpo. O lado esquerdo das produções possui exatamente uma variável. Definição Formal Uma Gramática Livre de Contexto (GLC) G é uma quádrupla (V, T, P, S), onde: Exemplo V conjunto finito de variáveis ou símbolo não-terminais T (conjunto de terminais) é um subconjunto de V P (conjunto de regras (ou produções)) é um subconjunto finito de (V -T) x V* S (símbolo inicial (ou variável de início)) é um elemento de V Definir a gramática que gera palíndromos. Um Palíndromo é uma cadeia lido da mesma forma, da direita para a esquerda e da esquerda para a direita. Exemplo1: 0110, 11011, 000, ε são palíndromos Exemplo2: 011, 0101, 1010 não são palíndromos. Gramática G=({P, {0, 1}, A, S) Onde A é dada por: 1. S λ Redução do espaço utilizando a seguinte notação : 2. S 0 ou S λ 0 1 0 S 0 1 S 1 3. S 1 4. S 0 S 0 5. S 1 S 1 Gerar a palavra w = 00100100 Derivações S 0S0 00S00 001S100 0010S0100 0010 λ 0100 Aplicando as regras de produção em ordens diferentes, uma gramática pode gerar muitas cadeias. O conjunto de todas tais cadeias é a linguagem definida ou gerada pela gramática. Existe duas formas de derivação : derivação Mais à Esquerda e Mais à Direita 2

Exemplo: Linguagem Livre de Contexto A linguagem gerada pela GLC abaixo é composta por expressões aritméticas contendo colchetes balanceados, dois operandos e um operador: G = ({E}, {+, *, [, ], x}, P, E), onde P = { E E+E E*E [E] x }. Por exemplo, a expressão [x+x]*x pode ser gerada pela seguinte seqüência de derivações: E E*E [E]*E [E+E]*E [x+e]*e [x+x]*e [x+x]*x ÁRVORE DE DERIVAÇÃO Para uma determinada GLC, a representação da derivação de palavras na forma de árvore, denominada Árvore de Derivação é como se segue: a) A raiz é o símbolo inicial da GLC; b) Os vértices interiores obrigatoriamente são variáveis. Se A é um vértice interior e X1, X2,..., Xn são os filhos de A, então A X1X2...Xn é uma produção da gramática e os vértices X1, X2,..., Xn estão ordenados da esquerda para a direita. c) Um vértice folha é um símbolo terminal ou um símbolo vazio. Neste caso o vazio é o único filho de seu pai (A λ ). Exemplo: Árvores de Derivação a) G = ({S}, {a, b}, P, S), onde P = {S asb λ }. b) G = ({E}, {+, *, [, ], x}, P, E), onde P = {E E+E E*E [E] x}. Árvore de Derivação x Derivações Uma única árvore de derivação pode representar derivações distintas de uma mesma palavra ou expressão. Na árvore representada na figura, a palavra x + x * x pode por exemplo ser gerada pelas seguintes derivações: AMBIGUIDADE Uma GLC é dita uma gramática ambígua se existe uma palavra que possui duas ou mais árvores de derivação. Ex: x + x * x. 3

Exercício Gramáticas Livre de Contexto 1) Verifique se as seguintes palavras são reconhecidas pela gramática OBS: USE A CRIATIVIDADE PARA GERAR MAIS TRES PALAVRAS 1) S SS a S a b S b λ a) abba b) aabbaaaa 2) S a b A A a A b A B B ba a) abbbaba b) abba 3) S a A b A A a B b B B bc C a C b C ε a) abbab b) bbababba 4) S a S b S B B aa bb a) ababaa b) babbbb 2) Desenvolver as GLCs capazes de produzir as seguintes linguagens: a) L2 = {&} b) L3 = {a, b}* c) L4 = {w w e' palíndromo em = {a, b}* } d) L5 = {ww r w é palavra em = {a, b}* } e) L6 = {w w é palavra de = {(,)}* com parenteses balanceados } 4

f) L7 = {b m ab n ab p para qualquer m,n e p > 0} g) L8 = {a n b m a n para qualquer n > 0 e m >= 0} 3) Seja G a gramática G = (V, T, P, S), onde W = {O, A, N, V, S} T = {Jim, grande, verde, queijo, comeu} P = { O NVN, N S, N NA, A grande, A verde, S queijo, S Jim, V comeu} } S = {O} Gramática representando uma parte do idioma português. O significa oração, A adjetivo, S substantivo, V verbo e N complemento nominal. Derivar as seguintes das seguintes palavras Jim comeu queijo Jim grande comeu queijo verde Queijo grande comeu Jim Queijo grande comeu queijo grande verde grande verde verde Jim verde comeu Jim grande verde 4) Encontre a Expressão Regular para seguinte Gramática G = (V, T, P, S), onde V = {a,b,} 5) Verifica se a gramática abaixo é ambígua ou não e justifica sua resposta: (i) abba S SS a S a b S b ε (ii) aabbaaaa 5