SóProvas


ID
1035358
Banca
CESPE / CEBRASPE
Órgão
PEFOCE
Ano
2012
Provas
Disciplina
Arquitetura de Computadores
Assuntos

Julgue os itens seguintes, relativos a montadores, compiladores, ligadores e interpretadores.

A tabela de símbolos utilizada no processo de compilação contém informações sobre tipos e atributos de cada nome definido pelo usuário no programa. Essas informações são colocadas na tabela de símbolos pelos analisadores léxico e sintático e usadas pelo analisador semântico e pelo gerador de código.

Alternativas
Comentários
  • Gabarito Certo

    Tabela de símbolos é uma estrutura de dados, geralmente uma árvore ou tabela de hash, utilizada em compiladores para o armazenamento de informações de identificadores, tais como constantes, funções, variáveis e tipos de dados. É utilizada em quase todas as fases de compilação, como a varredura, a análise sintática, a análise semântica, otimização e geração de código. Em cada fase ela pode ser utilizada como base para comparações ou mesmo atualizada com novos identificadores durante a saída de cada fase.

    Um compilador usa uma tabela de símbolos para guardar informações sobre os nomes declarados em um programa. A tabela de símbolos é pesquisada cada vez que um nome é encontrado no programa fonte. Alterações são feitas na tabela de símbolos sempre que um novo nome ou nova informação sobre um nome já existente é obtida.

    A gerência da tabela de símbolos de um compilador deve ser implementada de forma a permitir inserções e consultas da forma mais eficiente possível, além de permitir o crescimento dinâmico da mesma.

    Com isso é possível concluir que a tabela de símbolos serve como um banco de dados para o processo de compilação. Seu principal conteúdo são informações sobre tipos e atributosde cada nome definido pelo usuário no programa. Essas informações são colocadas na tabelade símbolos pelos analisadores léxico e sintáticoe usadas pelo analisador semântico e pelo gerador de código.

     

    ENTRADAS NA TABELA DE SÍMBOLOS


    Cada entrada na tabela de símbolos é a declaração de um nome. O formato das entradas pode não ser uniforme (embora seja mais fácil manipular entradas uniformes) porque as informações armazenadas para cada nome podem variarde acordo com o tipo/uso do nome.

    Cada entrada na tabela de símbolos pode ser implementada como um registro ("record" ou "struct") contendo campos (nome, tipo, classe, tamanho, escopo, etc.) que a qualificam.


    Tipos de Entradas: - palavras reservadas: inseridas inicialmente na tabela (antes da análise léxica ser iniciada); - fortemente relacionadas com o papel de um nome no contexto da linguagem fonte; - o analisador léxico pode começar o processo de entrada dos nomes -- risco: nome pode denotar objetos distintos.


    Exemplo:

    int x;

    struct x {float y, z;};

    x: inteiro e rótulo de uma estrutura de campos.

     

     

    "Retroceder Nunca Render-se Jamais !"
    Força e Fé !
    Fortuna Audaces Sequitur !