Questão de Programação — Conceitos básicos de programação — FGV 2025
Programação›Conceitos 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:
Aanálise léxica;
Banálise sintática;
Canálise semântica;
Dgeração de código objeto;
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.
1Análise léxicaTokens
2Análise sintáticaÁrvore de derivação
3Análise semânticaÁrvore anotada
4Geração de código intermediárioCódigo 3 endereços
5OtimizaçãoCódigo otimizado
6Geração de código objetoAssembly/binário
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.