Questão de Arquitetura de Computadores — Compilador — FCC 2016
Arquitetura de Computadores›Compilador
Código
fc033273
Banca
FCC
Órgão
TRF - 3ª REGIÃO
Ano
2016
Nível
Médio
Cargo
Técnico Judiciário - Informática
Um compilador
Abaseado em um sistema de compilação pura não realiza traduções; os programas são interpretados por um software interpretador.
Bdo tipo JIT- Just in Time tem sido utilizado em linguagens como Java e C#. Na prática, JIT transforma um sistema híbrido em um sistema de compilação adiada.
Cque utiliza implementação híbrida traduz o programa para um código de formato intermediário e este código é compilado.
Dsepara a tarefa de analisar a semântica do código em 2 partes: análise léxica e análise sintática. Este processo é realizado por uma máquina virtual.
Ede uma linguagem de programação traduz código de baixo nível para linguagem de máquina.
Revelar gabarito e comentário▾
GabaritoB — do tipo JIT- Just in Time tem sido utilizado em linguagens como Java e C#. Na prática, JIT transforma um sistema híbrido em um sistema de compilação adiada.
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”.
Compilador
Gabarito: letra B. A alternativa descreve corretamente o compilador JIT (Just-in-Time), que compila código intermediário (bytecode) no momento da execução, transformando o modelo híbrido (compilação para bytecode + interpretação) em compilação adiada, como usado em Java e C#.
A banca testa o conhecimento sobre os tipos de compiladores e suas características, especialmente o JIT, que é um tópico comum em arquitetura de computadores. A resposta correta exige entender que o JIT não é uma compilação tradicional, mas sim uma compilação em tempo de execução.
Alternativa A — ❌ Incorreta
Afirma que um compilador puro não realiza traduções e que os programas são interpretados. Na verdade, um compilador puro traduz todo o código fonte para código objeto (linguagem de máquina) antes da execução, não interpreta. A descrição se aplica a um interpretador puro, não a um compilador.
Alternativa B — ✅ Correta ⟵ GABARITO
O JIT (Just-in-Time) é um compilador que opera durante a execução do programa, compilando partes do código (geralmente bytecode) para código de máquina sob demanda. Linguagens como Java e C# utilizam esse modelo: o código fonte é compilado para um formato intermediário (bytecode) e, em tempo de execução, o JIT compila esse bytecode para código nativo. Isso transforma o sistema híbrido original (compilação + interpretação) em uma compilação adiada, onde a compilação para máquina ocorre apenas quando o código é efetivamente executado.
Alternativa C — ❌ Incorreta
Diz que uma implementação híbrida traduz o programa para um código intermediário e "este código é compilado". A expressão "é compilado" é ambígua: em sistemas híbridos típicos (como Java), o código intermediário (bytecode) é interpretado por uma máquina virtual, e pode ser compilado posteriormente por um JIT, mas não é obrigatório. A afirmação, como está, sugere que o código intermediário é sempre compilado, o que não é verdade para todos os casos (pode ser interpretado). Portanto, está incorreta.
Alternativa D — ❌ Incorreta
Separa a análise semântica em análise léxica e sintática, mas estas são etapas da análise sintática e léxica, não da semântica. A análise semântica é uma fase posterior que verifica coerência de tipos, escopo, etc. Além disso, o processo não é realizado por uma máquina virtual; a análise é feita pelo compilador ou interpretador. A máquina virtual executa o código, não analisa.
Alternativa E — ❌ Incorreta
Afirma que um compilador traduz código de baixo nível para linguagem de máquina. Isso é função de um montador (assembler). O compilador traduz de linguagem de alto nível para baixo nível (assembly ou código de máquina).
PEGA ESSA DICA!
Para memorizar, associe: compilador → alto→baixo (antes da execução); interpretador → linha a linha (sem tradução prévia); JIT → compilação sob demanda durante a execução; montador → assembly→máquina. Em provas, fique atento aos termos "híbrido", "bytecode" e "JIT" — eles frequentemente aparecem juntos.