25

Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Embed Size (px)

Citation preview

Page 1: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Formatos Intermediários

Eduardo Ferreira dos Santos

Ciência da Computação

Centro Universitário de Brasília � UniCEUB

Junho, 2017

1 / 25

Page 2: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Sumário

1 Conceitos

2 Compilação

3 Exemplos

2 / 25

Page 3: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

1 Conceitos

2 Compilação

3 Exemplos

3 / 25

Page 4: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Fases

Figura 1.1: Fases do compilador [Aho et al., 2007] 4 / 25

Page 5: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Árvore de sintaxe

Figura 1.2: Modelo de tradução e atribuição [Aho et al., 2007]

5 / 25

Page 6: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Introdução

O papel da análise semântica é produzir uma lista de tarefas;

Para produzir a lista de tarefas o compilador vai precisar da lista desímbolos;

Nesse momento também se faz a veri�cação de tipos;

Objetivo: facilitar a tradução da lista de tarefas em linguagem demáquina.

6 / 25

Page 7: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Etapas da compilação

Análise léxica Detecta entradas com caracteres inválidos;

Análise sintática Produz a árvore de parsing e veri�ca erros de formação daárvore;

Análise semântica Última fase do �front end�, detecta os erros que aindapodem existir.

Figura 1.3: Estrutura lógica do front-end do compilador [Aho et al., 2007]

7 / 25

Page 8: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Código Intermediário

Veri�cação estática: garante atribuição correta de tipos;

Produção de uma sequência de representações intermediárias;

Também realiza uma sequência de passos para compilar o programa.

Figura 1.4: Sequência de representações intermediárias [Aho et al., 2007]

8 / 25

Page 9: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Alto Nível

A representação intermediária de alto nível representa a primeirapassagem pela árvore após a análise sintática[Amarasinghe and Rinard, 2010];

Preserva a estrutura dos objetos;

Preserva a estrutura dos �uxos de controle ;

Objetivo principal: analisar o programa.

9 / 25

Page 10: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Conceitos

Baixo Nível

A representação intermediária de baixo nível coloca o programa emuma sequência para envio ao processador;

Move os modelos de dados para o espaço de endereçamento;

Elimina a estrutura dos �uxos de controle;Utilizada em tarefas de compilação de baixo nível:

Alocação de registradores;Seleção de instruções.

10 / 25

Page 11: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

1 Conceitos

2 Compilação

3 Exemplos

11 / 25

Page 12: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

Tarefas de compilação

1 Determinar formato de objetos e arrays;2 Determinar a ordem da pilha de execução;3 Gerar código para ler os valores;

this

array

objects

parametersetc

4 Gerar código para avaliar as expressões;5 Gerar código para escrever valores;6 Gerar código para as estruturas de controle.

12 / 25

Page 13: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

Tabelas de símbolo

As tabelas de símbolo são utilizadas para produzir[Amarasinghe and Rinard, 2010]:

O layout dos objetos na memóriaCódigo para:

Acessar os campos dos objetos;

Acessar as variáveis locais;

Acessar os parâmetros;

Chamar métodos.

13 / 25

Page 14: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

Tabela de símbolos no parsing

As tabelas de símbolo mapeiam identi�cadores para descritores;

Operação básica: search

Dado um símbolo, encontre um descritor;Exemplos:

Dado um nome de classe, encontre um descritor;Dada uma variável, encontre um descritor;

Descritor local;

Descritor de parâmetro;

Descritor de campo.

14 / 25

Page 15: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

Hierarquia em tabela de símbolos

A hierarquia vem de:

Escopos aninhados Escopo local dentro do escopo do campo;Herança Classe �lho dentro da classe pai.

A hierarquia da tabela de símbolos precisa re�etir essa hierarquia;

Em uma operação de search é necessário percorrer toda a hierarquiada árvore para encontrar o descritor.

15 / 25

Page 16: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Compilação

Descritores

O que contém um descritor?

A informação é utilizada para geração de código e análise semântica:

descritores locais nome, tipo, stack o�set;descritores de campo nome, tipo, object o�set;descritores de método características:

Assinatura (tipo de retorno, recebedor, parâmetros);Referência à tabela de símbolos local;Referência ao código do método.

16 / 25

Page 17: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

1 Conceitos

2 Compilação

3 Exemplos

17 / 25

Page 18: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Programa exemplo

Listing 1: Exemplo da classe Vector [Amarasinghe and Rinard, 2010]

c l a s s v e c t o r {i n t v [ ] ;v o i d add ( i n t x ) {

i n t i ;5 i = 0 ;

wh i l e ( i < v . l e n g t h ) { v [ i ] = v [ i ]+x ; i = i +1; }}

}

18 / 25

Page 19: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Representando arrays

Itens armazenados de maneira contígua na memória;

Tamanho (length) armazenado na primeira palavra.

Código de cores:Vermelho: gerado automaticamente pelo compilador;Azul, amarelo, violeta: dados do programa ou código;Magenta: executando código ou dados.

19 / 25

Page 20: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Representando objetos

A primeira palavra aponta para as informações da classe:Tabela de métodos;Dados do Garbage Collector;etc.

As próximas palavras contém os campos;Em vetores, a próxima palavra referencia o campo.

Figura 3.1: Representação de informações da classe [Aho et al., 2007]

20 / 25

Page 21: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Chamando o método

Mostra a execução do método Vector Add.

21 / 25

Page 22: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Hierarquia do Vector Add

Figura 3.2: Representação da hierarquia no método Vector Add [Aho et al., 2007]

22 / 25

Page 23: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Busca

Exemplo de busca no Vector Add.

23 / 25

Page 24: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

OBRIGADO!!!

PERGUNTAS???

24 / 25

Page 25: Eduardo Ferreira dos Santos...Descritor de campo. 14/25 Compilação Hierarquia em tabela de símbolos A hierarquia vem de: Escopos aninhadosEscopo local dentro do escopo do campo;

Exemplos

Aho, A., Lam, M., Sethi, R., and Ullman, J. (2007).Compiladores�Princ�pios Técnicas e Ferramentas.Pearson, 2a. edition.

Amarasinghe, S. and Rinard, M. (2010).Computer language engineering.Disponível em http://ocw.mit.edu/courses/

electrical-engineering-and-computer-science/

6-035-computer-language-engineering-spring-2010/ Acessadoem 02/08/2016.

25 / 25