Código fonte: o que é e qual sua importância na programação!

Se você gosta de programação ou pretende aprender sobre o assunto, provavelmente já ouviu falar sobre código fonte. Seja qual for a linguagem utilizada para desenvolver um software, esse termo é empregado para se referir ao conjunto de instruções necessárias para fazer o sistema funcionar.

Além do código fonte, há também o código objeto e o executável. Todos eles são importantes para dizer ao computador o que ele precisa fazer. Entretanto, existem diferenças entre eles. Para ajudar você a compreender esses conceitos, fizemos este post em que vamos mostrar:

O que é código fonte?

Qual a sua importância?

Quais as diferenças entre código fonte, código objeto e código executável?

Exemplo de fluxo: do código fonte ao código executável

Qual a diferença entre licenciamento e propriedade intelectual?

Boa leitura!

O que é código fonte?

Antes de explicar o que é código fonte, é preciso dizer que o computador funciona com base na linguagem de máquina. Trata-se de impulsos eletrônicos com apenas duas instruções: ligado ou desligado, ou seja, 0 ou 1. Portanto, tudo o que é executado em uma máquina é traduzido para esse formato.

Felizmente, não precisamos escrever programas em linguagem de máquina, pois existem outras camadas de softwares, como os compiladores e o sistema operacional, que ajudam a traduzir as instruções para esse formato. O código fonte, portanto, é um conjunto de instruções escritas em determinada linguagem que tem a função de dizer ao computador o que ele deve fazer.

Ele utiliza uma linguagem compreensível às pessoas que desenvolvem programas. Isso significa que quem tiver o conhecimento em uma determinada linguagem é capaz de entender as instruções escritas em seu código.

Vale ressaltar que, apesar de o código fonte indicar quais instruções o programa deve executar, não é ele que coloca em prática esses comandos. Em vez disso, existe uma ferramenta — chamada compilador — que transforma as instruções do arquivo em linguagem de máquina.

A história do código fonte

O primeiro software foi escrito em código binário na década de 1940. Apesar de ser escrito em linguagem de máquina, pode ser considerado como o primeiro código fonte, embora não houvesse distinção entre esses dois tipos naquela época.

Nas décadas de 50 e 60, as empresas que desenvolviam software distribuíam o código fonte gratuitamente com os programas vendidos na época. Nos anos seguintes, as revistas de computação traziam exemplos em seu conteúdo para que as pessoas interessadas pudessem utilizar o código. Atualmente, existem diversos códigos fontes disponíveis gratuitamente na internet.

Qual a sua importância?

O código fonte contém todas as instruções necessárias para que um software funcione. Na prática, são declarações, funções e uma série de comandos que facilitam a forma de passar instruções para o computador. Além disso, é por meio dele que as pessoas que desenvolvem programas podem fazer alterações para corrigir falhas ou implementar melhorias no sistema.

Geralmente, as empresas que vendem softwares não distribuem o código fonte ao comercializar uma licença de uso. Muitas delas fazem as alterações e disponibilizam uma nova versão. Portanto, o que é vendido é o conjunto de arquivos gerados após a compilação do código fonte. Dessa forma, qualquer modificação nas funcionalidades só pode ser feita pelo fabricante do software.

Quais as diferenças entre código fonte, código objeto e código executável?

Como mencionamos, o código fonte é responsável por armazenar o conjunto de instruções necessárias para que o software funcione. Para que ele possa se transformar em um programa é preciso passar pelo processo de compilação. Cada linguagem — como C/C++, C#, JavaScript e muitas outras existentes no mercado — possui um compilador para traduzir o código fonte para a linguagem entendida pela máquina.

Quando o processo de compilação é executado, é gerado o código objeto. Na prática, é feita uma conversão das instruções contidas no código fonte para instruções que o computador entenda. Além disso, são gerados vários arquivos necessários para que ele funcione da maneira adequada. Portanto, o conjunto de todos esses arquivos é chamado de código executável.

Vale ressaltar que em linguagens de script, como o JavaScript, o código fonte não é compilado, ou seja, não é gerado um código objeto. Em vez disso, o arquivo é lido pelo navegador, que contém um interpretador capaz de traduzir e executar as instruções informadas.

É possível verificar o código fonte de uma página HTML em qualquer navegador, pois ela também não é compilada, já que é uma linguagem de marcação. Dessa forma, basta acessar o menu do navegador para visualizar o código, tanto pelo computador quanto pelo celular.

Exemplo de fluxo: do código fonte ao código executável

Vamos mostrar um exemplo de como funciona esse processo, desde a criação do código fonte até a geração do código executável. Imagine o desenvolvimento de um programa em JavaScript, para exibir uma mensagem de boas-vindas à pessoa usuária do programa. Confira o código abaixo:

O código acima diz ao navegador que é preciso exibir na tela a solicitação do nome da pessoa e, então, exibe a mensagem “Olá, “nome”! Vamos aprender a programar?” Entretanto, o computador não sabe o que significam esses comandos. Por isso, a função do compilador é essencial.

Como o JavaScript não é compilado, é o navegador que tem a função de traduzir os comandos para a linguagem que o computador consegue entender. Já em linguagens de programação compiláveis, é nesse momento que todas as instruções são convertidas em uma forma compreensível para a máquina e é gerado o código objeto.

No próximo passo ocorre uma espécie de lincagem entre todos os arquivos necessários para a execução do programa, que são o conjunto de bibliotecas utilizadas pela linguagem de programação e de outras bibliotecas externas ou não, que também podem ser utilizadas. Todo esse conjunto, portanto, forma o código executável.

Qual a diferença entre licenciamento e propriedade intelectual?

Outro conceito importante em relação ao código fonte é a diferença entre licenciamento e propriedade intelectual. Um software pertence à empresa ou à pessoa que desenvolveu aquele programa. Portanto, ela detém a propriedade intelectual sobre o código.

Entretanto, esse código pode ser fechado ou aberto. Isso significa que a empresa ou pessoa desenvolvedora pode decidir se permite ou não que outras visualizem, editem, modifiquem, distribuam e até vendam o código fonte de seu programa.

Nesse momento, outro conceito é utilizado, que é o licenciamento do software. Portanto, a empresa ou pessoa desenvolvedora determina qual tipo de licença seu software terá. No código fechado, por exemplo, apenas o código executável é distribuído com o produto desenvolvido. Um exemplo é o pacote Office da Microsoft.

Quem adquire uma cópia do produto pode instalar em seu computador, mas não tem acesso ao seu código. Portanto, não consegue fazer alterações no programa. Isso acontece porque a licença utilizada pela Microsoft é apenas para a instalação e utilização do produto.

Existe também o licenciamento que permite apenas a utilização, sem que a pessoa usuária tenha que instalar uma cópia do software. Esse modelo é comum em aplicações SaaS — Software as a Service ou software como serviço.

Se a empresa ou pessoa desenvolvedora do software resolver distribuir seu sistema como código aberto, assim como o próprio nome já sugere, quem quiser poderá acessar o código fonte do produto e utilizá-lo conforme as permissões oferecidas na licença utilizada. Vale ressaltar que existem diferentes tipos de licenças de código aberto, que oferecem permissões diferenciadas entre elas.

Como você pôde acompanhar, o código fonte é uma forma de passar instruções para a máquina de uma forma mais compreensível para as pessoas que desenvolvem software. Após o processo de compilação, surgem outros arquivos necessários para a execução do sistema, que são o código objeto e o código executável.

Gostou do nosso conteúdo sobre código fonte? Então, confira neste post o que é e para que serve a depuração ou debug de um programa!

Leave a comment