Pular para o conteúdo principal

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

Arquitetura de ComputadoresCompilador
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
  1. Abaseado em um sistema de compilação pura não realiza traduções; os programas são interpretados por um software interpretador.
  2. 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.
  3. Cque utiliza implementação híbrida traduz o programa para um código de formato intermediário e este código é compilado.
  4. 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.
  5. 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.

Link permanente: /questoes/fc033273