Micro-fundamentos - Compiladores
  • Microfundamentos Compiladores
  • COMO CONTRIBUIR
  • FTC
    • Autômato finito determinístico
    • Expressões regulares
    • Gramáticas
      • Expressões regulares juntos as gramáticas
  • Introdução a Compiladores - conceitos principais e primeiros passos
    • Visão geral e conceitos principais
    • Definindo a linguagem que queremos criar
    • Criando a base do Compilador
  • Front-End - Fase da Vanguarda e Tabela de Símbolos
    • Tabela de Simbolos
      • Teoria
      • Implementação
    • Analisador Léxico
      • Teoria
      • Implementação
    • Analisador Sintático
      • Teoria
      • Gramática LL(1)
      • Implementação
    • Analisador Semântico
      • Teoria
      • Implementação
  • Middle-End - Geração de Código intermediário e Otimização
    • Geração de Código Intermediário
      • Teoria
      • Implementação
    • Otimização de Código
      • Teoria
      • Implementação
  • Back-End - Geração de Código Assembly e Ambientes em Tempo de Execução
    • Geração de Código
      • Teoria
      • Implementação
    • Ambientes em Tempo de Execução
      • Teoria
Powered by GitBook
On this page
  • Tabela de Símbolos
  • Você vai aprender...
  • Pré-requisitos
  • Definição
  • Links úteis
  1. Front-End - Fase da Vanguarda e Tabela de Símbolos
  2. Tabela de Simbolos

Teoria

PreviousTabela de SimbolosNextImplementação

Last updated 2 years ago

Tabela de Símbolos

Você vai aprender...

  • O que é a Tabela de Símbolos

  • Qual é a importância da Tabela de Símbolos

Pré-requisitos

Definição

A tabela de símbolos é uma Estrutura de Dados usada por linguagens de programação e Compiladores para armazenar informações sobre símbolos usados em um programa, estes símbolos podem ser variáveis, funções, constantes, palavras reservadas e entre outros. Esta estrutura permite que o compilador (ou interpretador) procure rapidamente a definição e as propriedades de um símbolo enquanto processa o programa.

Uma tabela de símbolos normalmente inclui as seguintes informações para cada símbolo:

  • O nome do símbolo

  • O tipo do símbolo (por exemplo, inteiro, string, etc.)

  • O escopo do símbolo (ou seja, o escopo do programa onde o símbolo é visível)

  • A localização do símbolo na memória (por exemplo, o endereço de uma variável na memória)

As tabelas de símbolos são usadas para várias finalidades em diferentes partes do compilador, como verificar a sintaxe e a semântica de um programa, gerar código de máquina e otimizar o desempenho do código. Eles são uma parte importante da infraestrutura do compilador ou do interpretador, pois permitem que o programa faça referência e manipule símbolos de maneira consistente e eficiente.

Tais símbolos armazenados na tabela são coletados pelas fases de análise do compilador (Analisador Léxico) e então as fases posteriores (Analise Sintática e Semântica) podem adicionar informações a essa entrada, como tipo do identificador, seu uso, sua posição de armazenamento, etc.

Links úteis

Introdução a Compiladores
Slides de Compiladores da UFMG(pg 20-32)
Compiladores | Aula 08 - Tabela de Símbolos | Escopos | Blocos Aninhados | Implementação