SóProvas


ID
1823050
Banca
CESPE / CEBRASPE
Órgão
TRE-PI
Ano
2016
Provas
Disciplina
Arquitetura de Computadores
Assuntos

Em relação aos tipos de software e suas utilidades, assinale a opção correta.

Alternativas
Comentários
  • Eu errei essa questão. CESPE cobrou o detalhe mesmo.


    A resposta está na fonte: https://arquiflecha.wordpress.com/2008/06/16/compiladores-linker-loaders-assembly/

    LINKER (Editor de Ligação)

    É o utilitário responsável por gerar, a partir de um ou mais módulos-objetos, um único programa executável. Suas funções básicas são:

    Resolver todas as referências simbólicas existentes entre os módulos objetos;Reservar memória para a execução do programa.Relocação: Determinar a região da memória na qual o programa será carregado para execução. Em sistemas multiprogramáveis, o programa é carregado em diferentes partes da memória a cada vez que é executado.

    Pra entender a dinâmica, aqui está anotação das minhas aulas: temos em negrito o formato e em itálico o processo que ocorre para ir para o próximo formato.


    1- Código fonte (macros)

    -PRÉ-PROCESSADOR - (tratamento pré-compilação. Nem toda linguagem suporta. Usado na linguagem C)


    2- Código fonte (macros expandidas)

    - COMPILADOR - cada instrução de L1 é substituída por um conjunto de instruções equivalentes de L0 - programa pode ser traduzido uma única vez e executado várias vezes. Fases: análise(léxica, sintática, semântica) e síntese(geração de código intermediário, otimização de código e geração do código)

    -INTERPRETADORES- pode se situar em qualquer camada. É um conversor online, executa simultaneamente à leitura, logo após a análise. Tradução e execução das instruções ocorrem passo a  passo, a cada instrução.

    Os compiladores traduzem para linguagem de máquina, o interpretador executa diretamente as instruções.


    3- Assembly

    - MONTADOR - Traduz de uma linguagem de montagem(assembly) para código de máquina.


    4- Objeto

    - LINKEDITOR - (LIGADORES) - Liga objeto gerado por um compilador ou montador formando o executável. Gera um programa executável. Unifica num único executável.

    O linker resolve endereços de memórias externos ao programa fonte (referências a arquivos externos e/ou bibliotecas)


    5- Executável

    -EMPACOTADORES (opcional) - Compacta um executável e gera outro executável auto executável.

    -CARREGADORES - Para executar um programa um loader deve ser utilizado. O carregador, na maioria das vezes é parte do S.O. Copia o arquivo binário para a memória. Tipos: binários/absolutos e relocáveis.


  • a) O interpretador é um programa de nível 1 (L1) que substitui cada instrução de nível 2 (L2) por um conjunto equivalente de L1, gerando código objeto.

    ERRADO: Interpretador não gera código-objeto. Isso quer dizer que toda vez que se deseja executar um programa interpretado é necessário que o interpretador faça a tradução em tempo de execução, enquanto que os compiladores fazem esse trabalho uma única vez. 

     

     b) Um depurador não permite acompanhar a execução de um programa instrução por instrução. Essa tarefa é executada pelo interpretador.

    ERRADO: O depurador ou debugger é um utilitário que permite ao usuário acompanhar a execução de um programa (linha por linha) a fim de detectar erros no mesmo.

     

     c) Linguagem de máquina é um conjunto limitado de instruções que um circuito de computador reconhece e executa diretamente, independentemente do fabricante.

    ERRADO: Cada processador tem os códigos de instruções próprio, sendo assim, varia de fabricante para fabricante. O que não variará é a linguagem de programação chamada linguagem de montagem (Assembly Language)

     

     d) O loader é um utilitário que traduz um programa fonte em linguagem de montagem em um programa objeto não executável e carrega o resultado para a memória.

    ERRADO: O loader é o responsável por carregar um programa na memória principal para ser executado. 

     

     e) As funções básicas de um linker incluem resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa.

    CORRETO: O linker é responsável por unir todos os programas objetos (seja um programa ou uma biblioteca de funções) com os módulos objetos em um único programa. Para fazer isso, ele deve resolver todas as referências simbólicas existentes entre os módulos e reservar memória para a execução do programa.

     

    Fontes:

    http://www.facol.br/sophia/2741/APOSTILA03_SOFTWARE.PDF

    https://arquiflecha.wordpress.com/2008/06/16/compiladores-linker-loaders-assembly/

    https://pt.wikipedia.org/wiki/C%C3%B3digo_de_m%C3%A1quina