Pular para o conteúdo principal

Questão de Arquitetura de Computadores — Compilador — FCC 2019

Arquitetura de ComputadoresCompilador
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
  1. Aanálise sintática.
  2. Bgeração do código.
  3. Canálise léxica.
  4. Danálise semântica.
  5. 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:

  1. 1Análise léxica (scanner)
  2. 2Análise sintática (parser)
  3. 3Análise semântica
  4. 4Otimização de código
  5. 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.

Gabarito: letra D.

Link permanente: /questoes/fc053705