🤯 Kapitel 1.01 - Einleitung zu "Programmierung mit C und C++ ohne ideologischen Ballast"

Gefunden auf X - User: @PR0GRAMMERHUM0R
🤪 Was ist überhaupt dieses "C" worüber aktuell jeder spricht? - Eine kurze Geschichte
Die Programmiersprache ↗ C zählt zu einer der einflussreichsten und langlebigsten Programmiersprachen der Computergeschichte.Sie wurde Anfang der 1970er Jahre bei den Bell Laboratories (AT&T) entwickelt und ist bis heute die Grundlage für Betriebssysteme wie zum Bespiel: ↗ MacOS, ↗ Linux oder ↗ Windows sowie sehr vieler Embedded Systeme.
C bildet auch die Grundlage für viele moderne Sprachen wie C++, Java, C# oder Go. Ihre Entstehung ist untrennbar mit der Entwicklung des Unix-Betriebssystems verbunden und entstand aus praktischen Notwendigkeiten der Systemprogrammierung.
🔎 Ein weiter Weg: Vom Multics-Projekt zu Unix
In den späten 1960er Jahren arbeiteten die Bell Laboratories am ambitionierten ↗ Multics-Projekt (ein fortschrittliches, aber extrem komplexes und teures Betriebssystem). Bell Labs zog sich 1969 aus dem Projekt zurück.↗ Ken Thompson und ↗ Dennis Ritchie begannen daraufhin auf einer kleinen DEC ↗ PDP-7 (mit nur 8192 18-Bit "Wörter") ein einfacheres, eleganteres Betriebssystem zu entwickeln – das später zu ↗ Unix wurde. Zunächst wurde Unix komplett in ↗ Assembler geschrieben, was auf der PDP-7 machbar war, aber auf der leistungsfähigeren ↗ PDP-11 (ab 1970) zunehmend mühsam wurde. Thompson und Ritchie suchten nach einer höheren Programmiersprache, die effizient genug für Systemprogrammierung war, aber komfortabler als reiner Assembler.
🔎 Die Vorgängersprachen: BCPL und B
Die direkten Vorläufer von C sind:- ↗ BCPL (Basic Combined Programming Language) – Mitte der 1960er Jahre von Martin Richards entwickelt. Eine typenlose Systemsprache mit guter Portabilität.
-
↗ B – (1969–1970 von Ken Thompson entwickelt) eine stark vereinfachte Version von BCPL für die PDP-7. B war typenlos (nur ein Datentyp) und wurde über einen Interpreter implementiert.
B war für die PDP-7 ausreichend, scheiterte jedoch auf der PDP-11:- Schlechte und langsame Behandlung von einzelnen Zeichen - Die PDP-7/PDP-11 hatten intern unterschiedliche Architekturen.
- Keine Unterstützung für verschiedene Datentypen.
- Nicht effizient genug für den gesamten Unix-Kern(el) und komplexe Hilsprogramme.
🔎 Die Entwicklung von B zu C durch Dennis Ritchie (1971–1973)
Dennis Ritchie übernahm die Weiterentwicklung von B. Ab 1971 erweiterte er B zunächst zu „New B“ (NB) und benannte die Sprache später in C um. Wichtige Neuerungen, die Ritchie einführte:- Einführung eines echten Typsystems (Zum Beispiel: int und char).
- Zeiger (Pointer) und Arrays.
- Strukturen (Zum Beispiel: struct).
- Eine Deklarationssyntax, die Ausdrücken ähnelt (durch starken Einfluss von ↗ Algol 68).
- Der Preprocessor (Zum Beispiel: #include und #define) – Später von Mike Lesk und John Reiser erweitert um Makros mit Parametern und bedingte Kompilierung.
- Ritchie schrieb den ersten echten C-Compiler (nicht mehr interpretiert, sondern direkte PDP-11 Maschinencode Erstellung).
- Im November 1973 wurde der Unix-Ker(nel) (Version 4) vollständig in C neu geschrieben – Ein historischer Meilenstein. Unix war eines der ersten Betriebssysteme, dessen Kern(el) nicht mehr in Assembler geschrieben war.
