A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco.

Apresentações semelhantes


Apresentação em tema: "Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco."— Transcrição da apresentação:

1 Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco – UFPE mscla@cin.ufpe.br

2 Roteiro Visão Geral Introdução Identificação Ambiente Padrão Verificação de Tipos Decoração da AST Padrão Visitor

3 Visão Geral executável Análise sintática Código fonte AST Análise semântica Geração de código AST decorada Análise léxica Tokens

4 Introdução Fase da compilação responsável por verificar se o código fonte satisfaz as restrições contextuais de uma linguagem Identificação Verificação de tipos

5 Identificação Verifica o escopo dos identificadores de um programa Ocorrências de declaração Ocorrências de aplicação Pode representar um gargalo se mal implementado

6 Identificação Estrutura de blocos aninhada Definição de níveis de escopo Nenhuma variável pode ser declarada duas vezes no mesmo bloco void method(int a){ int b = 7; if(a > 3){ int b = 0; if(b < 5){ b--; } } else { a--; } while(a > 5){ a++; }

7 Identificação Tabela de símbolos Associa um identificador com informações relevantes para a análise contextual Escopo de validade Informações sobre a sua declaração  Geralmente um ponteiro para a sub-árvore que representa a declaração

8 Identificação Durante a análise de cada escopo são colocadas na tabela de símbolos entradas referentes às declarações do mesmo Ao se abandonar um dado escopo, os identificadores do mesmo deixam de fazer parte da tabela Nas ocorrências de aplicação faz-se a busca pela entrada que possuir maior nível de escopo

9 Identificação escopoIdentificadorDeclaração 1a 2a 2b

10 Ambiente padrão Corresponde a recursos (bibliotecas) oferecidos pela linguagem sem a necessidade de referência explícita do programador java.lang, Prelude,... Tabela de símbolos criada com tal ambiente

11 Verificação de Tipos Tipos estáticos e dinâmicos Regras de tipo Inferência de tipos em expressões T 1 × T 2  T 3 T 1  T 2

12 Decoração da AST Tem o objetivo de tornar a AST uma estrutura auto-contida Eliminação da tabela de símbolos Anotação dos tipos no nós da AST Criação de links entre ocorrências de aplicação e declarações

13 Decoração da AST VariableDeclaration 3 + x x Inteiro VariableDeclaration BinExpr InteiroLiteral + identifier x Inteiro x 3

14 O Padrão Visitor Padrão comportamental Representa uma operação a ser executada sobre os elementos de uma estrutura de objetos Novas operações podem ser definidas sem mudar as classes dos elementos sobre os quais opera

15 O Padrão Visitor

16 Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco – UFPE mscla@cin.ufpe.br


Carregar ppt "Análise Contextual Mauro Araújo Teoria e Implementação de Linguagens Computacionais - IF688 Centro de Informática – CIn Universidade Federal de Pernambuco."

Apresentações semelhantes


Anúncios Google