Linguagens Livres de Contexto

Slides:



Advertisements
Apresentações semelhantes
Linguagens Livre-de-contexto
Advertisements

FAPE - Curso de Ciência da Computação
FAPE - Curso de Ciência da Computação
5.5 – Análise Bottom-Up Tentativa de construir uma árvore sintática para a sentença analisada, começando das folhas, indo em direção à raiz (pós-ordem.
III – Análise sintáctica
I - Noções dum compilador
III – Análise sintáctica
IV – Análise semântica DEI Associação de regras semânticas a produções
Prof. Yandre Maldonado e Gomes da Costa
LFA - Ambiguidade - Equivalência de gramáticas - Hierarquia de Chomsky
Prof. Yandre Maldonado e Gomes da Costa
TEORIA DA COMPUTAÇÃO Parte II  Linguagens Livres de Contexto
Teoria da Computação FIC– Ciência da Computação
Deyvisson, Rafael M.P., Renato, Robson C.F., Rodolfo
Análise Sintática Ascendente ­
Teoria da Computação Sandra de Amo
Gramáticas Livres do Contexto Revisão
Lema do Bombeamento – Gramáticas Livres do Contexto
Linguagens Livres de Contexto
Teoria da Computação BCC 244
Linguagens Livre de Contexto
esquerda p/ direita,read only
Análise Dada uma cadeia de terminais w, queremos saber se wL(G) ou não. Se for o caso, poderemos querer achar uma derivação de w. Um algoritmo que pode.
Identificando Linguagens Não Regulares
Relações em uma Gramática
Gramáticas Estocásticas Livre de Contexto Anderson Faustino da Silva.
Construção de Compiladores
Construção de Compiladores
Construção de Compiladores
Prof. Luiz A M Palazzo Pelotas, fevereiro de 2011
Exercícios Linguagens Formais.
Denis Pinheiro Teoria de Linguagens Prof. Newton José Vieira
Lema do Bombeamento Linguagens Livres de Contexto
Análise léxica e sintática
Informática Teórica Engenharia da Computação
Compiladores, Aula Nº 5 João M. P. Cardoso
Compiladores, Aula Nº 11 João M. P. Cardoso
Compiladores, Aula Nº 9 João M. P. Cardoso
Linguagens Livres de Contexto
Lema do Bombeamento Linguagens Livres de Contexto
Gramáticas Livres de Contexto
Compiladores, Aula Nº 10 João M. P. Cardoso
Análises léxica e sintática
Análise Léxica e Sintática
Expressões Regulares e Gramáticas
Autómatos de Pilha. UM NOVO MODELO PARA OS AUTÓMATOS FINITOS As linguagens regulares são aceites por autómatos finitos. E as linguagens não regulares?
1 Aplicações do Fecho Regular. 2 A interseção de uma linguagem livre de contexto e uma linguagem regular é uma linguagem livre de contexto livre de contexto.
Capítulo II Gramáticas e Linguagens
Analise sintática aula-07-analise-sintática.pdf.
Esquemas L-atribuídos
Análise Sintática LR Prof. Alexandre Monteiro
Análises léxica e sintática
Aula 12 1 Análise Sintáctica Compiladores, Aula Nº 12 João M. P. Cardoso.
Máquinas de Turing.
Compiladores.
COMPILADORES 04 Prof. Marcos.
Geração de classificadores Generalização de exemplos.
Computabilidade e Linguagens Formais
Engenharia/Ciência da Computação
Sintaxe de uma Linguagem
PLP – JavaCC Java Compiler Compiler
tópicostópicos itens 01. Terminologia 02. Operações básicas 03. Representação de linguagens 04. Formalização de gramáticas 05. Processo de derivação 06.
Analisador sintático: Tipos de análises sintáticas
Compilador Software que traduz o texto (linguagem fonte) que representa um programa para código máquina(linguagem alvo) capaz de ser executado pelo.
Reverso de uma Linguagem Regular
1 Decidibilidade continuação…. 2 Teorema: Para qualquer linguagem recursivamente enumerável é indecidível determinar se é finita Prova: Vamos reduzir.
Faculdade Pernambuca - FAPE Compiladores Abril/2007 Compiladores Abril/2007.
Informática Teórica Engenharia da Computação. Teoria da Computação Contexto do que vamos começar a estudar As linguagens também podem ser definidas formalmente.
Informática Teórica Engenharia da Computação. Autômatos Com Pilha São como autômatos finitos não-determinísticos mas com uma pilha. São como autômatos.
Transcrição da apresentação:

Linguagens Livres de Contexto

Linguagens Regulares

Linguagens Livres de Contexto Linguagens Regulares

Linguagens Livres de Contexto Gramáticas Livres de Contexto Autômatos de Pilha pilha autômato

Gramáticas Livres de Contexto

Exemplo Uma gramática livre de contexto : Uma derivação:

Uma gramática livre de contexto : Outra derivação:

(((( ))))

Exemplo Uma gramática livre de contexto : Uma derivação:

Uma gramática livre de contexto : Outra derivação:

Exemplo Uma gramática livre de contexto : Uma derivação:

Uma gramática livre de contexto : Uma derivação:

() ((( ))) (( ))

Definição: Gramática Livre de Contexto Variáveis Símbolos terminais Variável inicial Produções da forma: é um string de variáveis e terminais

Definição: Linguagem Livre de Contexto Uma linguagem é livre de contexto se existe uma gramática livre de contexto tal que

Ordem de Derivação derivação mais à esquerda : derivação mais à direita:

derivação mais à esquerda: derivação mais à direita:

Árvores de Derivação

Árvore de derivação

Árvore de derivação resultado

Partial Derivation Trees Árvore de derivação parcial

Árvore de derivação parcial

forma sentencial Árvore de derivação parcial resulta

À vezes, a ordem de derivação não importa Mais à esquerda: Mais à direita: Mesma árvore de derivação

Ambiguidade

derivação mais à esquerda

derivação mais à esquerda

Duas árvores de derivação

A gramática é ambígua: string tem duas árvores de derivação

Definição: Uma gramática livre de contexto é ambígua se algum string tem duas ou mais árvores de derivação

Em outras palavras: Uma gramática livre de contexto é ambígua se algum string tem duas ou mais derivações mais à esquerda (ou mais à direita)

Porque ambiguidade importa? tome

Resultado correto:

Ambiguidade é ruim para linguagens de programação Gostaríamos de remover ambiguidade

Corrigindo a gramática ambígua: Nova gramática não ambígua:

Única árvore de derivação

A gramática : não é ambígua: Todo string tem uma única árvore de derivação

Ambiguidade Inerente Algumas linguagens livres de contexto possuem apenas gramáticas ambíguas Exemplo:

O string possui duas árvores de derivação