← Questões de Programação

Programação · PR-4 UFRJ · 2023

Questão comentada de Programação

Marque a alternativa que NÃO caracteriza uma etapa do processo de compilação.

Gabarito: C

O processo de compilação costuma ser dividido em etapas bem conhecidas: análise léxica, análise sintática, análise semântica, otimização e geração de código. Pense nelas como uma linha de produção: primeiro o programa é quebrado em unidades menores, depois a estrutura da frase é conferida, em seguida o sentido é verificado, e só então o compilador tenta melhorar e transformar tudo em código de máquina. A análise léxica identifica os tokens do código, como palavras-chave, nomes de variáveis e operadores. A análise sintática verifica se esses tokens estão organizados de acordo com a gramática da linguagem, construindo estruturas como a árvore sintática. Já a otimização tenta deixar o código mais eficiente, reduzindo desperdícios e melhorando desempenho. O ponto da questão está na análise semântica. Ela não faz otimização: sua função é checar se o código faz sentido dentro das regras da linguagem, como compatibilidade de tipos, declarações corretas e uso coerente de identificadores. Em outras palavras, ela confere o significado, não o desempenho. Por isso, a alternativa C está errada. A banca misturou duas fases diferentes: análise semântica e otimização de código. Como etapa da compilação, otimização existe sim, mas não pertence à análise semântica. Esse é o tipo de confusão que aparece muito em prova quando a banca quer ver se você sabe separar cada fase do compilador.

Continue treinando

Questões relacionadas