A função de reunir procedimentos traduzidos em separado e juntá-los para que sejam executados como uma unidade, denominada programa binário executável, é realizada pelo
- A)codificador.
Errada, porque codificador não é a etapa responsável por reunir módulos já traduzidos e formar o executável.
- B)ligador.
Certa, pois o ligador reúne os arquivos/objetos traduzidos separadamente e monta o programa binário executável.
- C)interpretador.
Errada, porque o interpretador executa o código diretamente, em geral instrução por instrução, sem fazer a junção final de módulos.
- D)montador.
Errada, porque o montador converte código em assembly para código objeto, não faz a união final dos procedimentos.
- E)compilador.
Errada, porque o compilador traduz o código-fonte para código objeto, mas quem junta as partes é o ligador.
Gabarito: B
A questão trata das etapas de construção de um programa. Primeiro, o código pode ser traduzido em partes, em linguagens de montagem ou linguagem de alto nível, gerando arquivos separados. Depois vem a etapa de juntar esses pedaços para formar um único executável. É exatamente isso que faz o ligador (linker): ele reúne módulos/objetos traduzidos separadamente, resolve referências entre eles e produz o programa binário executável. Pense assim: o compilador traduz o código-fonte em código objeto; o montador faz a tradução de um código em assembly para código objeto; o interpretador executa instrução por instrução, sem necessariamente gerar um executável final; e o ligador entra no momento de “casar as peças” para montar o programa completo. Se a banca falou em reunir procedimentos traduzidos separadamente e juntá-los como uma unidade, está descrevendo o trabalho do ligador. Em linguagem de concurso, a palavra-chave é sempre esta: unir arquivos/objetos já traduzidos e resolver dependências entre eles. Isso é a função clássica do linker. Por isso o gabarito B está correto.