Análise Sintática. Fabiano Baldo
|
|
- Otávio Araújo Vasques
- 7 Há anos
- Visualizações:
Transcrição
1 Compiladores Análise Sintática Fabiano Baldo
2 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 i da seguinte forma: A X 1 X 2 X n A produção tem exatamente um símbolo A do lado esquerdo. Pode ter zero ou mais símbolos X i do lado direito. Por exemplo, uma clausula while é definida desta forma: 2
3 Gramáticas Livre de Contexto Dois tipos de símbolos podem aparecer em uma GLC: Não terminais: São elementos substituídos pelo lado direitodasproduções das produções, quando aparecemdo lado esquerdo. Terminais: Representam as marcações de uma linguagem g (ou tokens). Uma gramática livre de contexto define uma linguagem: Este linguagem é um conjunto de strings (seqüência) de tokens (terminais) i Cada string de tokens é derivada de uma regra de produção. 3
4 Gramáticas Livre de Contexto Ex: Considere a seguinte gramática simplificada para expressões: 4
5 Derivação Uma derivação é uma seqüência de substituições de não terminais por uma escolha das regras de produção gramaticais. A derivação é o método utilizado para a construção de uma cadeia específica de terminais, partindo de um não terminal inicial. Em geral, existem várias derivações para a construção da mesma cadeia de não terminais. 5
6 Derivação Verificar se a seqüência de tokens é reconhecida: Inicia se com o símbolo não terminal chamado raiz; Aplica se produções, substituindo não terminais, até somente restarem terminais; Uma derivação substitui um não terminal pelo lado direito de uma de suas produções; O símbolo denota um passo de derivação. 6
7 Derivação Ex: Derivação da cadeia (num + num) * num é apresentada abaixo: 7
8 Definição Formal de GLC Uma Gramática livre de contexto consiste em: Um conjunto finito de terminais T Um conjunto finito de não terminais N (disjunto de T) Um símbolo inicial S Є N Um conjunto de produções ou regras gramaticais P Uma regra de produção é da forma: tal que e Um produção com zero símbolos no lado direito (n = 0) é da forma: Uma produção também é escrita como:, tal que 8
9 Linguagem de uma Gramática A linguagem de uma gramática G é O símbolo de derivação pode ser estendido: : Derivado em um ou mais passos : Derivado em zero ou mais passos Freqüentemente, mais de uma produção compartilham o mesmo lado esquerdo da produção É o mesmo que: 9
10 Derivação mais à Esquerda e mais à Direita Derivação mais à esquerda de uma sentença é a seqüência de formas sentenciais que se obtém derivando sempre o símbolo não terminal mais à esquerda; Derivação mais à direita é a seqüência de formas sentenciais que se obtém derivando sempre o símbolo não terminal mais à direita; 10
11 Derivação mais à Esquerda Ex: (num + num) * num 11
12 Derivação mais à Direita Ex: (num + num) * num 12
13 Propriedades de GLC Gramática sem ciclos: É uma gramática que não possui derivação da forma: Gramáticas com ε produção: É uma gramática que possui produção do tipo A ε Gramática recursiva à esquerda: É uma gramática que permite e derivação do tipo: Gramática recursiva à direita: É uma gramática que permite derivaçãodo do tipo: 13
14 Propriedades de GLC A recursividade em GCL é importante, pois a repetição poder ser construída através da recursão. As ε produções sãotambém úteis para definir estruturas opcionais da linguagem. 14
15 Arvore de Análise Sintática Uma árvore de análise sintática é uma árvore rotulada cujos nós interiores são rotulados por nãoterminais, já os nós folha são rotulados por terminais. Os filhos de cada nó interno representam a substituição do não terminal associado em um passo de derivação. 15
16 Arvore de Análise Sintática É uma representação gráfica da derivação de uma sentença, que: Filtra as escolhas levando em consideração a ordem de substituição; Tem como raiz da árvore o não terminal inicial S Nós internos representam não terminais pertencentes a N Nós folhas são terminais em T ou ε O nó A pode ter filhos se existir a regra 16
17 Arvore de Análise Sintática Ex: (num + num) * num 17
18 Enumeração Pré ordem e Pósordem Uma árvore de derivação pode ser construída de derivações à esquerda ou à direita. Derivações mais à esquerda produzem uma árvore enumerada em pré ordem. Derivações mais à direita produzem uma árvore enumerada e adaem pós ordem ode invertida. Enumeração pré ordem corresponde ao parsing top down Enumeração pós ordem corresponde ao parsing botton up. 18
19 Enumeração em Pré ordem 19
20 Enumeração em Pós ordem Invertida 20
21 Árvore Sintática Abstrata Uma árvore de análise sintática contém muito mais informação que o necessário para um compilador gerar código executável. Uma árvore sintática abstrata pode ser entendida como uma representação em forma de árvore de uma notação simplificada. 21
22 Árvore Sintática Abstrata Ex: (3+4)*2 22
23 Árvore Sintática Abstrata O princípio da tradução dirigida por sintaxe estabelece que o significado da sentença está diretamente relacionado a sua estrutura sintática representada na árvore. Assim, a posição que cada token na árvore indica sua relação com os outros tokens reconhecidos. 23
24 Gramática Ambígua É uma gramática que permite construir mais de uma árvore de derivação para uma mesma sentença. Isto representa um problema para o analisador sintático, pois ela não especifica com precisão a estrutura sintática do um programa. Este sepobe problema apode ser comparado ado ao dos autômatos não determinísticos, onde dois caminhos podem aceitar a mesma cadeia. 24
25 Gramática Ambígua A eliminação de ambigüidade não é tão simples como a eliminação de não determinismo em autômatos. Existem duas maneiras: Estabelecer uma regra que especifique a cada caso ambíguo qual é o caminho correto. (Sem alterar a gramática) Alterar a gramática para forçar a construção da árvore sintática i correta, removendo a ambigüidade. d 25
26 Gramática Ambígua Infelizmente só isso não garante que a gramática não possui ambigüidade. 26
27 Eliminação de Ambigüidade Para tratar o problema de ambigüidade em gramática são utilizados os conceitos de precedência e associatividade. Eles especificam uma ordem na avaliação dos operadores. Operadores es com maior ao precedência c são avaliados aaados primeiro. Operadores com igual precedência são avaliados de acordo com a associatividade (esquerda direita, direta esquerda) esquerda). 27
28 Eliminação de Ambigüidade Para tratar a precedência dos operadores: Divide se os operadores em grupos de igual precedência Para cada nível de precedência, introduz se um não terminal e uma regra gramatical Para tratar a associatividade dos operadores: Cria se regras gramaticais que serão recursivas à direita ou à esquerda. 28
29 Eliminação de Ambigüidade Gramática para expressões sem ambigüidade 29
30 Ambigüidade da declaração Else Considera a seguinte gramática para a declaração do If 30
31 Ambigüidade da declaração Else Existem duas árvores de derivação para: As duas árvores traduzem diferentemente a parte else: 31
32 Eliminação da Ambigüidade do Else A eliminação da ambigüidade pode ser feita dessa forma: Esta regra é denominada de regra de aninhamento com o mais próximo; 32
Compiladores 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 maisCompiladores. Parser LL 10/13/2008
Compiladores Fabiano Baldo Usa uma pilha explícita ao invés de chamadas recursivas para realizar a análise sintática. LL(k) parsing significa que ktokensà frente são utilizados. O primeiro L significa
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 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 maisAná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
Leia maisAnálise Sintática. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 18
Análise Sintática Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 18 Sumário 1 Introdução 2 Derivações 2 / 18 1 Introdução 2 Derivações 3 /
Leia maisCOMPILADORES. 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. geovanegriesang@unisc.br Data Conteúdo 23/09/2013 3. Análise Sintática: 3.1 analisadores
Leia maisUma 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
Leia maisCompiladores - Gramáticas
Compiladores - Gramáticas Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp Ambiguidade Uma gramática é ambígua se existe alguma cadeia para qual ela tem mais de uma árvore sintática De maneira
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 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 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 maisV 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
Leia maisAnálise Sintática I. Eduardo Ferreira dos Santos. Abril, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 42
Análise Sintática I Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Abril, 2017 1 / 42 Sumário 1 Introdução 2 Derivações 3 Ambiguidade 4 Análise sintática descendente
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 maisPlano 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
Leia maisAnálise Sintática II. Eduardo Ferreira dos Santos. Outubro, Ciência da Computação Centro Universitário de Brasília UniCEUB 1 / 34
Análise Sintática II Eduardo Ferreira dos Santos Ciência da Computação Centro Universitário de Brasília UniCEUB Outubro, 2016 1 / 34 Sumário 1 Introdução 2 Ambiguidade 3 Análise sintática descendente 4
Leia maisConceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 04 Sintaxe e Semântica Edirlei Soares de Lima Sintaxe e Semântica A descrição de uma linguagem de programação envolve dois aspectos principais:
Leia maisCompiladores - Especificando Sintaxe
Compiladores - Especificando Sintaxe 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
Leia maisUm Compilador Simples. Definição de uma Linguagem. Estrutura de Vanguarda. Gramática Livre de Contexto. Exemplo 1
Definição de uma Linguagem Linguagem= sintaxe + semântica Especificação da sintaxe: gramática livre de contexto, BNF (Backus-Naur Form) Especificação Semântica: informal (textual), operacional, denotacional,
Leia maisINE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Conceitos Léxica estudo dos símbolos que compõem uma linguagem Sintaxe
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 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 maisPython 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
Leia maisCompiladores. Bruno Lopes. Bruno Lopes Compiladores 1 / 30. Instituto de C
ompiladores Análise Sintática Bruno Lopes Bruno Lopes ompiladores 1 / 30 Front-end Lida com a linguagem de entrada Teste de pertinência: código fonte linguagem fonte? Programa está bem formado? Sintaticamente?
Leia maisAnálise Sintática. Compiladores Cristina C. Vieira. Compiladores 2012/2013
Análise Sintática Compiladores Cristina C. Vieira 1 Árvore Sintática Nós internos: símbolos não-terminais Folhas: símbolos terminais Arcos: de símbolos não-terminais do LHS da produção para nós do RHS
Leia maisCompiladores. Análise Sintática
Compiladores Análise Sintática Cristiano Lehrer, M.Sc. Introdução (1/3) A análise sintática constitui a segunda fase de um tradutor. Sua função é verificar se as construções usadas no programa estão gramaticalmente
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 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 maisCompiladores - Análise Recursiva
Compiladores - Análise Recursiva Fabio Mascarenhas 2015.2 http://www.dcc.ufrj.br/~fabiom/comp Geradores x Reconhecedores A definição formal de gramática dá um gerador para uma linguagem Para análise sintática,
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 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 maisConstrução de Compiladores Aula 3 - Analisador Sintático
Construção de Compiladores Aula 3 - Analisador Sintático Bruno Müller Junior Departamento de Informática UFPR 20 de Agosto de 2014 Definição A análise sintática (parsing) é um processo que verifica se
Leia maisSintaxe e Semântica. George Darmiton da Cunha Cavalcanti.
Sintaxe e Semântica George Darmiton da Cunha Cavalcanti (gdcc@cin.ufpe.br) Tópicos Introdução O problema de descrever a sintaxe Métodos formais para descrever a sintaxe Gramáticas de atributos Descrevendo
Leia maisCompiladores - Análise Léxica
Compiladores - Análise Léxica Fabio Mascarenhas 2017.2 http://www.dcc.ufrj.br/~fabiom/comp Introdução Primeiro passo do front-end: reconhecer tokens Tokens são as palavras do programa O analisador léxico
Leia maisUniversidade Federal de Alfenas
Universidade Federal de Alfenas Linguagens Formais e Autômatos Aula 12 Linguagens Livres do Contexto humberto@bcc.unifal-mg.edu.br Linguagens Livres do Contexto Para as LLC, temos as Gramáticas Livres
Leia maisIntrodução à Programação
Introdução à Programação Linguagens de Programação: sintaxe e semântica de linguagens de programação e conceitos de linguagens interpretadas e compiladas Engenharia da Computação Professor: Críston Pereira
Leia maisCompilação: Erros. Detecção de Erros: * Analisadores Top-Down - Preditivo Tabular (LL) - Feito a mão. * Analisadores Botton-Up: - Shift-Reduce (SLR)
Compilação: Erros Detecção de Erros: * Analisadores Top-Down - Preditivo Tabular (LL) - Feito a mão * Analisadores Botton-Up: - Shift-Reduce (SLR) * Erros no Lex * Erros no Yacc * Erros na Definição da
Leia maisCompiladores. Exemplo. Caraterísticas de Gramáticas. A αβ 1 αβ 2. A αx X β 1 β 2. Lembrando... Gramáticas Livres de Contexto
Compiladores Análise sintática (2) Análise Top-Down Lembrando... Gramáticas Livres de Contexto Análise sintática = parsing. Baseada em GLCs Gramática: S A B Top-Down Bottom-Up S AB cb ccbb ccbca S AB A
Leia maisCapítulo II Gramáticas
Capítulo II Gramáticas II.1 Motivação O que é uma Gramática? Um sistema gerador de linguagens; Um sistema de reescrita; Uma maneira finita de representar uma linguagem; Um dispositivo formal usado para
Leia maisV.2 Especificação Sintática de Linguagens de Programação
V.2 Especificação Sintática de Linguagens de Programação Deve ser baseada: No planejamento da Linguagem / Compilador Objetivos, Filosofia, Potencialidades,... Nos critérios de projeto/avaliação Legibilidade,
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 maisCompiladores - Análise LL(1)
Compiladores - Análise LL(1) Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp Gramáticas LL(1) Uma gramática é LL(1) se toda predição pode ser feita examinando um único token à frente Muitas
Leia maisCompiladores - Análise LL(1)
Compiladores - Análise LL(1) Fabio Mascarenhas 2017.1 http://www.dcc.ufrj.br/~fabiom/comp Gramáticas LL(1) Uma gramática é LL(1) se toda predição pode ser feita examinando um único token à frente Muitas
Leia maisConstruçã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
Leia maisV Teoria de Parsing. Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada
V Teoria de Parsing Termos Básicos: Parser Analisador Sintático Parsing Analise Sintática Parse Representação da analise efetuada Ascendentes: S + x (* Seq. Invertida Reducao *) dir Exemplo: Descendentes:
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 maisCapítulo II Gramáticas
Capítulo II Gramáticas II.1 Motivação O que é uma Gramática? Um sistema gerador de linguagens; Um sistema de reescrita; Uma maneira finita de representar uma linguagem; Um dispositivo formal usado para
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 maisLinguagens de Domínio Específico
Linguagens de Domínio Específico Fabio Mascarenhas 2016.1 http://www.dcc.ufrj.br/~fabiom/dsl Processamento de uma DSL Análise Sintática Descendente O analisador sintático descendente é parecido com o analisador
Leia maisINE5318 Construção de Compiladores. AULA 4: Análise Sintática
INE5318 Construção de Compiladores AULA 4: Análise Sintática Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Definições preliminares Parser (Analisador
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 maisAnálise sintática. Análise sintática ascendente. Parte-se dos símbolos terminais em direção ao símbolo inicial da gramática. Derivação mais à direita
Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo
Leia maisLinguagens de Programação Aula 4
Aula 4 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada... Autômatos finitos AF:exemplos... Cadeia de caracteres a,b,c 2/82 Na aula passada... Autômatos finitos AF:exemplos... Números inteiros(com
Leia maisVantagens de uma Gramática. Sintaxe de uma Linguagem. Analisador Sintático - Parser. Papel do Analisador Sintático. Tiposde Parsers para Gramáticas
Sintaxe de uma Linguagem Cada LP possui regras que descrevem a estrutura sintática dos programas. specificada através de uma gramática livre de contexto, BNF (Backus-Naur Form). 1 Vantagens de uma Gramática
Leia maisTokens, Padroes e Lexemas
O Papel do Analisador Lexico A analise lexica e a primeira fase de um compilador e tem por objetivo fazer a leitura do programa fonte, caracter a caracter, e traduzi-lo para uma sequencia de símbolos lexicos
Leia maisIntrodução. Compiladores Análise Semântica. Introdução. Introdução. Introdução. Introdução 11/3/2008
Compiladores Análise Semântica Fabiano Baldo Análise Semântica é por vezes referenciada como análise sensível ao contexto porque lida com algumas semânticas simples tais como o uso de uma variável somente
Leia maisCompiladores - Análise Léxica
Compiladores - Análise Léxica Fabio Mascarenhas 2018.1 http://www.dcc.ufrj.br/~fabiom/comp Introdução Primeiro passo do front-end: reconhecer tokens Tokens são as palavras do programa O analisador léxico
Leia maisCompiladores. Análise lexical. Plano da aula. Motivação para análise lexical. Vocabulário básico. Estrutura de um compilador
Estrutura de um compilador programa fonte Compiladores Análise lexical () Expressões Regulares analisador léxico analisador sintático analisador semântico análise gerador de código intermediário otimizador
Leia maisLFA 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 olivete@fct.unesp.br www.fct.unesp.br/docentes/dmec/olivete/lfa 1 Classes Gramaticais Linguagens
Leia maisCompiladores. Análise Sintática
Compiladores Análise Sintática Análise Sintática Vejamos um exemplo, seja a seguinte instrução de atribuição: posicao = inicial + incremento * 60 Na análise sintática tenta-se construir uma frase correta
Leia maisMAB Análise Sintática. Wednesday, April 4, 12
MAB 471 2012.2 Análise Sintática http://www.dcc.ufrj.br/~fabiom/comp O Front End Código fonte Scanner tokens Parser IR Erros Parser Verifica a corretude gramatical da sequência de palavras e categorias
Leia maisDESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE
DESENVOLVIMENTO DO COMPILADOR PARA A LINGUAGEM SIMPLE Jeferson MENEGAZZO 1, Fernando SCHULZ 2, Munyque MITTELMANN 3, Fábio ALEXANDRINI 4. 1 Aluno 5ª fase do Curso de Ciência da Computação do Instituto
Leia maisConceitos de Linguagens de Programação
Conceitos de Linguagens de Programação Aula 06 Análise Sintática (Implementação) Edirlei Soares de Lima Análise Sintática A maioria dos compiladores separam a tarefa da análise sintática
Leia maisMAB Análise Sintática. Wednesday, August 31, 11
MAB 471 2011.2 Análise Sintática http://www.dcc.ufrj.br/~fabiom/comp O Front End Código fonte Scanner tokens Parser IR Erros Parser Verifica a corretude gramatical da sequência de palavras e categorias
Leia maisCompiladores. Prof. Bruno Moreno Aula 8 02/05/2011
Compiladores Prof. Bruno Moreno Aula 8 02/05/2011 RECONHECIMENTO DE TOKENS Reconhecimento de Tokens Até aqui aprendemos a identificar tokens Para reconhecimento, a única abordagem utilizada foi árvores
Leia maisNotação EBNF BNF estendida Notação usada com o YACC (gerador de parsers Bottom-up)
Notação EBNF BNF estendida Notação usada com o YACC (gerador de parsers Bottom-up) 1 Notações BNF: já vista EBNF: existem pelo menos 3 estilos principais de BNF estendidas Derivada de expressões regulares
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 maisLinguagens, Reconhecedores e Gramáticas
Linguagens, Reconhecedores e Gramáticas Já vimos que Linguagem é um conjunto de cadeias de símbolos sobre um alfabeto/vocabulário, V. É um subconjunto específico de V*. Estas cadeias são denominadas sentenças
Leia maisCompiladores - Análise Recursiva
Compiladores - Análise Recursiva Fabio Mascarenhas - 2013.2 http://www.dcc.ufrj.br/~fabiom/comp Analisador Recursivo Maneira mais simples de implementar um analisador sintático a partir de uma gramática,
Leia maisEduardo Belo de Araújo. Analisador ANSI-C
Eduardo Belo de Araújo Analisador ANSI-C Monografia apresentada ao Departamento de Ciência da Computação da Universidade Federal de Lavras, como parte das exigências do curso de Pós-Graduação Lato Sensu
Leia maisBNF (Backus-Naur Form) Gramática Livres de Contexto / Estruturas Recursivas
Sintae => Usualmente Gramática Livre do Conteto (GLC) BNF (Backus-Naur Form) Gramática Livres de Conteto / struturas Recursivas comando => IF epressao THN epressao LS epressao epressao => (epressao) OR
Leia maisCOMPILADORES. 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 COPILADORES Análise sintática Parte 03 Prof. geovanegriesang@unisc.br Analisador sem recursão Analisador sintático sem recursão pode
Leia maisRevisão. Fases da dacompilação
1 Revisão Prof. Julio Arakaki Julio Arakaki 1 Fases da dacompilação Código fonte Análise Léxica tokens e lexemas Análise Sintática Árvore Sintática Abstrata (ASA) Análise Semântica ASA decorada Geração
Leia maisAnálise Sintática Bottom-up
MAB 471 2011.2 Análise Sintática Bottom-up http://www.dcc.ufrj.br/~fabiom/comp Recapitulando parsers top-down Constróem árvore sintática da raiz até as folhas Recursão à esquerda faz parsers entrarem em
Leia maisAná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
Leia maisTradução Dirigida Pela Sintaxe
Tradução Dirigida Pela Sintaxe Julho 2006 Sugestão de leitura: Livro do Aho, Sethi, Ullman (dragão) Seções 5.1 5.5 Tradução dirigida pela sintaxe É uma técnica que permite realizar tradução (geração de
Leia maisAnálise sintática. Análise sintática. Top-down ou descendente. Com retrocesso: por tentativa e erro. Preditiva: para gramáticas LL(1) 09/04/2012
Análise sintática Função, interação com o compilador Análise descendente e ascendente Especificação e reconhecimento de cadeias de tokens válidas Implementação Tratamento de erros Prof. Thiago A. S. Pardo
Leia maisAnálise Sintática - Final
MAB 471 2011.2 Análise Sintática - Final http://www.dcc.ufrj.br/~fabiom/comp LR(k ) vs LL(k ) Encontrando o próximo passo em uma derivação LR(k) Cada redução na análise detectável com o contexto esquerdo
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 maisCompiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA)
Compiladores I Prof. Ricardo Santos (cap 3 Análise Léxica: Introdução, Revisão LFA) Análise Léxica A primeira fase da compilação Recebe os caracteres de entrada do programa e os converte em um fluxo de
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 maisNotação EBNF BNF estendida Notação usada com o YACC (gerador de parsers Bottom-up)
Notação EBNF BNF estendida Notação usada com o YACC (gerador de parsers Bottom-up) 1 Notações BNF: já vista EBNF: existem pelo menos 3 estilos principais de BNF estendidas Derivada de expressões regulares
Leia maisLinguagens de Programação Aula 5
Aula 5 Celso Olivete Júnior olivete@fct.unesp.br Na aula anterior Ambiguidade Análise léxica Exercício calculadora 2/@ Na aula anterior AF calculadora 3/@ Na aula de hoje Análise léxica implementação Gramática
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 maisINE5317 Linguagens Formais e Compiladores. AULA 10: Anális e S intática
INE5317 Linguagens Formais e Compiladores AULA 10: Anális e S intática baseado em material produzido pelo prof Paulo B auth Menezes e pelo prof Olinto Jos é Varela Furtado Ricardo Azambuja Silveira INE-CTC-UFSC
Leia maisAnálise Sintática (Cap. 04) Análise Sintática Descendente
(Cap. 04) Análise Sintática Descendente Análise Sintática Análise sintática descendente Constrói a árvore de derivação de cima para baixo, da raíz para as folhas, criando os nós da árvore em pré ordem
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 maisI LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1
PREÂMBULO PREFÂCIO xiii xv I LINGUAGENS E PROCESSADORES: INTRODUÇÃO 1 1 1.1 1.1.1 1.1.2 1.2 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 2 2.1 2.2 2.2.1 2.2.2 2.3 2.3.1 2.3.2 2.3.3 2.3.4 2.3.5 2.3.6 2.4 2.4.1 2.4.2
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 maisInterfaces de Vanguarda do Compilador
Interfaces de Vanguarda do Compilador Stefani Henrique Ramalho¹, Prof Mário Rubens Welerson Sott¹ ¹DCC Departamento de Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Barbacena MG
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 maisCompiladores - JACC. Fabio Mascarenhas
Compiladores - JACC Fabio Mascarenhas - 2013.1 http://www.dcc.ufrj.br/~fabiom/comp JACC Gerador de analisadores sintáticos LALR que gera código Java Sintaxe baseada na sintaxe do YACC (e de muitos outros
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 maisMarcos 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 maisLinguagens Formais e Autômatos
Linguagens Formais e Autômatos Gramáticas Livre do Contexto (GLC) Cristiano Lehrer, M.Sc. Linguagens Livres do Contexto (1/2) Seu estudo é de fundamental importância na informática: Compreende um universo
Leia mais