Há três diferentes processos de transformação de um código em programa, compilação,hibrído e interpretação:
Linguagens Compiladas(Exemplo: C++/C):
Para se ter o programa propriamente dito, pega-se o código do programa, utiliza-se um compilador e gera um executável. Mas... O que um compilador faz?
Simples, um compilador traduz um programa escrito em uma linguagem de programação para o equivalente ao código em linguagem de máquina. Isso gera o executável, que é executado direto, quantas vezes quiser.
Linguagens Interpretadas(Exemplo: Python):
Nessas linguagens não se precisa nenhum processo específico para tornar o código executável. Basta executar o programa e uma "máquina virtual" interpretará seu código e rodará o programa desejado(Esse processo se repete toda vez que for executar o programa).
Linguagens Híbridas:
Nessas linguagens há uma mistura dos dois processos anteriores. Nelas, o código é pré-compilado, gerando um pseudo-código, e depois uma "máquina virtual" lê esse pseudo-código e o interpreta.
Dissertem.
OBS: Muitos programas precisam de bibliotecas(dlls) e subprogramas para rodarem.