-
JVM é uma interpretadora. Ela pega o bytecode .class e traduz para linguagem de máquina.
Compilador -> .java (codigo fonte) produz um programa equivalente .class (bytecode)
Java é compilada e depois interpretada
Na prova eu errei esta questão.
A frase: "em vez de gerar um código objeto a ser executado após o término da tradução"
Não fez sentido pra mim na hora mas agora fez.
A interpretadora só lê o bytecode e transforma em Linguagem de máqina
-
bem, pra começar Interpretdor não vejo como tradutor.
segundo pesquisei: Tradutores são divididos em dois tipos: montadores(assemblers) e compiladores
fora isso as definições estão corretas. no caso do interpretador ele falou sobre o interpretador puro.
-
Na verdade o java é compilado para bytes codes e depois o bytecode é interpilado, e acho que é isso que o CESPE tentou dizer
O interpretadores Java e do .NET traduzem o código para instruções nativa on the fly através de um processo chamado JIT(just-in-time compiling). Isso permite com que o interpretador faça otimizações que levam em conta características em execução o que não é possível com um compilador C por exemplo. Por esse motivo em alguns cenários o Java consegue ser mais rápido que Assembly, C,C++,Pascal, Delphi, Fortran, etc... Isso acontece principalmente quando temos programas compilados para versões antigas da arquitetura x86, como por exemplo i386, e que são executados em processadores mais modernos, que possuem instruções mais poderosas.
Agora quanto a questão tive que abstrair o que o CESPE disse com processadores na frase "os processadores combinam compilação e interpretação"
-
Compilador não produz programa, gera o o código na linguagem de montagem. Quem gera programa é o ligador ou linkeditor.
-
Gabarito Certo
Compilador:
Compilador é um programa ou um grupo de programas que escrito por uma linguagem (esta sendo necessária de compilação para sua execução) ao ser compilado gera outro código que é interpretado pelo computador. Este código compilado é chamado de código objeto, podendo ser um arquivo executável que é reproduzido em um sistema operacional, por exemplo. Este tipo de tradutor é um dos mais utilizados.
Os compiladores analisam o código em três partes, de forma sintática ou hierárquica, análise léxica ou linear e anâlise semântica.
Alguns compiladores contam com um pré-processamento. Este pré-processamento é responsável por modificar o código-fonte conforme necessidades que o compilador identifique que sejam necessárias, por exemplo, otimização de código.
Interpretador:
O interpretador ao contrário do compilador roda o código-fonte escrito como sendo o código objeto, ele traduz o programa linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido. Cada execução do programa precisa ser novamente traduzido e interpretado.
O interpretador analisa sintaticamente e semanticamente o código, se estas duas etapas forem realizadas e executadas de forma correta o código está pronto para funcionar.
"Retroceder Nunca Render-se Jamais !"
Força e Fé !
Fortuna Audaces Sequitur !
-
Na verdade em Java o compilador gera o código-objeto que é o Bytecode, esse por sua vez é lido em qualquer maquina mas em cada maquina tem um Interpretador do Bytecode no seu sistema. Ou seja o Interpretador compila e interpreta o bytecode.