Sobre a construção de programas de computador, analise as af...
I. Um compilador realiza a tradução de um código-fonte escrito em linguagem de alto nível para instruções em linguagem de máquina.
II. A diferença entre um compilador e um interpretador é que o primeiro traduz apenas as instruções demandadas em tempo de execução, enquanto o segundo faz a tradução de todas as instruções, de uma só vez, em tempo de projeto.
III. As linguagens de programação que possuem tipagem forte e estática; obrigatoriamente são traduzidas por compiladores, pois, neste caso, os tipos das variáveis são determinados em tempo de execução.
Está correto o que se afirma apenas em
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: A
Vamos esclarecer os pontos abordados na questão e o porquê da alternativa A ser a correta.
Primeiramente, a afirmativa I está correta e afirma que um compilador realiza a tradução de um código-fonte escrito em linguagem de alto nível para instruções em linguagem de máquina. Isso significa que o compilador converte o código que os programadores escrevem, que é mais legível para humanos, em código que o computador pode executar diretamente.
Quanto à afirmativa II, ela contém uma informação incorreta. A verdadeira diferença entre um compilador e um interpretador é que o compilador traduz todo o código-fonte de uma vez, gerando um arquivo executável que pode ser rodado a qualquer momento. Já o interpretador, executa o código-fonte instrução por instrução, traduzindo-as em tempo de execução. Portanto, as funções de compiladores e interpretadores são opostas às descritas na afirmativa II.
Em relação à afirmativa III, ela também está incorreta. A tipagem forte e estática de uma linguagem de programação significa que os tipos das variáveis são verificados (e muitas vezes fixados) em tempo de compilação, e não de execução. Além disso, linguagens com tipagem forte e estática podem ser tanto compiladas quanto interpretadas. A escolha entre usar um compilador ou interpretador não depende exclusivamente do sistema de tipos da linguagem, mas de diversos outros fatores como a arquitetura alvo, performance desejada, portabilidade, entre outros.
Com base nessas explicações, a alternativa correta é a A, que confirma apenas a afirmativa I como verdadeira.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
RESPOSTA : LETRA A
Algumas linguagens de programação têm algo chamado "tipagem estática", que verifica os tipos de dados (como números, texto, etc.) durante a criação do programa. Isso ajuda a encontrar erros antes de executar o programa. Por exemplo, o Java verifica os tipos antes de rodar o programa.
Outras linguagens têm "tipagem dinâmica", que verifica os tipos de dados enquanto o programa está sendo executado. Por exemplo, o Python faz isso, verificando os tipos quando o programa está em ação.
A ideia de que linguagens com tipagem estática sempre precisam de um compilador nem sempre é verdadeira. Algumas, como Java, usam um compilador para transformar o código em algo chamado "bytecode", que é executado por uma "máquina virtual". Não é uma conversão direta para código que o computador entenda.
Por outro lado, linguagens interpretadas, como o Python, não precisam de um processo de compilação - elas são lidas linha por linha e executadas diretamente por um interpretador.
Em resumo, a conexão entre tipagem estática ou forte e o uso de compiladores não é sempre direta - algumas linguagens usam compiladores, outras não, mas isso não está diretamente ligado ao tipo de verificação de dados que elas fazem.
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo