Gesù, ora mi sento vecchio, e non ho mai nemmeno dovuto scherzare con le schede perforate o l'elaborazione in batch. Diavolo, ho solo dovuto usare un terminale cartaceo una o due volte nel corso della mia carriera universitaria.
Ecco come abbiamo fatto le cose nel tardo Cretaceo (circa nel 1986). Stavo lavorando su VAX / VMS attraverso un terminale VT220 ambra-on-black basato sui caratteri che poteva essere visualizzato in 80x24 o 132x24.
Innanzitutto hai attivato l'editor di testo:
$ EDIT/EDT HELLO.C
EDT era l'equivalente VMS di vi, che rientrava in qualche capacità tra DOS edlin e Blocco note. Hai digitato il testo del tuo programma
#include <stdio.h>
int main(void)
{
printf("Hello, Stupid\n");
return 0;
}
salvato nel file e quindi uscito dall'editor.
Quindi hai eseguito il tuo codice attraverso il compilatore:
$ CC HELLO
Questo ha tradotto il codice sorgente in HELLO.C e generato il file oggetto HELLO.OBJ. Il file oggetto conteneva il codice macchina per il programma, ma non era ancora in una forma eseguibile. Per prima cosa, il codice binario effettivo per la chiamata printf
non è presente; c'è solo un segnaposto per questo. Dovevi ancora eseguire il file oggetto tramite un linker , che incorporava il codice binario dalla libreria standard (e qualsiasi altra libreria di cui hai bisogno) e formattato il file in modo che potesse essere riconosciuto come eseguibile:
$ LINK HELLO
Il risultato di questo passaggio è il file HELLO.EXE, che è la versione eseguibile del programma.
La procedura è praticamente la stessa su qualsiasi sistema moderno; è solo che le specifiche toolchain sono diverse. Ad esempio, la sequenza di comandi su un tipico sistema Linux sarebbe
$ vi hello.c
$ gcc -o hello hello.c
o
$ vi hello.c
$ gcc -c hello.c
$ ld -o hello hello.o -lc
Da quando sono cresciuto in questo ambiente, non ho mai capito come qualcuno potrebbe aver bisogno di un IDE solo per scrivere il proprio codice. Tuttavia, all'inizio di quest'anno ho iniziato a lavorare in Java, e mentre Eclipse ha molti, molti difetti, posso capire come qualcuno possa fare affidamento su un IDE per portare a termine il proprio lavoro. Dal momento che Java è un linguaggio così vasto rispetto a C, e dal momento che sto ancora cercando di ottenere i punti più fini della sintassi, aiuta ad avere un ambiente di sviluppo intelligente che conosce i pacchetti di particolari tipi e mi aiuta a organizzare le importazioni.