Questão de Banco de Dados — Banco de Dados Transacionais (OLTP) — VUNESP 2025
Banco de Dados›Banco de Dados Transacionais (OLTP)
Código
vu222877
Banca
VUNESP
Órgão
TJM SP
Ano
2025
Cargo
Ana BDJ ( )
Em relação aos compiladores e interpretadores, assinale a alternativa correta.
AA linguagem SQL necessita de um compilador para ser executada.
BCompiladores recebem como entrada um arquivo contendo código binário.
CO processo de compilação ocorre em tempo de execução.
DO interpretador gera um overhead na execução do código.
EInterpretadores não detectam erros de sintaxe no código.
Revelar gabarito e comentário▾
GabaritoD — O interpretador gera um overhead na execução do código.
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”.
Compiladores e Interpretadores: conceitos fundamentais
Gabarito: letra D. O interpretador traduz e executa o código-fonte linha por linha em tempo de execução, o que gera um overhead (custo adicional de processamento) em relação ao código compilado. As demais alternativas invertem conceitos básicos: SQL é uma linguagem declarativa executada por um SGBD (não compilada), compiladores recebem código-fonte (não binário), a compilação ocorre antes da execução (não em tempo de execução) e interpretadores detectam erros de sintaxe (não os ignoram).
Para entender a questão, é preciso dominar a diferença entre os dois processos de tradução de código. Um compilador é um programa que lê o código-fonte inteiro (escrito em uma linguagem de alto nível, como C ou Java) e o traduz para código de máquina (ou bytecode) em uma etapa separada, chamada tempo de compilação. O resultado é um arquivo executável que pode ser rodado depois, sem a presença do compilador. Já um interpretador lê o código-fonte e o executa diretamente, linha por linha, no tempo de execução — ele não gera um arquivo separado; ele analisa, traduz e executa cada instrução na hora.
Essa diferença fundamental explica o overhead mencionado na alternativa correta. Como o interpretador precisa analisar e traduzir cada linha enquanto o programa roda, ele adiciona um custo de processamento extra — o overhead — que não existe no código compilado, que já foi traduzido antecipadamente. Por isso, programas interpretados tendem a ser mais lentos que os compilados. Linguagens como Python, JavaScript e Ruby são tipicamente interpretadas; C, C++ e Pascal são compiladas.
A pegadinha da banca está em inverter os papéis: ela mistura as características de compiladores e interpretadores, e também confunde a natureza da linguagem SQL. SQL é uma linguagem declarativa — o usuário diz o que quer, e o SGBD decide como executar. Ela não é compilada nem interpretada no sentido tradicional; ela é processada pelo SGBD, que otimiza e executa a consulta. Guarde essa distinção: compilador = tradução antecipada; interpretador = tradução e execução simultâneas; SQL = linguagem de consulta processada pelo banco.
Tradução de código: Compilador (Entrada: código-fonte, Tradução antecipada (tempo de compilação), Saída: executável, Overhead na execução); Interpretador (Entrada: código-fonte, Tradução e execução simultâneas (tempo de execução), Overhead na execução, Detecta erros de sintaxe); SQL (Linguagem declarativa, Processada pelo SGBD)
Alternativa A — ❌ Incorreta
Afirma que a linguagem SQL necessita de um compilador para ser executada. Isso é falso: SQL é uma linguagem declarativa de consulta, processada pelo SGBD (Sistema Gerenciador de Banco de Dados), que otimiza e executa a consulta. Não há um compilador no sentido tradicional — o SGBD interpreta e executa os comandos SQL diretamente.
Alternativa B — ❌ Incorreta
Afirma que compiladores recebem como entrada um arquivo contendo código binário. É o oposto: o compilador recebe como entrada o código-fonte (texto escrito em linguagem de alto nível) e gera como saída o código binário (código de máquina ou bytecode). A entrada é texto legível; a saída é binária.
Alternativa C — ❌ Incorreta
Afirma que o processo de compilação ocorre em tempo de execução. É o contrário: a compilação ocorre em tempo de compilação, ou seja, antes da execução do programa. O código-fonte é traduzido para código de máquina em uma etapa separada; depois, o executável gerado é rodado. Quem atua em tempo de execução é o interpretador.
Alternativa D — ✅ Correta ⟵ GABARITO
Afirma que o interpretador gera um overhead na execução do código. Correto: como o interpretador analisa e traduz cada linha do código-fonte durante a execução, ele adiciona um custo de processamento extra — o overhead — que não existe no código compilado. Esse é exatamente o motivo pelo qual programas interpretados são, em geral, mais lentos que os compilados.
Alternativa E — ❌ Incorreta
Afirma que interpretadores não detectam erros de sintaxe no código. Falso: interpretadores detectam erros de sintaxe, mas de forma diferente dos compiladores. O compilador analisa o código inteiro e reporta todos os erros de uma vez; o interpretador detecta o erro de sintaxe quando chega à linha problemática, durante a execução. Em ambos os casos, o erro é detectado.
Gabarito: letra D — o interpretador gera overhead na execução, pois traduz e executa o código linha por linha em tempo de execução.