Questão de Arquitetura de Computadores — Compilador — FCC 2019
Arquitetura de Computadores›Compilador
Código
fc053705
Banca
FCC
Órgão
METRÔ-SP
Ano
2019
Cargo
Analista Desenvolvimento Gestão Júnior – Ciências da Computação
Um compilador está verificando se uma variável foi declarada somente uma vez, se foi declarada antes do seu primeiro uso, se foi declarada e nunca foi usada e se os tipos de dados em uma expressão aritmética são compatíveis. Essas verificações são realizadas na fase de
Aanálise sintática.
Bgeração do código.
Canálise léxica.
Danálise semântica.
Eotimização do código.
Revelar gabarito e comentário▾
GabaritoD — análise semântica.
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 do compilador: análise semântica
Gabarito: letra D. A verificação de declaração única, declaração antes do uso, variável não utilizada e compatibilidade de tipos em expressões aritméticas são tarefas típicas da análise semântica. Essa fase assegura que o programa respeite regras sensíveis ao contexto, como escopo e consistência de tipos, que não podem ser capturadas apenas pela gramática livre de contexto.
Conteúdo de apoio (Wikipédia):
O papel do analisador semântico é prover métodos pelos quais as estruturas construídas pelo analisador sintático possam ser avaliadas ou executadas. ... É papel do analisador semântico assegurar que todas as regras sensíveis ao contexto da linguagem estejam analisadas e verificadas quanto à sua validade. Um exemplo de tarefa própria do analisador semântico é a checagem de tipos de variáveis em expressões.
As demais fases não realizam essas verificações:
1Análise léxica (scanner)
2Análise sintática (parser)
3Análise semântica
4Otimização de código
5Geração de código
LEVEL · soulevel.com.br
Alternativa A — ❌ Incorreta
Análise sintática verifica a estrutura gramatical (se a sequência de tokens forma uma sentença válida), mas não trata de significado, escopo ou tipos.
Alternativa B — ❌ Incorreta
Geração de código converte a representação intermediária em código objeto (assembly/máquina); não faz validação semântica.
Alternativa C — ❌ Incorreta
Análise léxica (scanner) apenas agrupa caracteres em tokens e elimina espaços/comentários; não verifica contexto ou tipos.
Alternativa D — ✅ Correta ⟵ GABARITO
Como descrito, a análise semântica é responsável por checagens de contexto, declaração, escopo e tipos, exatamente as citadas no enunciado.
Alternativa E — ❌ Incorreta
Otimização de código melhora o desempenho do código intermediário, mas não realiza verificações semânticas.