Qual é a diferença entre criar e compilar?

Respostas:

34

Compilar faz parte de um processo de construção.

Um processo de construção pode incluir testes, empacotamento e outras atividades além da compilação.

Oded
fonte
19

"Construção" é um termo bastante geral e pode se referir a qualquer coisa necessária para ir de material de origem editável (código-fonte, scripts, arquivos de dados brutos, etc.) a um produto de software expedível. A construção pode (e geralmente envolve) várias etapas, como pré-processamento, compilação, vinculação, conversão de arquivos de dados, execução de testes automatizados, empacotamento etc.

"Compilar" é mais específico e quase sempre se refere a um processo que usa o código-fonte como entrada e gera algo executável, normalmente código de máquina para uma máquina física ou virtual ou código-fonte em um idioma diferente.

tdammers
fonte
9

Esses termos são frequentemente usados ​​de forma intercambiável, mas eu os diferenciaria da seguinte maneira:

  • A construção é feita ao preparar um aplicativo para liberação, que inclui compilação, empacotamento, teste etc.
  • A compilação é feita a qualquer momento em que o compilador está envolvido na tradução do código da linguagem de programação para o código da máquina.

Assim, compilar é realmente um subconjunto de construção.

Bernard
fonte
11
"A construção é feita ao preparar um aplicativo para lançamento" - não diga que a multidão contínua de integração;) Ou qualquer outro usuário ávido de construções automáticas, nesse caso.
11
@ delnan: Concordo. A integração contínua cria muitas "construções" durante a vida útil de um aplicativo. No entanto, qualquer uma ou todas essas compilações podem ser usadas na preparação para um lançamento público. Depende dos processos de construção, teste e aprovação.
Bernard
3
Bem, de acordo com a multidão de entregas contínuas, cada uma dessas construções deve estar pronta para lançamento. Mas a prática diz o contrário, e geralmente "cria" pode servir a qualquer propósito que seja auxiliado ao preparar o software para executá-lo e testá-lo. Compilações de depuração, por exemplo. Ou verificar se suas alterações não quebraram nenhum dos 16 milhões de testes.
2
@ delnan - Que tal uma compilação que falha nos testes? Pelos padrões da entrega contínua cantou, é uma construção , mas não pronto para o lançamento :)
Oded
2

A compilação é feita pelo compilador, a compilação pode ser um processo mais complexo.

Por exemplo. em C ++, para criar um projeto, você precisa de pré-processador (pré-processamento de arquivos de origem); compilador (compilação de arquivos de origem); vinculador (mesclando tudo em executável - código compilado, ícones, strings e outros recursos juntos)

Então, geralmente compilar é traduzir código escrito em um idioma para outro (por exemplo, código de máquina).

Slawek
fonte