Jesus, ich fühle mich jetzt alt und musste mich nie mehr mit Lochkarten oder Stapelverarbeitung herumschlagen. Zur Hölle, ich musste im Laufe meiner College-Karriere nur ein oder zwei Mal ein Hardcopy-Terminal benutzen.
So haben wir es in der späten Kreidezeit (um 1986) gemacht. Ich arbeitete an VAX / VMS über ein zeichenbasiertes VT220-Terminal, das entweder 80 x 24 oder 132 x 24 anzeigen konnte.
Zuerst haben Sie den Texteditor gestartet:
$ EDIT/EDT HELLO.C
EDT war das VMS-Äquivalent von vi, das zwischen DOS edlin und Notepad nicht mehr funktioniert. Sie haben Ihren Programmtext eingegeben
#include <stdio.h>
int main(void)
{
printf("Hello, Stupid\n");
return 0;
}
Speichern Sie es in der Datei und beenden Sie den Editor.
Dann haben Sie Ihren Code über den Compiler ausgeführt:
$ CC HELLO
Dadurch wurde der Quellcode in HELLO.C übersetzt und die Objektdatei HELLO.OBJ generiert. Die Objektdatei enthielt den Maschinencode für das Programm, war jedoch noch nicht in ausführbarer Form. Zum einen ist der eigentliche Binärcode für den printf
Aufruf nicht vorhanden. Es gibt nur einen Platzhalter dafür. Sie mussten die Objektdatei dennoch über einen Linker ausführen , der den Binärcode aus der Standardbibliothek (und allen anderen benötigten Bibliotheken) enthielt und die Datei formatierte, damit sie als ausführbare Datei erkannt werden konnte:
$ LINK HELLO
Das Ergebnis dieses Schritts ist die Datei HELLO.EXE, die die ausführbare Version Ihres Programms ist.
Das Verfahren ist auf jedem modernen System so ziemlich dasselbe. Es ist nur so, dass die spezifischen Toolchains unterschiedlich sind. Zum Beispiel wäre die Befehlsfolge auf einem typischen Linux-System
$ vi hello.c
$ gcc -o hello hello.c
oder
$ vi hello.c
$ gcc -c hello.c
$ ld -o hello hello.o -lc
Seit ich in dieser Umgebung aufgewachsen bin, habe ich nie verstanden, wie jemand eine IDE brauchen kann , um seinen Code zu schreiben. Anfang dieses Jahres habe ich jedoch angefangen, in Java zu arbeiten, und obwohl Eclipse viele, viele Fehler aufweist, kann ich verstehen, wie sich jemand stark auf eine IDE verlassen kann, um seine Arbeit zu erledigen. Da Java im Vergleich zu C eine so große Sprache ist und ich immer noch versuche, die Syntax zu optimieren, ist es hilfreich, eine intelligente Entwicklungsumgebung zu haben, die weiß, in welchen Paketen sich bestimmte Typen befinden, und die mich beim Organisieren der Importe unterstützt.