SóProvas


ID
902380
Banca
CESGRANRIO
Órgão
Petrobras
Ano
2012
Provas
Disciplina
Arquitetura de Computadores
Assuntos

O utilitário responsável por gerar, a partir de um programa escrito em linguagem de alto nível, um programa em linguagem de máquina não executável é o

Alternativas
Comentários
  • Um compilador é um programa de sistema que traduz um programa descrito em uma linguagem de alto nível para um programa equivalente em código de máquina para um processador. Em geral, um compilador não produz diretamente o código de máquina mas sim um programa em linguagem simbólica (assembly) semanticamente equivalente ao programa em linguagem de alto nível. O programa em linguagem simbólica é então traduzido para o programa em linguagem de máquina através de montadores.

    Resumindo o compilador transforma a linguagem(humana) em linguagem maquina

    Fonte: 
    http://www.tecmundo.com.br/tira-duvidas/100439
  • Segue um resumo que fiz baseado no livro do Murdocca [1]

    Compilador:
    • Análise léxica
    • Análise Sintática;
    • Análise de nomes;
    • Análise de tipos;
    • Mapeamento de ações e geração de código: associar comandos do programa com uma sequência em linguagem de montagem (assembly).

    Montador:
     O processo de traduzir um programa em linguagem de montagem para um programa em linguagem de máquina é chamado de processo de montagem.

    Ligação
     Combina módulos montados ou compilados separadamente em um único modo de carregamento, criando o arquivo executável.

    Carregamento
    É um programa que coloca um módulo de carregamento na memória principal.

    [1] Murdocca, Intridução à Arquitetura de Computadores, cap 5
  • Resumo Mecanismos de Conversão de Linguagem

    Pre-processador(pre-compilação) -> Compilador (tradutor) -> Montador (tradutor de linguagem de maquina para linguagem de maquina) -> Linkeditor (liga códigos objetos formando um executável) -> Carregadores (copia o aquivo em formato binário para a memoria)

    Pre-processador - Entrada ( código fonte - macros), Saída (código fonte - macros expandidas)

    Compilador - Entrada ( código fonte - macros expandidas), Saída ( linguagem de montagem - Assembly)

    Montador - Entrada ( linguagem de montagem - Assembly), Saída (Código Objeto)

    Linkeditor - Entrada (Código Objeto), Saída ( Executável )

  • Eu não entendi a parte do "não executável". Pois é o Montador que gera o código objeto, porém este ainda precisa ser ligador pelo linker para se tornar algo executável. Por isso, marquei a letra a.

  • Compilador não gera linguagem dem áquina, o montador gera, mas não a partir do código em algo nível. Essa questão deveria ser anulada, o enunciado está incorreto.

  • Questão claramente equivocada. Deveria ter sido anulada. O enunciado está errado, conforme já mencionado pela colega Giselle Mendonça.

  • Assim como a grande maioria aqui, a questão está com o gabarito errado. Quem gera a linguagem de máquina (na forma de bits) é o montador. O compilador gerar o assembly.

  • Como deveria ser...

     

    Ano: 2014 Banca: FGV Órgão: SUSAM Prova: Analista de Sistemas

    Programa destinado a transformar um código escrito em linguagem de alto nível em uma linguagem Assembly é o 

     a) debugger. 

     b) compilador. 

     c) montador. 

     d)  fortran. 

     e) otimizador. 

     

    Resposta: B

  • Ok, um compilador faz a tradução da linguagen de alto nível pra linguagem de máquina. Mas ele também GERA UM EXECUTÁVEL..... Quem não gera é o interpretador, que faz a tradução linha a linha toda vez que o código é rodado. Scripts bath são um exemplo de tradução (sem executável) Honestamente, não entendi o "não executável" para um compilador...

  • Definições segundo o livro Arquiteturas de Sistemas Operacionais (Berenguer Machado):

    Os tradutores compilador e montador geram módulo objeto.

    Compilador: Gera, a partir de um programa escrito em uma linguagem de alto nível, um programa em linguagem de maquina não executável.

    Montador: Responsavel por traduzir um programa-fonte em linguagem de montagem em um programa-objeto não executável. traduz literalmente Assembly para Linguagem de Máquina

    Interpretador: tradutor que não gera módulo-objeto. Executa imediatamente na memória.

    Linker: Gera, a partir de um módulo objeto, um programa executável.

    Loader: Carrega o programa executável na memória principal. Pode ser absoluto ou relocável.

    Depurador (debbuger): Permite usuário acompanhar toda a execução do programa a fim de detectar erros lógicos.