Aula 8: Gramáticas Livres de Contexto
|
|
- Cíntia Batista Ramalho
- 6 Há anos
- Visualizações:
Transcrição
1 Teoria da Computação Primeiro Semestre, 2015 Aula 8: Gramáticas Livres de Contexto DAINF-UTFPR Prof. Ricardo Dutra da Silva Veremos agora maneira de gerar as strings de um tipo específico de linguagem, conhecido como linguagem livre de contexto. As strings serão geradas por regras que formam a chamada gramática livre de contexto. As gramáticas livres de contexto são usadas para definir linguagens de programação bem como os seus compiladores. Os elementos básicos que formam as regras da gramática são os símbolos terminais, formados por elementos de um alfabeto Σ, e os símbolos não-terminais, comumente chamados de variáveis. Definição 8.1. Uma gramática livre de contexto é uma quádrupla (V, Σ, P, S) onde V é um conjunto de variáveis; Σ é o conjunto de símbolos terminais; P é um conjunto de regras que são elementos do conjunto V {V Σ}, sendo, em geral, uma regra (A, w) escrita como A w. S V é uma variável inicial. Exemplo 8.1 A gramática G = ({S, A}, {a, b}, P, S) com o conjunto P de regras S AA A AAA A ba A Ab A a gera strings com um número par de a s. Quando temos diferentes regras para uma mesmo símbolo, como A Ab e A a, podemos simplificar a escrita usando uma barra vertical para separar as regras. Poeríamos escrever o exemplo como A Ab a. Exemplo 8.2 O conjunto P de regras da gramática G = ({S, A}, {a, b}, P, S), do Exemplo 8.1, pode 1
2 2 Aula 8: Gramáticas Livres de Contexto ser simplificada como S AA A AAA ba Ab a. O processo fundamental para a geração de uma string é a aplicação de regras. A aplicação de uma regra A w sobre um string uav {V Σ}, produz a string uwv. Os prefixo u e o sufixo v definem o contexto em que a regra é aplicada. Uma gramática livre de contexto é aquela em que os prefixos e sufixos não definem restrições sobre quando e onde a regra pode ser aplicada. Definição 8.2. Uma string w {V Σ} é derivada de v {V Σ} se existe uma sequência finita de aplicações de regras que transformam v em w: v w 1 w 2... w n = w Essa derivação pode ser representada por v = w. Definição 8.3. Seja G = (V, Σ, P, S) uma gramática livre de contexto e v {V Σ}. O conjunto de strings deriváveis de v é definido como Base: v é derivável de v; Passo: Se u = xay é derivável de v e A w P, então xwy é derivável de v. Exemplo 8.3 Uma derivação da string ababaa na gramática G = ({S, A}, {a, b}, P, S) com o conjunto P de regras S AA A AAA ba Ab a.
3 Aula 8: Gramáticas Livres de Contexto 3 pode ser escrita como S AA aa aba abaaa abaaa ababaa ababaa ababaa A derivação de uma string pode também ser visualizada como uma árvore. Definição 8.4. Seja G = (V, Σ, P, S) uma gramática livre de contexto e S = w uma derivação de G. A árvore de derivação de S = w, pode ser construída da seguinte forma 1. Inicia a árvore com raiz S. 2. Se A x 1 x 2... x n com x i {V Σ} é a regra de derivação aplicada à string uav, então adicione x 1, x 2,..., x n como nós filhos de A na árvore. 3. Se A λ é a regra de derivação aplicada à string uav, então adicione λ como filho de A na árvore Exemplo 8.4 Uma derivação da string ababaa na gramática G = ({S, A}, {a, b}, P, S) com o conjunto P de regras S AA A AAA ba Ab a. pode ser visualizada como
4 4 Aula 8: Gramáticas Livres de Contexto S S AA A A aa aba abaaa a b A A A A abaaa a b A a ababaa ababaa a ababaa Definição 8.5. Seja G = (V, Σ, P, S) uma gramática livre de contexto, a linguagem de G, L(G), é o conjunto {w Σ S = w}. Uma linguagem é livre de contexto se existe uma gramática livre de contexto que a gera. Exemplo 8.5 Seja a gramática G = ({S, B}, {a, b}, P, S) com conjunto P S asa aba B bb b então L(G) = {a n b m a n n > 0, m > 0}. Exemplo 8.6 Dada a linguagem L = {a n b m c m d 2n n 0, m > 0}. A gramática G tal que L(G) = L é dada por G = ({S, B}, {a, b}, P, S) com conjunto P S asdd B B bbc bc. Note que a derivação dada nos Exemplos 8.3 e 8.4 não é única. Podemos derivar uma mesma string fazendo escolhas diferentes para aplicação das regras e para a ordem em que são aplicadas. Exemplo 8.7 Diferentes derivações da string ababaa na gramática G = ({S, A}, {a, b}, P, S) com o
5 Aula 8: Gramáticas Livres de Contexto 5 conjunto P de regras S AA A AAA ba Ab a. S AA S AA S AA S AA aa AAAA Aa aa aba aaaa AAAa aaaa abaaa abaaa AAbAa aaaa abaaa abaaa AAbaa abaaa ababaa ababaa AbAbaa ababaa ababaa ababaa Ababaa ababaa ababaa ababaa ababaa ababaa Definição 8.6. A derivação de uma string w em uma gramática G é uma derivação mais à esquerda se a aplicação de regras, a cada passo, é realizada na primeira variável que aparece da esquerda para a direita. A derivação dada no Exemplo 8.3 é uma derivação mais à esquerda. Definição 8.7. A derivação de uma string w em uma gramática G é ambígua se existe mais de uma derivação mais à esquerda. Uma gramática G é ambígua se alguma string possui uma derivação ambígua. Exemplo 8.8 Seja a gramática G = ({E}, {a, +,, (, )}, P, E) com o conjunto P de regras E E + E E E (E) a. e as seguintes derivações da string a + a a
6 6 Aula 8: Gramáticas Livres de Contexto E E + E a + E a + E E a + a E a + a a S E E E + E E a + E E a + a E a + a a. Como existem duas derivações mais à esquerda diferentes, a gramática é ambígua. A ambiguidade reflete em como as expressões são avaliadas, podendo gerar resultados errados, que não respeitam ordens de precedência. A gramática G = ({E, T, F }, {a, +,, (, )}, P, E) com o conjunto P de regras E E + T T T T F F F (E) a não é ambígua para as mesmas strings de G. Gramáticas não ambíguas são essenciais para a definição de linguagens e para a construção de compiladores. No entanto, existem linguagens inerentemente ambíguas. Definição 8.8. Uma linguagem L é livre de contexto se existe uma gramática livre de contexto que gere L. Às vezes é interessante que a gramática esteja numa forma simplificada. A mais comum é a forma de Chomsky. Definição 8.9. Uma gramática (V, Σ, P, S) livre de contexto está na Forma Normal de Chomsky se as regras estão em uma das formas: A BC A a S λ onde A, B, C V, a Σ e B, C são diferentes de S. Teorema 8.1. Seja L uma linguagem livre de contexto, então existe uma gramática G c na Forma Normal de Chomsky tal que L = L(G c ).
7 Aula 8: Gramáticas Livres de Contexto 7 Demonstração. Como L é uma linguagem livre de contexto, então existe uma gramática livre de contexto G = (V, Σ, P, S) para ela. Uma gramática na Forma Normal de Chomsky pode ser obtida pelos passos abaixo. 1. Eliminação da variável inicial do lado direito das regras. Criamos uma nova variável S 1 que será a nova variável inicial. Portanto, G = (V {S 1 }, Σ, P {S 1 S}, S 1 ). 2. Eliminação de regras lambda. Sejam u, v, w {V Σ}, enquanto houver regras da forma A λ com A S 1 : (a) remova a regra: P = P \ {A λ}; para cada regra: B A faça P = P {B λ}, exceto se a regra B λ já foi eliminada; B uav faça P = P {B uv}; B uavaw faça P = P {B uvaw, B uavw, B uvw}; proceda da mesma maneira para regras com mais de dois A s. 3. Eliminação de regras unitárias. Seja u {V Σ}, enquanto houver regras do tipo A B: (a) remova a regra: P = P \ {A B}; para toda regra B u faça P = P {A u}, exceto se a regra A u é uma regra unitária que já foi eliminada; 4. Eliminação de regras com mais de dois símbolos no lado direito. Sejam x 1, x 2,..., x n símbolos de V Σ, enquanto houver regras da forma A x 1 x 2... x n. (a) adicione uma nova variável B, V = V B; remova a regra A x 1 x 2... x n, P = P \ {A x 1 x 2... x n }; (c) adicione as regras A x 1 B e B x 2... x n, P = P {A x 1 B, B x 2... x n }; 5. Eliminação de regras com dois símbolos que contenham símbolo terminal. Enquanto houver regras do tipo A x 1 x 2 tal que x 1 Σ: (a) adicione uma nova variável B, V = V B; remova a regra A x 1 x 2, P = P \ {A x 1 x 2 }; (c) adicione as regras A Bx 2 e B x 1, P = P {A Bx 2, B x 1 }; Enquanto houver regras do tipo A x 1 x 2 tal que x 2 Σ:
8 8 Aula 8: Gramáticas Livres de Contexto (a) adicione uma nova variável B, V = V B; remova a regra A x 1 x 2, P = P \ {A x 1 x 2 }; (c) adicione as regras A x 1 B e B x 2, P = P {A x 1 B, B x 2 }; Exemplo 8.9 A gramática G = ({A, B}, {0, 1}, P, A) com o conjunto P de regras A BAB B λ λ (8.1) não está na Forma Normal de Chomsky. Os passos a seguir constroem uma gramática com tal forma. 1. Eliminação da variável inicial do lado direito das regras. S A A BAB B λ λ 2. Eliminação de regras lambda. Iteração 1: A λ. (a) S A A BAB B λ
9 Aula 8: Gramáticas Livres de Contexto 9 S A λ A BAB B BB λ Iteração 2: B λ. (a) S A λ A BAB B BB S A λ A BAB B BB BA AB A Note que a regra A λ já foi eliminada na primeira iteração, logo ela não é readicionada. 3. Eliminação de regras unitárias. Iteração 1: S A. (a) S λ A BAB B BB BA AB A
10 10 Aula 8: Gramáticas Livres de Contexto S BAB B BB BA AB λ A BAB B BB BA AB A Note que a regra S A não é adicionada pois ela já foi removida. Iteração 2: A A. (a) S BAB B BB BA AB λ A BAB B BB BA AB S BAB B BB BA AB λ A BAB B BB BA AB A regra A A não é adicionada pois ela já foi removida. As outras regras já existiam. Iteração 3: S B. (a) S BAB BB BA AB λ A BAB B BB BA AB
11 Aula 8: Gramáticas Livres de Contexto 11 S BAB 00 BB BA AB λ A BAB B BB BA AB Iteração 4: A B. (a) S BAB 00 BB BA AB λ A BAB BB BA AB S BAB 00 BB BA AB λ A BAB 00 BB BA AB 4. Eliminação de regras com mais de dois símbolos no lado direito. Iteração 1: S BAB. (a) G = ({A, B, S, A 1 }, {0, 1}, P, S) G = ({A, B, S, A 1 }, {0, 1}, P, S) S 00 BB BA AB λ A BAB 00 BB BA AB
12 12 Aula 8: Gramáticas Livres de Contexto (c) G = ({A, B, S, A 1 }, {0, 1}, P, S) S BA 1 00 BB BA AB λ A BAB 00 BB BA AB Iteração 2: A BAB. (a) G = ({A, B, S, A 1, A 2 }, {0, 1}, P, S) G = ({A, B, S, A 1, A 2 }, {0, 1}, P, S) S BA 1 00 BB BA AB λ A 00 BB BA AB (c) G = ({A, B, S, A 1, A 2 }, {0, 1}, P, S) S BA 1 00 BB BA AB λ A BA 2 00 BB BA AB A 2 AB A segunda iteração produz uma regra idêntica a outra que já existia. Não há necessidade de fazer isso. Poderíamos ter substituído BAB novamente por BA 1 e economizado na criação de mais uma regra. 5. Eliminação de regras com dois símbolos que contenham símbolo terminal. Iteração 1: S 00. (a) G = ({A, B, S, A 1, A 2, A 3 }, {0, 1}, P, S)
13 Aula 8: Gramáticas Livres de Contexto 13 G = ({A, B, S, A 1, A 2, A 3 }, {0, 1}, P, S) S BA 1 BB BA AB λ A BA 2 00 BB BA AB A 2 AB (c) G = ({A, B, S, A 1, A 2, A 3 }, {0, 1}, P, S) S BA 1 A 3 0 BB BA AB λ A BA 2 00 BB BA AB A 2 AB A 3 0 Iteração 2: S A 3 0. (a) G = ({A, B, S, A 1, A 2, A 3, A 4 }, {0, 1}, P, S) G = ({A, B, S, A 1, A 2, A 3, A 4 }, {0, 1}, P, S) S BA 1 BB BA AB λ A BA 2 00 BB BA AB A 2 AB A 3 0
14 14 Aula 8: Gramáticas Livres de Contexto (c) G = ({A, B, S, A 1, A 2, A 3, A 4 }, {0, 1}, P, S) S BA 1 A 3 A 4 BB BA AB λ A BA 2 00 BB BA AB A 2 AB A 3 0 A 4 0 Novamente, uma regra desnecessária foi criada. Se continuarmos as iterações novamente criaremos regras desnecessárias. Um algoritmo mais esperto pode identificar tais casos e evitar a criação das regras. Usando esse algoritmo mais esperto para as regras A 00 e, poderíamos acabar, por exemplo, com a gramática abaixo. G = ({A, B, S, A 1, A 2, A 3, A 4 }, {0, 1}, P, S) S BA 1 A 3 A 4 BB BA AB λ A BA 2 A 4 A 4 BB BA AB A 2 AB A 3 0 A 4 0 B A 4 A 4 A gramática está na Forma Normal de Chomsky. As gramáticas livres de contexto geram linguagens livres de contexto enquanto PDA s reconhecem as mesmas linguagens. Definição reconhece L. Uma linguagem L é livre de contexto se existe uma existe um PDA que
Marcos Castilho. DInf/UFPR. 21 de março de 2019
21 de março de 2019 Análise sintática: introdução Dada uma gramática G e uma palavra w Σ, como saber se w L(G)? Isto é, como saber se S = G w? Derivações à esquerda e ambiguidade w L(G) se S = G w; Sabemos
Leia maisTeoria da Computação Aula 02 Introdução
Teoria da Computação Aula 02 Introdução Prof. Esp. Pedro Luís Antonelli Anhanguera Educacional Alfabeto Um alfabeto é um conjunto finito de símbolos ou caracteres, representado pela letra sigma ( ). Portanto:
Leia maisTeoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha
Teoria da Computação Gramáticas, Linguagens Algébricas e Autómatos de Pilha Simão Melo de Sousa 12 de Outubro de 2011 Conteúdo 1 Gramáticas e Definições básicas 1 2 Gramáticas e Linguagens 4 2.1 Gramáticas
Leia maisGramática Livre de Contexto
Gramática Livre de Contexto Prof. Yandre Maldonado - 1 Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) Forma Normal de Greibach (FNG) Prof. Yandre Maldonado e Gomes
Leia maisGramá3ca Livre de Contexto (GLC)
Linguagens Formais e Autômatos Gramá3ca Livre de Contexto (GLC) Andrei Rimsa Álvares Material extraído do livro e slides do Prof. Newton Vieira (hep://dcc.ufmg.br/~nvieira) Sumário Gramá4cas livres de
Leia maisGramática Livre de Contexto
Prof. Yandre Maldonado - 1 Gramática Livre de Contexto Árvore de derivação Ambigüidade Simplificação de Gramática Forma Normal de Chomsky (FNC) (FNG) Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br
Leia maisLinguagens Formais - Preliminares
Linguagens Formais - Preliminares Regivan H. N. Santiago DIMAp-UFRN 25 de fevereiro de 2007 Regivan H. N. Santiago (DIMAp-UFRN) Linguagens Formais - Preliminares 25 de fevereiro de 2007 1 / 26 Algumas
Leia maisAutomata e Linguagens Formais
Automata e Linguagens Formais 6 Prof. Carlos H. C. Ribeiro carlos@ita.br Análise Sintática (Parsing) GLCs ambíguas Grafos de GLCs Estratégias para parsing Exemplos de parsers Análise Sintática (Parsing)
Leia maisUniversidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma 1 2º. Semestre de 2012 Prof. João Luís
Leia maisIBM1088 Linguagens Formais e Teoria da
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
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
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
Leia maisCOMPILADORES. Revisão Linguagens formais Parte 02. Prof. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 02 Prof. geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = epsilon λ =
Leia maisLINGUAGEM LIVRE DE CONTEXTO GRAMÁTICA LIVRE DE CONTEXTO
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
Leia maisLinguagens Formais e Autômatos. Simplificação de Gramáticas Livre do Contexto (GLC)
Linguagens Formais e Autômatos Simplificação de Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Gramática Simplificada Gramática simplificada é uma gramática livre do contexto que não apresenta
Leia maisLinguagens Formais. Aula 01 - Conceitos Básicos. Prof. Othon Batista Mestre em Informática
Linguagens Formais Aula 01 - Conceitos Básicos Prof. Othon Batista Mestre em Informática Sumário Introdução à Linguagem Alfabeto Cadeias de Símbolos, Palavras Tamanho de Palavra Prefixo, Sufixo ou Subpalavra
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisCurso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios
Curso de Engenharia de Computação - UTFPR Teoria da Computação - Prof. Celso Kaestner Lista de exercícios 1. Escreva a expressão regular para as seguintes linguagens sobre o alfabeto {0, 1}: strings começando
Leia maisTEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO
LICENCIATURA EM CIÊNCIAS DA COMPUTAÇÃO TEORIA DAS LINGUAGENS 3. GRAMÁTICAS INDEPENDENTES DE CONTEXTO José Carlos Costa Dep. Matemática e Aplicações Universidade do Minho Braga, Portugal 31 de Maio de 2010
Leia maisCompiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula de hoje... Revisão: gramáticas Relações em uma gramática: Cabeça, Último, Primeiro (First) e Seguinte (Follow) Capítulo 4 (seção 4.4.2) do livro
Leia maisACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 2. Linguagens Livres-do-Contexto Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto marcelolauretto@usp.br
Leia maisGramática regular. IBM1088 Linguagens Formais e Teoria da Computação. Evandro Eduardo Seron Ruiz Universidade de São Paulo
Gramática regular IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos
Leia maisSegunda Lista de Exercícios 2004/2...
+ + UFLA Universidade Federal de Lavras Departamento de Ciência da Computação COM162 Linguagens Formais e Autômatos Prof. Rudini Sampaio Monitor: Rodrigo Pereira dos Santos Segunda Lista de Exercícios
Leia maisSe o símbolo inicial não fizer parte do conjunto de símbolos férteis, a linguagem gerada pela gramática é vazia.
Transformações em G.L.C Uma vez que existem métodos de análise, cada qual exigindo gramáticas com características específicas é importante que uma gramática possa ser transformada, porém, sem perder a
Leia maisLINGUAGENS FORMAIS E AUTÔMATOS. Prova 2-10/06/ Prof. Marcus Ramos
LINGUAGENS FORMAIS E AUTÔMATOS Prova 2-10/06/2011 - Prof. Marcus Ramos NOME: _ Colocar seu nome no espaço acima; A prova pode ser feita à lápis ou caneta; A duração é de três horas; As questões da parte
Leia maisAula 7: Autômatos com Pilha
Teoria da Computação Segundo Semestre, 2014 Aula 7: Autômatos com Pilha DAINF-UTFPR Prof. Ricardo Dutra da Silva Vamos adicionar um memória do tipo pilha ao nossos autômatos para que seja possível aceitar
Leia maisSCC Capítulo 3 Linguagens Sensíveis ao Contexto e Autômatos Limitados Linearmente
SCC-505 - Capítulo 3 Linguagens Sensíveis ao Contexto e João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis
Leia maisGramáticas e Linguagens Independentes de Contexto
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
Leia maisAlfabeto, Cadeias, Operações e Linguagens
Linguagens de Programação e Compiladores - Aula 3 1 Alfabeto, Cadeias, Operações e Linguagens 1.Conjuntos Para representar um determinado conjunto é necessário buscar uma notação para representá-lo e ter
Leia maisTeoria 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
Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 8 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 7/4/8 Valor: pontos. Uma versão do problema
Leia maisGramáticas e Linguagens independentes de contexto
Capítulo 6 Gramáticas e Linguagens independentes de contexto 6.1 Gramáticas Nesta secção vamos introduzir gramáticas formais para caracterização das linguagens, estudando fundamentalmente as gramáticas
Leia maisConceitos básicos de Teoria da Computação
Folha Prática Conceitos básicos de 1 Conceitos básicos de Métodos de Prova 1. Provar por indução matemática que para todo o número natural n: a) 1 + 2 + 2 2 + + 2 n = 2 n+1 1, para n 0 b) 1 2 + 2 2 + 3
Leia maisExpressões Regulares e Gramáticas Regulares
Universidade Católica de Pelotas Escola de informática 053212 Linguagens Formais e Autômatos TEXTO 2 Expressões Regulares e Gramáticas Regulares Prof. Luiz A M Palazzo Março de 2007 Definição de Expressão
Leia maisGramáticas Livres de Contexto
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
Leia maisSCC Capítulo 2 Linguagens Livres de Contexto e Autômatos de Pilha (versão 2)
SCC-505 - Capítulo 2 e (versão 2) João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação - Universidade de São Paulo http://www.icmc.usp.br/~joaoluis
Leia maisProf. Dr. Marcos Castilho. Departamento de Informática/UFPR. 27 de Fevereiro de 2018
27 de Fevereiro de 2018 Definição: Concatenação Sejam u, v Σ. A concatenação de u e v, denotado por uv é a operação binária sobre Σ assim definida (i) BASE: Se tamanho(v) = 0 então v = λ e uv = u. (ii)
Leia maisTeoria 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
Departamento de Ciência da Computação ICEx/UFMG Teoria de Linguagens o semestre de 7 Professor: Newton José Vieira Primeira Lista de Exercícios Data de entrega: 9/9/7 Valor: pontos. Uma versão do problema
Leia maisGramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Leia maisGramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa yandre@din.uem.br Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Leia maisGramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz evandro@usp.br Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
Leia maisExpressões e Gramáticas Regulares e Autómatos Finitos
Folha Prática Expressões e Gramáticas Regulares e Autómatos Finitos 1 Expressões e Gramáticas Regulares e Autómatos Finitos Expressões Regulares e Autómatos Finitos 1. Determine e implemente computacionalmente
Leia maisConstrução de Compiladores Aula 16 - Análise Sintática
Construção de Compiladores Aula 16 - Análise Sintática Bruno Müller Junior Departamento de Informática UFPR 25 de Setembro de 2014 1 Introdução Hierarquia de Chomsky Reconhecedores Linguagens Livres de
Leia maisPropriedades das Linguagens Livres do Contexto
Capítulo 7 Propriedades das Linguagens Livres do Contexto As linguagens livres do contexto ocupam uma posição central na hierarquia das linguagens formais. Por um lado, as linguagens livres do contexto
Leia maisCompiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação
Compiladores Analisador Sintático Prof. Antonio Felicio Netto antonio.felicio@anhanguera.com Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma
Leia maisDraft-v0.2. Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra
10 Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos
Leia maisLinguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Leia maisA. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)
DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 2ª chamada - Resolução 2h + 30min 07/Fev/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1
Leia maisAutomata e Linguagens Formais
Automata e Linguagens Formais 5 Prof. Carlos H. C. Ribeiro carlos@ita.br Gramáticas A Hierarquia de Chomsky Tipos de gramáticas e linguagens Pré-normalização de GLCs Formas Normais: Chomsky e Greibach
Leia maisLinguagens Formais e Autômatos 02/2015. LFA Aula 02. introdução 28/09/2015. Celso Olivete Júnior.
LFA Aula 02 Linguagens regulares - introdução 28/09/2015 Celso Olivete Júnior olivete@fct.unesp.br 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
Leia maisLinguagens livres de contexto e autômatos de pilha
Capítulo 6: Linguagens livres de contexto e autômatos de pilha José Lucas Rangel, maio 1999 6.1 - Introdução. Os aceitadores, ou reconhecedores, das linguagens livres de contexto são os chamados autômatos
Leia maisFaculdade de Computação
UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão
Leia maisCapítulo 3: Gramáticas
Capítulo 3: Gramáticas Já vimos que procedimentos podem ser usados para definir linguagens de duas maneiras essenciais: como geradores, procedimentos que enumeram os elementos da linguagem, e como reconhecedores
Leia maisAula 9: Máquinas de Turing
Teoria da Computação Aula 9: Máquinas de Turing DAINF-UTFPR Prof. Ricardo Dutra da Silva Uma máquina de Turing é uma máquina de estados finitos que pode mover o cabeçote em qualquer direção, ler e manipular
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Leia maisCompiladores - Análise Ascendente
Compiladores - Análise Ascendente Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Análise Descendente vs. Ascendente As técnicas de análise que vimos até agora (recursiva com retrocesso,
Leia maisIntrodução Definição Conceitos Básicos de Linguagem
Introdução Definição Conceitos Básicos de Linguagem Introdução Desenvolvida originalmente em 1950 Objetivo: Desenvolver teorias relacionadas com a Linguagem natural Logo verificou-se a importância para
Leia maisFundamentos da Teoria da Computação
Fundamentos da Teoria da Computação Terceira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Mestrando em Ciência da Computação Departamento de Ciência da Computação Universidade Federal
Leia maisLista de Exercícios CT-200 Primeiro Bimestre Carlos Henrique Quartucci Forster Estagiário: Wesley Telles. Revisão de Teoria de Conjuntos
Lista de Exercícios CT-200 Primeiro Bimestre 2010 Carlos Henrique Quartucci Forster Estagiário: Wesley Telles Revisão de Teoria de Conjuntos 1. Sejam A = {1,2 } e B = { x, y, z}. Quais os elementos dos
Leia maisA. (Autómatos finitos determinísticos e não determinísticos AFD e AFND)
DEP. INFORMÁTICA - UNIVERSIDADE DA BEIRA INTERIOR Teoria da Computação Eng. Informática 1º Semestre Exame 1ª chamada - Resolução 2h + 30min 31/Jan/2011 Pergunta A.1 A.2 A.3 B.1 B.2 B.3a B.3b C.1 C.2 D.1
Leia maisCapítulo Métodos para transformar gramáticas ái Duas formas Normais (Chomsky e Greibach) ADC/TC/Cap.6/ /LEI/DEIFCTUC 268
Capítulo 6 Simplificação de gramáticas livres de contexto e Formas Normais 61 6.1. Métodos para transformar gramáticas ái 62 6.2. Duas formas Normais (Chomsky e Greibach) 268 6.1. Métodos para transformar
Leia maisINE5317 Linguagens Formais e Compiladores. AULA 4: Gramáticas
INE5317 Linguagens Formais e Compiladores AULA 4: Gramáticas bas eado em material produzido pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC E-Mail: silveira@inf.ufsc.br URL:
Leia maisIV Gramáticas Livres de Contexto
IV Gramáticas Livres de Contexto Introdução Definições de GLC 1 G = (Vn, Vt, P, S) onde P = {A α A Vn α (Vn Vt) + } 2 GLC ε - LIVRE : S ε pode pertencer a P, desde que: S seja o símbolo inicial de G S
Leia maisApostila 03 - Linguagens Livres de Contexto Exercícios
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Leia maisFundamentos da Teoria da Computação
Fundamentos da Teoria da Computação Primeira Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Doutorando em Ciência da Computação Estagiário em docência II Departamento de Ciência da Computação
Leia maisLinguagens Formais e Autômatos (LFA)
Linguagens Formais e Autômatos (LFA) Aula de 16/09/2013 Conversões e Transformações 1 Conversões de Gramáticas LR em LL e vice-versa Qual é a ideia? S S a a a = a b c b c ε ε a a Seja GRD uma gramática
Leia maisLista de exercícios 1
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO DE CIÊNCIAS AGRÁRIAS CCA/ UFES Departamento de Engenharia Rural Lista de exercícios 1 Disciplina: Linguagens Formais e Autômatos Professora: Juliana Pinheiro
Leia maisTransformaçõ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
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 inacessíveis; Forma Normal de Chomsky (FNC) e Forma Normal
Leia maisCompiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa
Leia maisO que é Linguagem Regular. Um teorema sobre linguagens regulares. Uma aplicação do Lema do Bombeamento. Exemplo de uso do lema do bombeamento
O que é Linguagem Regular Um teorema sobre linguagens regulares Linguagem regular Uma linguagem é dita ser uma linguagem regular se existe um autômato finito que a reconhece. Dada uma linguagem L: É possível
Leia maisÁrvores (ordenadas) Departamento de Ciência de Computadores da FCUP MC Aula 11 1
Árvores (ordenadas) Recordemos que, uma árvore é grafo (não dirigido) em que o número de vértices excede em 1 o número de arcos. Um vértice é acessível a todos os outros: a raiz. Os vértices que são acessíveis
Leia maisLINGUAGENS FORMAIS Definições. Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam
Linguagens Naturais LINGUAGENS FORMAIS Definições Desenvolveram-se na História em função da necessidade dos grupos humanos que as empregavam São muito ricas, mas também ambíguas e imprecisas. Ex.: João
Leia maisDraft-v Gramáticas Independentes do Contexto O funcionamento de uma CFG Derivação de uma palavra
Gramáticas Independentes do Contexto Como vimos nos capítulos anteriores, apesar da classe das Linguagens Regulares serem particularmente bem comportadas tanto em termos de complexidade dos seus algoritmos
Leia maisCompiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Análise Sintática A análise sintática agrupa os tokens em uma árvore sintática de acordo com a estrutura do programa
Leia maisGramáticas ( [HMU00], Cap. 5.1)
Gramáticas ( [HMU00], Cap. 5.1) Vimos que a seguinte linguagem não é regular L = {0 n 1 n n 0} Contudo podemos fácilmente dar uma definição indutiva das suas palavras: 1. ɛ L 2. Se x L então 0x1 L L é
Leia maisSCC Capítulo 1 Linguagens Regulares e Autômatos Finitos
SCC-505 - Capítulo 1 Linguagens Regulares e Autômatos Finitos João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo
Leia maisCOMPILADORES. Revisão Linguagens formais Parte 01. Geovane Griesang
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Revisão Linguagens formais Parte 01 geovanegriesang@unisc.br Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
Leia maisAs linguagens regulares são I.C Proposição Qualquer linguagem regular é independente de contexto.
As linguagens regulares são I.C Proposição 16.1. Qualquer linguagem regular é independente de contexto. Dem. Seja L Σ uma linguagem regular, e seja r uma expressão regular tal que L = L(r).Por indução
Leia maisLinguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
Leia maisAnálise Sintática. Fabiano Baldo
Compiladores Análise Sintática Fabiano Baldo Gramáticas Livre de Contexto (GLC) É utilizada na especificação formal lda sintaxe de uma linguagem de programação. É um conjunto de produções ou regras gramaticais
Leia maisUniversidade de São Paulo Instituto de Ciências Matemáticas e de Computação Curso de Ciências de Computação
Universiae e São Paulo Instituto e Ciências Matemáticas e e Computação Curso e Ciências e Computação SCC-205 TEORIA DA COMPUTAÇÃO E LINGUAGENS FORMAIS Turma A 2º. Semestre e 2010 Prof. João Luís Lista
Leia maisLinguagens Formais e Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim (msalvim@dcc.ufmg.br) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim (msalvim@dcc.ufmg.br) Linguagens Formais e Problemas
Leia maisINE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto
INE5317 Linguagens Formais e Compiladores AULA 9: Propriedades e Reconhecimento das Linguagens Livres do Contexto baseado em material produzido pelo prof Paulo Bauth Menezes e pelo prof Olinto José Varela
Leia maisLinguagens Livres do Contexto. Adaptado de H. Brandão
Linguagens Livres do Contexto Adaptado de H. Brandão Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres do Contexto; Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Leia maisDisciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof. Jefferson Morais
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE CIÊNCIAS EXATAS E NATURAIS FACULDADE DE COMPUTAÇÃO CURSO DE BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO Disciplina: LINGUAGENS FORMAIS, AUTÔMATOS E COMPUTABILIDADE Prof.
Leia maisTeoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9.
Pós-Graduação em Ciência da Computação DCC/ICEx/UFMG Teoria de Linguagens 2 o semestre de 2015 Professor: Newton José Vieira Primeira Lista de Exercícios Entrega: até 16:40h de 15/9. Observações: Pontos
Leia maisProf. Dr. Marcos Castilho. Departamento de Informática/UFPR. 22 de Fevereiro de 2018
22 de Fevereiro de 2018 Motivação O que é um computador? O que é um algoritmo? Para que serve um algoritmo? Quando um algoritmo é bom? A análise de um algoritmo depende do computador? Motivação Em teoria
Leia maisApostila 05 Assunto: Linguagens dos tipos 0 e 1
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Leia maisAutómatos de pilha e GIC
Autómatos de pilha e GIC Proposição 17.1. A classe de linguagens aceites por autómatos de pilha está contida na classe das linguagens independentes de contexto. Dem. Seja L uma linguagem independente de
Leia maisGramáticas Livres de Contexto Parte 1
Universidade Estadual de Feira de Santana Engenharia de Computação Gramáticas Livres de Contexto Parte 1 EXA 817 Compiladores Prof. Matheus Giovanni Pires O papel do Analisador Sintático É responsável
Leia maisUNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO. Prof.ª Danielle Casillo
UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: CIÊNCIA DA COMPUTAÇÃO TEORIA DA COMPUTAÇÃO Aula 02 Introdução à Teoria da Computação Prof.ª Danielle Casillo Linguagem: é uma forma precisa de expressar
Leia maisAula 7: Dedução Natural 2
Lógica para Computação Segundo Semestre, 2014 DAINF-UTFPR Aula 7: Dedução Natural 2 Prof. Ricardo Dutra da Silva -introdução Dada uma premissa A, nós podemos concluir A B para qualquer fórmula B. A justificativa
Leia maisTransformação de AP para GLC
UNIVERSIDADE ESTADUAL DE MARINGÁ DEPARTAMENTO DE INFORMÁTICA Transformação de AP para GLC Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A técnica que será
Leia maisExemplo preliminar. Considere a linguagem dos Palíndromos Lpal:
a n b n 1 Exemplo preliminar Considere a linguagem dos Palíndromos Lpal: radar, Roma é amor, 0110, 11011,... ou seja, quando w = w r Lpal é regular? usando o Lema do Bombeamento: Suponha Lpal regular,
Leia mais1 INTRODUÇÃO E CONCEITOS BÁSICOS
1 INTRODUÇÃO E CONCEITOS BÁSICOS Inicia com uma breve história do surgimento e do desenvolvimento dos conceitos, resultados e formalismos nos quais a Teoria da Computação é baseada. Formalização dos conceitos
Leia maisLinguagens Livres de Contexto
Linguagens Livres de Contexto 1 Roteiro Gramáticas livres de contexto Representação de linguagens livres de contexto Formas normais para gramáticas livres de contexto Gramáticas ambíguas Autômatos de Pilha
Leia maisLinguagens Formais e Autômatos (LFA)
Linguagens Formais e Autômatos (LFA) Aula de 28/08/2013 Sobre as respostas das duplas aos exercícios cios propostos 1 Fatos extraídos dos scores das duplas Tempo médio de resposta - A série inteira de
Leia maisDefiniçõ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
Definições Hierarquia de Chomsky Exemplos de gramáticas 1 Gramáticas Conceito introduzido pela lingüística Objetivo de ensinar o inglês pelo computador e conseguir um tradutor de línguas Fracasso da tradução
Leia maisFundamentos da Teoria da Computação
Fundamentos da Teoria da Computação Segunda Lista de Exercícios - Aula sobre dúvidas Sérgio Mariano Dias 1 1 Mestrando em Ciência da Computação Departamento de Ciência da Computação Universidade Federal
Leia maisUm alfabeto é um conjunto de símbolos indivisíveis de qualquer natureza. Um alfabeto é geralmente denotado pela letra grega Σ.
Linguagens O conceito de linguagem engloba uma variedade de categorias distintas de linguagens: linguagens naturais, linguagens de programação, linguagens matemáticas, etc. Uma definição geral de linguagem
Leia maisApostila 01 Fundamentação da Teoria da Computação e Linguagens Formais
Cursos: Bacharelado em Ciência da Computação e Bacharelado em Sistemas de Informação Disciplinas: (1493A) Teoria da Computação e Linguagens Formais, (4623A) Teoria da Computação e Linguagens Formais e
Leia mais