Der Ursprung von C

C wurde von Dennis Ritchie auf einer DEC PDP-11 unter dem Betriebssystem UNIX eingeführt und erstmalig implementiert. C ist das Ergebnis eines Entwicklungsprozesses, der mit einer älteren Sprache BCPL begann. BCPL wurde von Martin Richards entwickelt und von einer Sprache B beeinflußt, die Ken Thompson eingeführt hatte. B führte also in den siebziger Jahren zur Entwicklung von C.

Über viele Jahre war der de facto Standard für C die Version des UNIX Version 5 Betriebssystems, die in The C Programming Language von Brian Kernighan und Dennis Ritchie (Prentice-Hall, 1978) beschrieben ist. Mit Verbreitung der Mikrocomputer wurden viele C-Implementierungen erstellt. Der Quellcode, der von den meisten dieser Implementierungen angenommen wurde, war hochgradig kompatibel. Um ein Wildwuchs zukünftig zu vermeiden, richtete ANSI im Sommer 1983 ein Kommitee zur Erstellung eines Standard ein, der die Sprache C definiert.

C ist eine mittlere Sprache

C wird oft mittlere Computersprache genannt, wobei mittlere Sprache keineswegs negativ gemeint ist. Das bedeutet weder, dass C weniger mächtig, schwieriger zu benutzen oder weniger entwickelt ist als eine höhere Programmiersprache wie BASIC oder Pascal, noch dass C Assembler ähnlich ist. C wird als mittlere Computersprache betrachtet, da es Elemente von höheren Sprachen mit der Funktionalität von Assembler verbindet. Als mittlere Sprache gestattet C die Manipulation von Bit, Byte und Adressen, den grundlegenden Elementen, mit denen ein Computer arbeitet. Aus diesem Grund ist C als Programmiersprache auf fast allen Embedded-Plattformen anzufinden. C definiert aber auch Datentypen, Typenumwandlungen, Funktionen und vieles mehr, also Elemente einer Hochsprache. Somit ist die Systemprogrammierung und die damit verbundene Betriebssystemprogrammierung fester Bestandteil der Programmiersprache C.

C ist eine Sprache für Programmierer

Was heißt das? Alle Programmiersprachen sind doch eigentlich Sprachen für Programmierer! BASIC z.B. wurde im Wesentlichen entwickelt, damit Nichtprogramierer  einen Computer zur Lösung relativ einfacher Probleme programmieren können. Im Gegensatz dazu steht C fast alleine im Raum, weil es von Programmierern in der Praxis erstellt, beeinflußt und dem Feldtest unterzogen wurde. Als Folge davon gibt C den Programmierer, was der Programmierer will: wenig Einschränkungen, wenig Fehlermeldungen, Blockstrukturen, eigenständige Funktionen und eine kompakte Menge von Schlüsselwörtern. Deshalb ist C so verbreitet und bietet sehr viel Spielraum, um hardware-nahe und komplexe Programme zugleich zu entwickeln.

Alles ist Training

Wie viele Programmiersprachen ist auch C nicht einfach zu erlernen. Es bedarf sehr viel Übung, um C effektiv in bestimmten Bereichen einzusetzen. Aufgrund des Alters von C sind viele moderne Programmiersprachen wie Java oder C# von C beeinflusst worden. Deshalb gilt: „Kannst Du C, kannst du andere Programmiersprachen sehr schnell erlernen“. Auf Grund dessen sind nachfolgend eine Reihe von Übungen aufgeführt, die in die Programmiersprache C einführen und viele Aspekte der Sprache hervorheben sollen.