Teil 3 „A History lesson“

Der C-Kurs
Antworten
Benutzeravatar
bodo
User
Beiträge: 320
Registriert: 14.02.2007, 17:21
Kontaktdaten:

Teil 3 „A History lesson“

Beitrag von bodo » 10.09.2008, 21:15

C für BASIC-Programmierer

Arbeiten mit dem z88dk Cross-Compiler

von Jens Sommerfeld und Bodo Wenzel

Teil 3

Das Kapitel 3 des BASIC-Handbuchs heißt „A History lesson“. Schauen wir also einmal zurück ins Jahr 1969.

In den AT&T Bell Laboratories arbeitet Dennis Ritchie an einer Portierung von Unix von der PDP-7 auf die PDP-11, dabei sollen die Assembler-Quelltexte eigentlich in die Sprache B seines Kollegen Ken Thomson umgesetzt werden. Leider ist B zu beschränkt, daher beginnen die beiden mit der Implementierung einer neuen Sprache ohne diese Beschränkungen. Das dauert mit einem Umweg über die Sprache BCPL noch bis 1973. Jetzt aber ist C ausreichend mächtig, um Unix damit erneut zu implementieren. Das war das erste Mal, dass ein Betriebssystem in einer Hochsprache geschrieben wurde, und der Anfang eines unvergleichlichen Siegeszuges, der bis heute anhält.

1978 schließlich veröffentlichen Ritchie und Brian Kernighan die berühmte C-Bibel „Programming in C“, die seither nur als K&R bekannt ist. Dummerweise wurden in der Folge verschiedene Dialekte von C erzeugt. Das kennen wir auch von BASIC, wo es trotz eines Standards nie eine Angleichung gab. Um der Sprache eine feste Grundlage zu geben, wird 1989 vom ANSI (dem amerikanischen Pedant zu DIN) der Standard C89 herausgegeben. Dieser wird heute von praktisch allen relevanten Compilern eingehalten, das „Update“ von 1999 (C99) hat sich dagegen noch nicht ganz durchgesetzt.

Das ist zumindest die offizielle Variante der Geschichte. In Wirklichkeit wollten die beiden eine Parodie auf das Betriebssystem Multics und die Programmiersprache Pascal schreiben, und haben die Arbeit am Compiler abgeschlossen, als er folgendes Statement fehlerfrei übersetzen konnte (http://gnu.org/fun/jokes/unix-hoax.html):

Code: Alles auswählen

for(;P("\n"),R--;P("|"))for(e=C;e--;P("_"+(*u++/8)%2))P("|"+(*u/4)%2);
Weitere gelungene C-Quelltexte findet ihr im Archiv des IOCCC, dem International Obfuscated C Code Contest.
Zuletzt geändert von bodo am 10.11.2008, 19:29, insgesamt 1-mal geändert.
B0D0: Real programmers do it in hex.

Antworten