⚙️ Código fuente, compilación y ejecución (Runtime)
Todo programa comienza como una idea escrita en texto.
Ese texto, el código fuente, debe pasar por una serie de transformaciones hasta convertirse en instrucciones que la CPU puede entender.
La ejecución de un programa es el momento en que la lógica se vuelve acción.
🔹 Qué es el código fuente
El código fuente es el conjunto de instrucciones escritas por el programador en un lenguaje legible por humanos.
Puede ser Python, JavaScript, Go u otro lenguaje, pero todos comparten un mismo propósito: describir una secuencia lógica de acciones.
Ejemplo simple en tres lenguajes:
🐍 Python
print("Hola, mundo")⚡ JavaScript
console.log("Hola, mundo");🐹 Go
package main
import "fmt"
func main() {
fmt.Println("Hola, mundo")
}A primera vista parecen distintos, pero todos hacen lo mismo:
instruyen al sistema para mostrar un mensaje en pantalla.
🔹 Del código al programa ejecutable
El hardware no entiende texto, solo binario (ceros y unos).
Por eso, el código debe transformarse a un formato que la máquina pueda procesar.
Este proceso se realiza mediante compilación o interpretación.
| Tipo de lenguaje | Proceso | Resultado |
|---|---|---|
| Compilado | Traduce todo el código antes de ejecutarse. | Binario o ejecutable. |
| Interpretado | Traduce y ejecuta línea por línea. | Resultado inmediato. |
| Híbrido (JIT) | Combina ambos métodos según necesidad. | Mejora el rendimiento. |
🔹 Ejemplo práctico
Supongamos que tenemos un programa simple que suma dos números:
🐍 Python (interpretado)
a = 5
b = 7
print(a + b)➡️ Python lo lee línea por línea usando su intérprete (python).
No genera un archivo ejecutable; ejecuta directamente las instrucciones.
⚡ JavaScript (JIT — Just In Time)
let a = 5;
let b = 7;
console.log(a + b);➡️ El motor V8 (usado por Node.js o Chrome) traduce el código a bytecode y lo ejecuta casi en tiempo real.
Es un modelo intermedio entre interpretación y compilación.
🐹 Go (compilado)
package main
import "fmt"
func main() {
a := 5
b := 7
fmt.Println(a + b)
}➡️ El compilador de Go traduce el programa completo a un archivo binario.
Luego puede ejecutarse directamente sin necesidad de intérprete:
go build programa.go
./programaEn Go, el resultado es un programa autónomo.
En Python y JavaScript, dependes del entorno de ejecución.
🔹 El rol del runtime
El runtime es el entorno que permite ejecutar un lenguaje interpretado o híbrido.
Incluye todo lo necesario para gestionar memoria, errores, variables y procesos.
| Lenguaje | Runtime | Función principal |
|---|---|---|
| Python | Intérprete (python.exe o python3) | Traduce y ejecuta el código. |
| JavaScript | Motor (V8, SpiderMonkey) | Convierte JS a código máquina en tiempo real. |
| Go | Binario + runtime interno | Incluye su propio manejador de memoria y procesos. |
El runtime es el “ecosistema” donde vive tu programa.
🔹 Compilación y errores
Durante la compilación o ejecución, el sistema puede encontrar errores sintácticos o lógicos:
- Errores de sintaxis: el código está mal escrito.
- Errores de ejecución: el código se ejecuta, pero falla (por ejemplo, dividir por cero).
- Errores lógicos: el programa corre, pero no hace lo esperado.
La depuración es el proceso de usar la lógica para encontrar qué parte del código rompe la coherencia.
🔹 De la lógica al proceso
Podemos resumir todo el flujo así:
Cada paso traduce la lógica humana en acciones físicas sobre el hardware.
🧭 Conclusión
Comprender el ciclo entre código, compilación y ejecución es comprender cómo las ideas se transforman en acciones dentro del sistema.
No importa el lenguaje: Python, JavaScript o Go, todos siguen el mismo principio lógico.
La lógica se escribe en código,
el compilador la traduce,
y el hardware la hace realidad.