Carregando...
Carregando...
Ajude a melhorar a plataforma
A você foi dada a incumbência de escrever um compilador para uma linguagem de programação que permite a declaração de variáveis com o mesmo nome em diferentes escopos. Sobre essa situação, avalie as seguintes assertivas:
I. Nesse caso, a tabela de símbolos pode conter várias entradas com o mesmo nome, mas em diferentes escopos. II. Quando uma variável é referenciada em um programa, o compilador deve usar a regra de "escopo mais próximo" para determinar qual variável com o mesmo nome é acessada. III. A ordem de declaração das variáveis não afeta o resultado, já que o compilador usa apenas o escopo mais próximo para determinar a variável a ser acessada. IV. Em linguagens que permitem sombreamento de variáveis (variáveis com o mesmo nome em escopos diferentes), a tabela de símbolos deve manter informações sobre os escopos em que cada variável foi declarada. V. O uso de variáveis com o mesmo nome em diferentes escopos pode causar ambiguidades e erros semânticos, e o compilador deve tratá-los adequadamente.
Assinale a alternativa com a ordem correta:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa C - V, V, F, V, V.
O gerenciamento de escopos e a resolução de nomes são tarefas fundamentais da análise semântica de um compilador, geralmente implementadas através de Tabelas de Símbolos.
A análise das assertivas revela:
| Assertiva | Status | Justificativa |
| :--- | :--- | :--- |
| I | Verdadeira | Necessário para suportar blocos {} aninhados. |
| II | Verdadeira | É o comportamento padrão de linguagens como C, Java e Python. |
| III | Falsa | A ordem define a visibilidade e o ciclo de vida. |
| IV | Verdadeira | Informação essencial para a geração de código correta. |
| V | Verdadeira | Conflitos semânticos são tratados nesta fase. |
A única assertiva incorreta é a III, pois a ordem cronológica e espacial das declarações é vital para a semântica do programa e para a correta organização da pilha de símbolos.
Alternativa C.