Compilando programas#

Linguagens como Fortran, C, C++ e Java, para nomear algumas, compartilham certas características, você escreve o código na sua linguagem de preferência mas então faz o build do programa executável a partir do código fonte. Outras linguagens são interpretadas - o código fonte é analisado por um programa especial e é tomado como instruções diretas. Dois exemplos simples desse tipo de linguagem: Arquivos batch do Windows e shell scripts do Linux.

Nesse tutotiral nos concentraremos no primeiro tipo de linguagens, com Fortran como o principal exemplo. Uma vantagem de linguagens compiladas é que o processo de build necessário para o build do programa executável é usado para transformar o código fonte legível para humanos em um programa eficiente que pode ser usado para rodar no computador.

Observação: este tutorial dá exemplos para sistemas operacionais Windows e Linux, contudo o fluxo de trabalho e princípios gerais se aplicam ao macOS.

Linguagens compiladas#

Vejamos um exemplo simples:

program hello
    write(*,*) 'Hello!'
end program hello

Esse é o programa mais simples que você pode escrever em Fortran e é certamente uma variação de um dos programas mais famosos. Apesar de sua simplicidade expressada no código fonte, várias coisas acontecem quando o executável construído desde código roda:

  • Um processo é iniciado no seu computador de tal forma que ele pode escrever no console - a tela (DOS-box, xterm, …) onde você escreve o nome do programa.

  • Ele escreve o texto «Hello!» no console. Para isso, ele precisa interagir propriamente com o console.

  • Quando completo, ele finaliza, limpando todos os recursos (memória, conexão ao console etc.) que ele usou.

Por sorte, como programador em uma linguagem de alto nível você não precisa se atentar a todos esses detalhes. De fato, isso são coisas que são resolvidas pelo processo de geração de build: o compilador e o linker.