EinfĂĽhrung in die Programmiersprache C
C ist eine der flexibelsten Hochsprachen. Man kann mit ihr Software entwickeln, die performant auf Supercomputern, Minirechnern oder Mikrocontrollern läuft.
- Oliver Lau
Anfang der Siebziger haben die Informatiker Brian Kernighan und Dennis Ritchie eine Programmiersprache entworfen, die auch heute noch regelmäßig das Podest des monatlich aktualisierten TIOBE-Index erklimmt: C. Damit gehört sie in schöner Regelmäßigkeit zu den am weitesten verbreiteten Sprachen auf diesem Planeten.
Dieser Erfolg rührt nicht von ungefähr: 1973 schrieb Dennis Ritchie zusammen mit dem Informatiker Ken Thompson das bis dato komplett in Maschinensprache programmierte Betriebssystem Unix in C um. Damit war Unix das erste in einer Hochsprache entwickelte Betriebssystem und das Projekt setzte einen Meilenstein in der Geschichte der Informatik.
- Die Programmiersprache C ist universell einsetzbar und die Basics sind vergleichsweise leicht zu erlernen.
- Ein Compiler ĂĽbersetzt C-Code in unmittelbar von der Zielarchitektur ausfĂĽhrbaren Maschinencode.
- Bei der Ăśbersetzung sorgen zahlreiche Optimierungsschritte dafĂĽr, dass der resultierende Code speicherfreundlich und auĂźerordentlich effizient ablaufen kann.
- Das prädestiniert die Sprache für Performance-Enthusiasten und Leute, die jedes Bit zweimal umdrehen, bevor sie eine Software installieren.
Daran erkennt man, dass sich C vortrefflich für die Entwicklung maschinennaher Software eignet, obwohl es eine Hochsprache ist, also eine nicht maschinenspezifische. Wie es sich für eine Hochsprache gehört, ist C portabel. Das heißt, man kann eine in C entwickelte Software ohne oder mit nur wenigen Änderungen von einer Plattform (z. B. Intel x86) auf eine andere (z. B. ARM) übertragen. Das gelingt, weil sie Details etwa der Speicherverwaltung oder der Prozessorarchitektur abstrahiert. Damit geht einher, dass man nicht mehr mit kryptisch anmutenden Assembler-Mnemonics wie MOV
, ADD
oder JMP
hantieren muss, sondern sich Befehlen bedienen kann, die an die englische Sprache und mathematische Formeln erinnern. C-Code ist dadurch viel besser schreib-, les- und wartbar als maschinenspezifischer Assemblercode.