Diferença entre o programa de origem e o programa de objetos

o diferença chave entre o Programa Fonte e o Programa Objeto é que O programa de origem é um programa legível por humanos, escrito por um programador, enquanto o objeto é um programa executável por máquina criado pela compilação de um programa de origem.

Os programas de origem podem ser compilados ou interpretados para execução. Os descompiladores ajudam a converter os programas de objetos em seus programas originais. É importante observar que os termos programa de origem e programa de objetos são usados ​​como termos relativos. Se você adotar um programa de transformação de programa (como um compilador), o que entra é um programa de origem e o que sai é um programa de objeto. Portanto, um programa de objeto produzido por uma ferramenta pode se tornar um arquivo de origem para outra ferramenta.

CONTEÚDO

1. Visão geral e principais diferenças
2. O que é o Programa Fonte
3. O que é um programa de objetos
4. Comparação lado a lado - programa de origem versus programa de objetos em forma de tabela
5. Resumo

O que é o Programa Fonte?

O programador grava o programa de origem usando linguagem de nível superior. Portanto, é facilmente legível pelos humanos. Os programas de origem geralmente contêm nomes significativos de variáveis ​​e comentários úteis para torná-lo mais legível. Uma máquina não pode executar diretamente um programa de origem. Um compilador ajuda a transformar o programa de origem em código executável a ser executado pela máquina. Alternativamente, é usar um intérprete. Ele executa um programa de origem linha por linha sem pré-compilação.

Figura 01: Um programa de origem

O Visual Basic é um exemplo de uma linguagem compilada, enquanto Java é um exemplo de uma linguagem interpretada. Os arquivos de origem do Visual Basic (arquivos .vb) são compilados no código .exe, enquanto os arquivos de origem Java (arquivos .java) são primeiro compilados (usando o comando javac) no bytecode (um código de objeto contido nos arquivos .class) e, em seguida, interpretados usando o interpretador java (usando o comando java). Quando os aplicativos de software são distribuídos, normalmente eles não incluem arquivos de origem. No entanto, se o aplicativo for de código aberto, a fonte também será distribuída e o usuário poderá ver e modificar o código-fonte também.

O que é um programa de objetos?

O programa de objetos geralmente é um arquivo executável da máquina, que é o resultado da compilação de um arquivo de origem usando um compilador. Além das instruções da máquina, elas podem incluir informações de depuração, símbolos, informações da pilha, realocação e criação de perfil. Como contêm instruções em código de máquina, elas não são facilmente legíveis por seres humanos. Mas, às vezes, programas de objetos se referem a um objeto intermediário entre arquivos de origem e executáveis.

As ferramentas conhecidas como vinculadores ajudam a vincular um conjunto de objetos a um executável (por exemplo, linguagem C). Como mencionado acima, os arquivos .exe e bytecode são arquivos de objetos produzidos ao usar Visual Basic e Java, respectivamente. Os arquivos .exe são executados diretamente na plataforma Windows, enquanto os arquivos de bytecode precisam de um intérprete para execução.

A maioria dos aplicativos de software é distribuída apenas com o objeto ou arquivos executáveis. É possível converter o objeto ou os arquivos executáveis ​​em seus arquivos de origem originais por descompilação. Por exemplo, as ferramentas de descompilador podem descompilar arquivos java.class (bytecode) em seus arquivos .java originais.

Qual é a diferença entre o programa de origem e o programa de objetos?

O programa de origem é um programa legível por humanos, escrito por um programador. Ele é escrito em linguagens de nível superior, como Java ou C. Portanto, um programa de origem é legível por humanos. Não é compreensível pela máquina.

Por outro lado, o programa Object é um programa executável por máquina criado após a compilação de um programa de origem. Ele contém idiomas de nível inferior, como assembly ou código de máquina. Portanto, o programa objeto não é legível pelo ser humano. É compreensível pela máquina.

Resumo - Programa de Origem x Programa de Objetos

A diferença entre o programa de origem e o de objeto é que o programa de origem é um programa legível por humanos, escrito por um programador, enquanto o programa de objeto é um programa executável por máquina criado pela compilação de um programa de origem.

Referência:

1. "Código Fonte". Wikipedia, Fundação Wikimedia, 17 de maio de 2018. Disponível aqui

2. "Código do Objeto". Wikipedia, Fundação Wikimedia, 14 de maio de 2018. Disponível aqui 

Cortesia da imagem:

1.'CodeCmmt002'By Dreftymac (CCBY 2.5) via Commons Wikimedia