eduardo ferreira dos santos...descritor de campo. 14/25 compilação hierarquia em tabela de...
TRANSCRIPT
![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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/1.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/2.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/3.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/4.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/5.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/6.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/7.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/8.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/9.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/10.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/11.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/12.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/13.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/14.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/15.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/16.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/17.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/18.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/19.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/20.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/21.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/22.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/23.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/24.jpg)
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;](https://reader031.vdocuments.com.br/reader031/viewer/2022022109/5c449cd893f3c34c5a371b20/html5/thumbnails/25.jpg)
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