Alternativa D - Detectar e reportar erros de semântica no código-fonte.
Introdução ao Processo de Compilação
Para entender a resposta correta, é necessário compreender as fases principais de um compilador:
| Fase | Responsabilidade |
|---|
| Análise Léxica | Identificação dos tokens (palavras-chave, identificadores) |
| Análise Sintática | Verificação da estrutura da gramática |
| Análise Semântica | Verificação do significado das construções |
| Geração de Código | Criação do código objeto/executável |
Desenvolvimento
O que é Análise Semântica?
A análise semântica ocorre após a análise sintática e tem como objetivo verificar se o programa faz sentido lógico, não apenas se está estruturalmente correto.
Principais verificações realizadas:
- Compatibilidade de tipos (ex: não somar string com inteiro)
- Escopo de variáveis (ex: usar variável não declarada)
- Chamadas de funções (ex: número incorreto de argumentos)
- Regras específicas da linguagem
Por que as outras alternativas estão incorretas?
| Alternativa | Motivo da Incorreção |
|---|
| A | Otimização é fase posterior à geração de código intermediário |
| B | Correção léxica é função do analisador léxico (scanner) |
| C | Sintaxe é verificada pelo analisador sintático (parser) |
| E | Gramática também é responsabilidade do parser |
Conclusão
A análise semântica garante que o código tenha significado válido, detectando erros como "variável não inicializada", "tipo incompatível" ou "função chamada com parâmetros errados".
Portanto, a alternativa D está correta.