SóProvas


ID
1311748
Banca
CESPE / CEBRASPE
Órgão
Polícia Federal
Ano
2013
Provas
Disciplina
Arquitetura de Computadores
Assuntos

Com relação aos conceitos e características de compiladores, julgue os itens que se seguem.

Interpretador é um tradutor de linguagem que executa o programa fonte de imediato, em vez de gerar um código objeto a ser executado após o término da tradução, enquanto o compilador recebe um programa fonte e produz programa equivalente na linguagem alvo. No caso da linguagem Java, os processadores combinam compilação e interpretação.

Alternativas
Comentários
  • 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.