Jesús, me siento viejo ahora, y nunca tuve que meterme con tarjetas perforadas o procesamiento por lotes. Demonios, solo tuve que usar una terminal impresa una o dos veces en el transcurso de mi carrera universitaria.
Así es como hicimos las cosas en el Cretácico tardío (alrededor de 1986). Estaba trabajando en VAX / VMS a través de un terminal basado en caracteres VT220 ámbar sobre negro que podía mostrarse en 80x24 o 132x24.
Primero, activó el editor de texto:
$ EDIT/EDT HELLO.C
EDT era el equivalente VMS de vi, cayendo en algún lugar en capacidad entre DOS edlin y Notepad. Escribiste el texto de tu programa
#include <stdio.h>
int main(void)
{
printf("Hello, Stupid\n");
return 0;
}
lo guardó en el archivo y luego salió del editor.
Luego ejecutó su código a través del compilador:
$ CC HELLO
Esto tradujo el código fuente en HELLO.C y generó el archivo objeto HELLO.OBJ. El archivo objeto contenía el código de máquina para el programa, pero aún no estaba en forma ejecutable. Por un lado, el código binario real para la printf
llamada no está presente; solo hay un marcador de posición para ello. Aún tenía que ejecutar el archivo objeto a través de un enlazador , que incorporaba el código binario de la biblioteca estándar (y cualquier otra biblioteca que necesitara) y formateó el archivo para que pudiera reconocerse como un ejecutable:
$ LINK HELLO
El resultado de este paso es el archivo HELLO.EXE, que es la versión ejecutable de su programa.
El procedimiento es prácticamente el mismo en cualquier sistema moderno; es solo que las cadenas de herramientas específicas son diferentes. Por ejemplo, la secuencia de comandos en un sistema Linux típico sería
$ vi hello.c
$ gcc -o hello hello.c
o
$ vi hello.c
$ gcc -c hello.c
$ ld -o hello hello.o -lc
Desde que crecí en este entorno, nunca entendí cómo alguien podría necesitar un IDE solo para escribir su código. Sin embargo, a principios de este año comencé a trabajar en Java, y aunque Eclipse tiene muchas, muchas fallas, puedo entender cómo alguien puede confiar en gran medida en un IDE para hacer su trabajo. Dado que Java es un lenguaje tan enorme en comparación con C, y dado que todavía estoy tratando de reducir los puntos más finos de la sintaxis, ayuda tener un entorno de desarrollo inteligente que sepa en qué paquetes están los tipos particulares y me ayuda a organizar las importaciones.