ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
|
|
|
- Victoria Carrilho da Mota
- 7 Há anos
- Visualizações:
Transcrição
1 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 1
2 No Capítulo 1 estudamos dois métodos formais para descrever linguagens regulares: Autômatos finitos Expressões regulares Foi demonstrado que algumas linguagens, mesmo simples, não são regulares P.ex. 0 n 1 n n 0 Neste capítulo, apresentamos as gramáticas livresdo-contexto (GLC), um método mais poderoso de descrever linguagens Podem descrever linguagens com certas estruturas recursivas 2
3 Inicialmente usadas no estudo de linguagem natural Estruturas de uma frase são recursivas Aplicação importante: análise sintática em linguagens de programação Estruturas recursivas, p.ex Expressões aritméticas: 2 [ ] Estruturas de desvio, repetição, etc, que induzem blocos aninhados Coleção de linguagens associadas com gramáticas livres de contexto são denominadas linguagens livres-do-contexto Incluem as linguagens regulares 3
4 Exemplo de uma gramática livre-do-contexto (denotada por G 1 ): Uma gramática consiste de uma coleção de regras de substituição (ou de produção) Cada regra aparece em uma linha da gramática na forma V w na qual: V é uma variável w é uma cadeia composta por variáveis e outros símbolos chamados terminais 4
5 Exemplo de uma gramática livre-do-contexto (denotada por G 1 ): (cont) Variáveis são usualmente representadas por letras maiúsculas (ao menos nos exemplos simples aqui apresentados) Os terminais são análogos ao alfabeto de entrada e são usualmente representados por letras minúsculas, números ou símbolos especiais Uma das variáveis é designada a variável inicial Usualmente a que aparece no lado esquerdo da 1ª regra Identifique as regras, variáveis e terminais na gramática G 1 5
6 Uma gramática permite gerar cada cadeia de uma linguagem da seguinte maneira: 1. Escreva a variável inicial 2. Para cada variável V escrita na cadeia, encontre uma regra contendo V no lado esquerdo (V w) Substitua V pelo lado direito daquela regra Ex: se a cadeia atual é avcsb e existe uma regra V bsa, pode-se substituir V por bsa na cadeia acima, resultando em absacsb 3. Repita o passo 2 até não haver mais nenhuma variável 6
7 Ex: a gramática G 1 gera a cadeia 000#111 Sequência de substituições para obter uma cadeia é denominada derivação A derivação da cadeia 000#111 na gramática G 1 é A derivação também pode ser representada por uma árvore sintática: 7
8 Todas as cadeias geradas dessa forma constituem a linguagem da gramática Notação: L(G) Qual a linguagem da gramática G 1 do exemplo anterior? Toda cadeia que pode ser gerada por uma gramática livre de contexto é denominada linguagem livre-docontexto (LLC) 8
9 Gramática abaixo, denotada por G 2, descreve um fragmento da estrutura sintática do Inglês 9
10 Exemplos de cadeias geradas: Derivação da 1ª cadeia: 10
11 Definição formal Definição 2.2: 11
12 Definição formal Frequentemente especificamos uma gramática escrevendo apenas suas regras Variáveis são identificadas pelos símbolos que aparecem no lado esquerdo das regras Terminais são todos os demais símbolos Por convenção, a variável inicial é a que aparece no lado esquerdo da 1ª regra 12
13 Definição formal Se u, v, w são cadeias de variáveis e terminais, e A v é uma regra da gramática, dizemos que uaw origina uvw, denotado por uaw uvw. Pode-se também dizer que uvw é uma derivação direta de uaw Dizemos que u deriva v, escrito u v, se u = v ou se existe uma sequência u 1, u 2,, u k para k 0 tal que u 1 u 2 u k A linguagem de uma gramática G é o conjunto de todas as cadeias de terminais derivadas de sua variável inicial S, ou seja, L G = w Σ S w} 13
14 Exemplos Exemplo 2.3 (modificado): Considere a gramática G 3 = ( S, 0,1,,, S, R). O conjunto de regras, R, é: S (S) SS 0 1 ε Alguns exemplos de cadeias geradas: ε, 0, 1, (000), (1(0)), (()1(01)), etc L G 3 =? 14
15 Exemplos Exemplo 2.4: As cadeias a + a a e (a + a) a podem ser geradas com a gramática G 4. Árvores sintáticas são apresentadas no próximo slide 15
16 Exemplos Exemplo 2.4 (cont): 16
17 Projetando GLCs Projeto de uma GLC requer certo grau de criatividade Todavia, alguns princípios podem ser considerados 1. Linguagens livres-do-contexto (LLCs) são, usualmente, composições de LLCs mais simples Para projetar uma GLC G para uma linguagem que representa a união entre duas LLCs L 1 e L 2, construa primeiramente as gramáticas G 1 para L 1 e G 2 para L 2 ; em seguida, combine as regras de G 1 e de G 2, e adicione uma nova regra S S 1 S 2, onde - S, S 1 e S 2 são as variáveis iniciais de G, G 1 e G 2, respectivamente 17
18 Projetando GLCs 1. Linguagens livres-do-contexto (LLCs) são, usualmente, composições de LLCs mais simples (cont) Por exemplo, para obter uma gramática para a linguagem 0 n 1 n n 0 1 n 0 n n 0, primeiro construímos duas gramáticas mais simples: Em seguida adicionamos a regra S S 1 S 2, resultando na gramática final 18
19 Projetando GLCs 2. Projetar uma GLC para uma linguagem regular é simples, se conseguirmos projetar o AFD ou AFN para aquela linguagem Ver apresentação Introdução às Gramáticas, onde apresentamos a equivalência entre autômatos finitos e gramáticas lineares à direita (que são um caso particulares de GLCs) 19
20 Projetando GLCs 3. Certas LLCs contêm cadeias com duas subcadeias que são ligadas no sentido de que uma máquina para uma linguagem como essa precisaria memorizar uma quantidade de informação ilimitada sobre uma das subcadeias para saber se ela corresponde apropriadamente à outra subcadeia Essa situação ocorre na linguagem 0 n 1 n n 0, pois uma máquina precisaria memorizar o número de 0s de modo a verificar que ele é igual ao número de 1s Pode-se construir uma GLC para lidar com essa situação usando uma regra na forma R urv, que gera cadeias nas quais a parte contendo os u s corresponde às partes contendo os v s 20
21 Projetando GLCs 4. Em linguagens mais complexas, as cadeias podem conter certas estruturas que aparecem recursivamente como parte de outras estruturas (ou delas mesmas) Essa situação ocorre na gramática que gera expressões aritméticas no Exemplo 2.4 Sempre que o símbolo a aparece, em vez dele uma expressão parentizada pode aparecer recursivamente Para atingir esse efeito, coloque o símbolo da variável que gera a estrutura na posição das regras correspondente a onde aquela estrutura pode aparecer recursivamente 21
22 Projetando GLCs Exercício 2.4: 22
23 Ambiguidade Às vezes uma gramática pode gerar a mesma cadeia de várias maneiras diferentes Tal cadeia terá várias árvores sintáticas diferentes e, portanto, vários significados diferentes Se uma gramática gera a mesma cadeia de várias maneiras diferentes, dizemos que a cadeia é derivada ambiguamente nessa gramática Se uma cadeia gera alguma cadeia ambiguamente, dizemos que a gramática é ambígua Ambiguidade pode ser indesejável em certas aplicações P.ex. em linguagens de programação: um programa deve ter uma única interpretação 23
24 Ambiguidade Exemplo: considere a gramática G 5 : Essa gramática gera a cadeia a + a a ambiguamente: Qual seria o valor dessa expressão sob cada árvore sintática se a = 3? à esquerda: 18; à direita: 12 24
25 Ambiguidade Exemplo: considere a gramática G 5 (cont): G 5 não captura as relações de precedência usuais e, portanto, pode agrupar o + antes do e vice-versa Por outro lado, a gramática G 4 gera exatamente a mesma linguagem, mas toda cadeia gerada tem uma árvore sintática única Logo, G 4 é não-ambígua, enquanto G 5 é ambígua A gramática G 2, que descreve um fragmento da estrutura sintática do Inglês, também é ambígua Sentença the girl touches the boy with the flower tem duas derivações diferentes (e duas interpretações diferentes!) 25
26 Ambiguidade Atenção: quando dizemos que uma gramática gera uma cadeia ambiguamente, queremos dizer que a cadeia tem duas árvores sintáticas diferentes, e não duas derivações diferentes Duas derivações podem diferir meramente pela ordem na qual elas substituem variáveis e ainda assim não na sua estrutura geral Para nos concentrarmos na estrutura da gramática, definimos um tipo de derivação que substitui variáveis em uma ordem fixa 26
27 Ambiguidade Uma derivação mais à esquerda de uma cadeia w é aquela em que, a cada passo, a variável remanescente escolhida para ser substituída é a variável mais à esquerda na forma sentencial intermediária Ex: derivação de (a + a) a pela gramática G 4 : E T T F F F E F ( E + T ) F ( T + T ) F F + T F (a + T ) F (a + F ) F (a + a) F (a + a) a 27
28 Ambiguidade Definição 2.7: Em certas situações, quando temos uma gramática ambígua podemos encontrar uma gramática não-ambígua que gera a mesma linguagem Algumas linguagens livres-do-contexto, entretanto, podem ser geradas apenas por gramáticas ambíguas Tais linguagens são chamadas inerentemente ambíguas Ex: a i b j c k i = j ou j = k Não há gramática que tenha derivação única para a cadeia aaabbbccc, por exemplo 28
29 Ambiguidade Exemplo em linguagens de programação: Suponha que uma gramática contenha a regra: Statement if Condition then Statement if Condition then Statement else Statement... Condition... Algumas estruturas ambíguas podem aparecer: A sentença if a then if b then s else s2 pode ser interpretada como if a then { if b then s } else s2 ou if a then { if b then s else s2 } dependendo da associação do else com o 1º ou com o 2º if 29
30 Ambiguidade Exemplo em linguagens de programação: Suponha que uma gramática contenha a regra: Statement if Condition then Statement if Condition then Statement else Statement... Condition... Formas de resolver ambiguidade: Modificação da gramática para torná-la não-ambígua p.ex tornar endif / fi obrigatório Statement if Condition then Statement fi if Condition then Statement else Statement fi... Manter a gramática ambígua, mas tornar a sentença sensível ao contexto, associando o else com o último if encontrado 30
31 Forma Normal de Chomsky Quando se trabalha com gramáticas livres-do-contexto, é frequentemente tê-las em forma simplificada Uma das formas mais simples e úteis é chamada forma normal de Chomsky (FNC) Útil para projetar algoritmos para análise sintática 31
32 Forma Normal de Chomsky Definição 2.8: Uma GLC está na Forma Normal de Chomsky se: a) Toda regra de substituição é da forma A BC ou A a onde B,C são variáveis, a é símbolo terminal; b) A variável inicial S não pode aparecer no lado direito de nenhuma regra; c) Somente a variável inicial pode ter a regra S. 32
33 Forma Normal de Chomsky Conversão de uma GLC G = (V,, R, S) para FNC: a) Adicionar nova variável inicial S 0 e adicionar a regra S 0 S; b) Eliminação de regras A b 1 ) Remover a regra; b 2 ) Para toda regra R u A v, adicionar R u v; Nota: Fazer isso para cada ocorrência de A. Ex: se R u A v A w, deve-se acrescentar 3 regras: R u v A w, R u A v w, R u v w b 3 ) Se tivermos a regra R A e se R não tiver sido previamente eliminado, adicionar R (posteriormente, essa regra também será removida se R S 0 ) b 4 ) Repetir até eliminar todas as ocorrências. 33
34 Forma Normal de Chomsky Conversão de uma GLC G = (V,, R, S) para FNC (cont.): c) Remoção de regras unitárias A B: c1) Remover a regra; c2) Para toda regra B u, acrescentamos A u, a menos que essa seja uma regra unitária já removida. c3) Repetir para todas as regras unitárias. 34
35 Forma Normal de Chomsky Conversão de uma GLC G = (V,, R, S) para FNC (cont.): d) Converter todas as regras remanescentes para a forma apropriada A BC ou A a: d1) Se A u 1 u 2... u k, onde k 3 e u i é variável ou símbolo terminal, então substituir esta regra por: A u 1 A 1, A 1 u 2 A 2, A 2 u 3 A 3,..., A k-2 u k-1 u k. d2) Se k=2, então substituir qualquer terminal u i na(s) regra(s) precedente(s) por uma nova variável U i, e adicionar a regra U i u i. 35
36 Forma Normal de Chomsky Exemplo 2.10: conversão da GLC abaixo para a FNC: 1. GLC original G 6 é mostrada à esquerda Resultado da introdução da nova variável inicial é apresentado à direita 2. Remoção de regras vazias B ε (esq) e A ε (dir) 36
37 Forma Normal de Chomsky Exemplo 2.10: conversão da GLC abaixo para a FNC: 3a. Remoção de regras unitárias S S (esq) e S 0 S (dir) 3b. Remoção de regras unitárias A B (esq) e A S (dir) 37
38 Forma Normal de Chomsky Exemplo 2.10: conversão da GLC abaixo para a FNC: 4. Conversão das regras remanescentes para a forma apropriada acrescentando variáveis e regras adicionais 38
39 Problema: Algoritmos para Processamento de Gramáticas Livres do Contexto Dado uma GLC G e uma cadeia w, decidir se G gera a cadeia w Redefinição do problema em termos de linguagem: A GLC = { (H, x) H é uma GLC que gera a cadeia x } Dada uma Problema: (G, W) A GLC? 39
40 7.2 Algoritmos para Processamento de Gramáticas Livres do Contexto Se G for uma gramática qualquer: Testar todas as possíveis derivações: loop infinito Se G estiver na Forma Normal de Chomsky: Teorema: qualquer derivação de uma cadeia não vazia w tem exatamente 2n-1 passos, onde n = w. Ideia da demonstração: n-1 passos para gerar a cadeia com n variáveis n passos para substituir as variáveis por terminais Método de força bruta (para n>0): custo exponencial Teste todas as derivações possíveis com 2n-1 passos. Se alguma das derivações gerar w, aceite; senão, rejeite 40
41 7.2 Algoritmos para Processamento de Gramáticas Livres do Contexto Algoritmo CYK (Cocke Younger Kasami) Polinomial (se G estiver na forma normal de Chomsky) Programação dinâmica: uso de soluções de subproblemas menores para resolver subproblemas maiores (até chegar à solução do problema original) Tabela n n: Para i j, a (i, j) entrada da tabela contém todas as varíaveis que geram a subcadeia w i w i+1... w j Tratam-se subcadeias de tamanhos crescentes (começando de 1) 41
42 7.2 Algoritmo CYK programação dinâmica 42
43 7.2 Algoritmo CYK programação dinâmica Exemplo: Conversão de uma GLC para FNC: 1) Criação de nova variável inicial: S 0 S S asb bsa SS 2) Eliminação de substituições : S 0 S S asb bsa SS ab ba S 3) Eliminação de regras unitárias: S 0 asb bsa SS ab ba S asb bsa SS ab ba Gramática original: S asb bsa SS 4) Padronização: S 0 AT BU SS AB BA S AT BU SS AB BA T SB U SA A a B b
44 7.2 Algoritmo CYK programação dinâmica Exemplo (cont): Aplicação algoritmo CYK: Grámática na FNC: S 0 AT BU SS AB BA S AT BU SS AB BA T SB U SA A a B b Cadeia: a b a a b b Tabela: a b a a b b a A S 0, S U S 0, S b B S 0, S U S 0, S T a A S 0, S a A S 0, S T b B b B
ACH2043 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 [email protected]
Gramáticas Livres de Contexto
Gramáticas Livres de Contexto IBM1088 Linguagens Formais e Teoria da Computação Evandro Eduardo Seron Ruiz [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 42 Frase do dia Quando vires
Análise Sintática Introdução
Análise Sintática Introdução Renato Ferreira Linguagens e Automatas Linguagens formais são importantes em Computação Especialmente em linguagens de programação Linguagens regulares A linguagem formal mais
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO 1. Linguagens Regulares Referência: SIPSER, M. Introdução à Teoria da Computação. 2ª edição, Ed. Thomson Prof. Marcelo S. Lauretto [email protected] www.each.usp.br/lauretto
COMPILADORES. 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. [email protected] Legenda: = sigma (somatório) = delta ε = epsilon λ =
Linguagens 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
IV 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
Aná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
Aula 8: Gramáticas Livres de Contexto
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,
Gramá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
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Linguagens 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
Gramá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
Se 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
Gramática. Prof. Yandre Maldonado e Gomes da Costa. Prof. Yandre Maldonado - 1
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
Gramática. Gramática. Gramática
Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa [email protected] Prof. Yandre Maldonado - 2 Mecanismo gerador que permite definir formalmente uma linguagem; Através de uma gramática
LFA Aula 09. Gramáticas e Linguagens Livres de Contexto 18/01/2016. Linguagens Formais e Autômatos. Celso Olivete Júnior.
LFA Aula 09 Gramáticas e Linguagens Livres de Contexto (Hopcroft, 2002) 18/01/2016 Celso Olivete Júnior [email protected] www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens
Disciplina: 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.
Linguagens e Programação Gramáticas. Paulo Proença
Linguagens e Programação Gramáticas Gramáticas Ferramenta para a descrição e análise de linguagens; Baseada num conjunto de regras que especificam o modo de construção das frases válidas na linguagem;
Compiladores - 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
SCC 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
Gramá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
LINGUAGEM 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
COMPILADORES. Análise sintática. Prof. Geovane Griesang Universidade de Santa Cruz do Sul UNISC Departamento de informática
Universidade de Santa Cruz do Sul UNISC Departamento de informática COMPILADORES Análise sintática Parte 02 Prof. [email protected] Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores
Universidade 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
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados.
Capítulo 9: Linguagens sensíveis ao contexto e autômatos linearmente limitados. José Lucas Rangel 9.1 - Introdução. Como já vimos anteriormente, a classe das linguagens sensíveis ao contexto (lsc) é uma
Exemplo 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,
A. (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
Linguagens 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
Gramá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 [email protected]
Linguagens Livres de Contexto
Universidade Católica de Pelotas Centro Politécnico Bacharelado em Ciência da Computação 364018 Linguagens Formais e Autômatos TEXTO 4 Linguagens Livres de Contexto Prof. Luiz A M Palazzo Maio de 2011
Construçã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
Linguagens Livres-do-Contexto
Linguagens Livres-do-Contexto Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Livres-do-Contexto DCC-UFMG
Capí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
As 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
LINGUAGENS 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
Teoria 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
Formas normais. Forma normal de Greibach (FNG) todas as produções são da forma
Formas normais Em muitas aplicações, é útil que as GIC tenham regras de tipos especiais. Para tal é necessário que se possa transformar qualquer gramática numa equivalente (isto é que gere a mesma linguagem)
Segunda 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
Compiladores Aula 4. Celso Olivete Júnior.
Aula 4 Celso Olivete Júnior [email protected] 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
LINGUAGENS 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
Lista 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
Teoria 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:
SCC 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
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Linguagens Formais e Autômatos - P. Blauth Menezes 1 Linguagens
Gramá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
AFNs, Operações Regulares e Expressões Regulares
AFNs, Operações Regulares e Expressões Regulares AFNs. OperaçõesRegulares. Esquematicamente. O circulo vermelho representa o estado inicial q 0, a porção verde representa o conjunto de estados de aceitação
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
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
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL)
Gramáticas Sensíveis ao Contexto (GSC) Linguagens Sensíveis ao Contexto (LSC) Autômatos Linearmente Limitados (ALL) 1 Gramática Sensível ao Contexto Definição: Uma gramática G é sensível ao contexto se
Autômatos com Pilha: Reconhecedores de LLCs
Autômatos com Pilha: Reconhecedores de LLCs 1 Autômatos com Pilha (AP) Definições alternativas para Linguagens Livres de Contexto Extensão de AFND com uma pilha, que pode ser lida, aumentada e diminuída
Gramá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
Linguagens 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 [email protected] 1 Na aula passada... Visão geral Linguagens regulares expressões regulares autômatos finitos gramáticas
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO. Aula 25
ACH2043 INTRODUÇÃO À TEORIA DA COMPUTAÇÃO Aula 25 Cap 7.2 A classe P Profa. Ariane Machado Lima [email protected] 1 Cap 7.2 A classe P 2 Tempo polinomial e exponencial Ex: Máquina de tempo n 3 (tempo
Linguagens 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
Curso 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
Teoria da Computação. Unidade 3 Máquinas Universais. Referência Teoria da Computação (Divério, 2000)
Teoria da Computação Referência Teoria da Computação (Divério, 2000) 1 L={(0,1)*00} de forma que você pode usar uma Máquina de Turing que não altera os símbolos da fita e sempre move a direita. MT_(0,1)*00=({0,1},{q
Linguagens Formais e Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Formais e Problemas
INE5317 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: [email protected] URL:
SCC 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
Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção
Shift e reduce Shift: move o foco uma posição à direita A B C x y z A B C x y z é uma ação shift Reduce: reduz o que está imediatamente à esquerda do foco usando uma produção Se A x y é uma produção, então
Plano da aula. Compiladores. Os erros típicos são sintáticos. Análise Sintática. Usando Gramáticas. Os erros típicos são sintáticos
Plano da aula Compiladores Análise sintática (1) Revisão: Gramáticas Livres de Contexto 1 Introdução: porque a análise sintática? Noções sobre Gramáticas Livres de Contexto: Definição Propriedades Derivações
INE5317 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
ECO026 TEORIA DA COMPUTAÇÃO. Prof: Rafael Santos Site:
ECO026 TEORIA DA COMPUTAÇÃO Prof: Rafael Santos Email: [email protected] Site: http://sites.google.com/site/rafafic Máquinas de Turing Uma linguagem Turing-reconhecível (Linguagem recursivamente enumeravel),
LINGUAGENS FORMAIS E AUTÔMATOS
LINGUAGENS FORMAIS E AUTÔMATOS O objetivo deste curso é formalizar a idéia de linguagem e definir os tipos de sintaxe e semântica. Para cada sintaxe, analisamos autômatos, ue são abstrações de algoritmos.
Linguagens 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
Máquinas de Turing - Computabilidade
BCC244-Teoria da Computação Prof. Lucília Figueiredo Lista de Exercícios 03 DECOM ICEB - UFOP Máquinas de Turing - Computabilidade 1. Seja L uma linguagem não livre de contexto. Mostre que: (a) Se X uma
Hierarquia de Chomsky Exemplos de gramáticas
Hierarquia de Chomsky Exemplos de gramáticas 1 Formalmente, as gramáticas são caracterizadas como quádruplas ordenadas G = ( Vn, Vt, P, S) onde: Vn representa o vocabulário não terminal da gramática. Este
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
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
SCC-5832: II. Ling. Livres de Contexto e Autômatos de Pilha
SCC-5832 - Capítulo 2 e João Luís Garcia Rosa 1 1 Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos [email protected] 2009 Sumário 1 Lema do Bombeamento para Linguagens
COMPILADORES. 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 [email protected] Legenda: = sigma (somatório) = delta ε = épsilon λ = lambda
Construção de Compiladores
Construção de Compiladores Parte 1 Introdução Linguagens e Gramáticas F.A. Vanini IC Unicamp Klais Soluções Motivação Porque compiladores? São ferramentas fundamentais no processo de desenvolvimento de
Gramá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 [email protected] Universidade de São Paulo E.E.S. Ruiz (USP) LFA 1 / 41 Frase do dia Através de três métodos
V Análise Sintática. V.1.1 Gramáticas Livres de Contexto Definições de GLC
V Análise Sintática V.1 Fundamentos Teóricos V.1.1 G.L.C V.1.2 Teoria de Parsing V.2 Especificação Sintática de Ling. de Prog. V.3 - Implementação de PARSER s V.4 - Especificação Sintática da Linguagem
SCC 205 Teoria da Computação e Linguagens Formais
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação SCC 205 Teoria da Computação e Linguagens Formais Autômatos com pilha Lista 3 1. Dê um
Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto. Propriedades de Linguagens Livres de Contexto
UNIVESIDADE ESTADUAL DE MAINGÁ DEPATAMENTO DE INFOMÁTICA Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 A classe de linguagens livres de contexto é fechada
Compiladores - 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,
Compiladores Analisador Sintático. Prof. Antonio Felicio Netto Ciência da Computação
Compiladores Analisador Sintático Prof. Antonio Felicio Netto [email protected] Ciência da Computação 1 Análise Sintática - A Análise Sintática constitui a segunda fase de um tradutor de uma
Compiladores - 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,
Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática
Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira equivalente, se existe mais de uma derivação mais à esquerda para uma cadeia Ou se
Análise Sintática LL(1)
FACULDADE ANGLO AMERICANO FOZ DO IGUAÇU Curso de Ciência da Computação 7º Periodo Disciplina: Compiladores Prof. Erinaldo Sanches Nascimento Análise Sintática LL(1) Análise Sintática Descendente Introdução
Python e sua sintaxe LNCC UFRJ
Python e sua sintaxe LNCC UFRJ Linguagens naturais e formais Linguagens naturais Linguagem formal Um conjunto finito e não-vazio cujos elementos são símbolos Qualquer cadeia finita de símbolos justapostos
Exemplo 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,
Linguagens Formais e Autômatos P. Blauth Menezes
Linguagens Formais e Autômatos P. Blauth Menezes [email protected] Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Ciência da Computação - P. Blauth Menezes
