Eric, Fabrício, João Vicente Tabela de Símbolos Eric, Fabrício, João Vicente
Tabela de Símbolos Funções: - Armazenar as informações sobre os nomes declarados num programa podendo ser: Variáveis Procedimentos Funções Métodos Classes Entre outros - Usada, pelo analisador semântico, para verificar se uma variável foi declarada, na verificação de compatibilidade de tipos, entre outras consultas que forem necessárias. - Pode ser usada para armazenar os valores das variáveis durante a execução do programa - Utilizado no ambiente de debug
Tabela de Símbolos Por ser muito utilizada em consultas, é importante que a estrutura de dados tenha uma performance considerável. Também é necessário o crescimento dinâmico de tal estrutura de dados - Por isso a escolha da tabela hashing em nosso trabalho Devem ser guardados quais endereços de memória serão associados as variáveis - No nosso trabalho foi utilizada o atributo referência na classe Simbolo para essa utilidade
Tabela de Símbolos Escopo: Um programa pode ter várias tabelas de símbolos dando assim o escopo para os símbolos. Alguns exemplos: Tabela de Símbolos globais (externos) Tabela de Símbolos globais (internos ao módulo) Tabela de Símbolos de uma função Cada função tem a sua própria tabela de símbolos
Tabela de Símbolos Utilizando a Tabela de Símbolos: - As informações armazenadas para cada símbolo podem variar de acordo com o tipo/uso (não sendo o caso do nosso trabalho) - Cada entrada na tabela pode ser implementada como um registro contendo campos (nome, tipo, classe, tamanho, escopo, etc.) sobre o símbolo. - Cria-se a classe Símbolo. - Cria-se a classe Tabela (Tabela de Símbolos). - A interação se dar por ações semânticas inseridas no analisador sintático, na classe principal do compilador.
Tabela de Símbolos A tabela se símbolos interage com quase todas as fases do compilador: varredura, análise sintática e análise semântica. - Elas podem fornecer identificadores a tabela -O analisador semântico interage com os tipos de dados e outras informações -As fases de otimização e geração de código utilizam a informação da tabela para efetuar escolhas apropriadas
FIM