Pular para o conteúdo principal

Questão de Programação — Conceitos básicos de programação — FGV 2025

ProgramaçãoConceitos básicos de programação
Código
fg116136
Banca
FGV
Órgão
MPU
Ano
2025
Nível
Superior
Cargo
Analista do - Perito em Tecnologia da Informação e Comunicação
O analista Pedro foi incumbido de analisar o mau funcionamento do compilador de software CMP+, utilizado no MPU. O CMP+ está apresentando erros na fase da compilação na qual é gerada a árvore de derivação, que guarda uma representação hierárquica do código-fonte.Sabendo disso, Pedro deve concentrar sua análise do CMP+ na fase de:
  1. Aanálise léxica;
  2. Banálise sintática;
  3. Canálise semântica;
  4. Dgeração de código objeto;
  5. Egeração de código de máquina.
Revelar gabarito e comentário

GabaritoB — análise sintática;

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Fases da Compilação – Árvore de Derivação

Gabarito: letra B. A árvore de derivação (ou árvore sintática) é gerada durante a análise sintática do compilador, fase em que o parser verifica a estrutura gramatical do código-fonte e constrói uma representação hierárquica (árvore) das sentenças da linguagem. Portanto, Pedro deve focar sua análise nessa fase.

As fases da compilação são sequenciais e cada uma tem um produto específico. A banca testa o conhecimento do fluxo de trabalho do compilador:

Fase

Produto

Análise Léxica

Sequência de tokens

Análise Sintática

Árvore de derivação (parse tree)

Análise Semântica

Árvore anotada, tabela de símbolos

Geração de Código Intermediário

Código intermediário (ex.: três endereços)

Otimização

Código intermediário otimizado

Geração de Código Objeto

Código objeto (assembly ou binário)

Geração de Código de Máquina

Código executável

A árvore de derivação é o resultado imediato do parser, obtido a partir da gramática da linguagem.

  1. 1Análise léxicaTokens
  2. 2Análise sintáticaÁrvore de derivação
  3. 3Análise semânticaÁrvore anotada
  4. 4Geração de código intermediárioCódigo 3 endereços
  5. 5OtimizaçãoCódigo otimizado
  6. 6Geração de código objetoAssembly/binário
  7. 7Geração de código de máquinaExecutável
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A análise léxica (ou scanning) apenas transforma a sequência de caracteres em tokens (unidades léxicas como identificadores, operadores, etc.). Ela não constrói nenhuma árvore hierárquica.

Alternativa B — ✅ Correta ⟵ GABARITO

A análise sintática (parsing) recebe a sequência de tokens do léxico e, com base na gramática, constrói a árvore de derivação (também chamada de árvore sintática concreta ou parse tree). É exatamente a fase que Pedro deve investigar.

Alternativa C — ❌ Incorreta

A análise semântica atua sobre a árvore sintática já construída para verificar questões de tipo, escopo, declarações, etc. Ela não gera a árvore; ela a percorre e anota com informações semânticas.

Alternativa D — ❌ Incorreta

Geração de código objeto é uma fase posterior que traduz o código intermediário (ou a árvore sintática abstrata) para código de máquina ou assembly. Nenhuma árvore de derivação é produzida aqui.

Alternativa E — ❌ Incorreta

Geração de código de máquina é a etapa final, que transforma o código objeto em instruções executáveis diretamente pelo processador. A árvore de derivação não está presente nessa fase.

PEGA ESSA DICA!

Para lembrar a ordem: Léxico → Sintático → Semântico → Geração. A árvore de derivação é o marco da fase sintática. Associe "árvore" a "sintaxe" (estrutura gramatical). Na hora da prova, se o enunciado falar em "árvore de derivação", automaticamente pense na análise sintática.

Gabarito: letra B (análise sintática).

Link permanente: /questoes/fg116136