Programmiersprache - Retroware.de
Programmiersprache - Retroware.de
Programmiersprache - Retroware.de
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
C (<strong>Programmiersprache</strong>) 21<br />
geschriebene Programme mit einer an<strong>de</strong>ren Sprache zu erweitern (zum Beispiel mod perl).<br />
Eigenschaften<br />
• C gehört zu <strong>de</strong>n imperativen <strong>Programmiersprache</strong>n.<br />
• C besitzt eine relativ kleine Menge an Schlüsselwörtern. Die Anzahl <strong>de</strong>r Schlüsselwörter ist so gering, weil viele<br />
Aufgaben, welche in an<strong>de</strong>ren Sprachen über eigene Schlüsselwörter realisiert wer<strong>de</strong>n, über einzubin<strong>de</strong>n<strong>de</strong><br />
Bibliotheksroutinen (zum Beispiel die Ein- und Ausgabe auf <strong>de</strong>r Konsole o<strong>de</strong>r Dateien und die Verwaltung <strong>de</strong>s<br />
dynamischen Speichers) o<strong>de</strong>r über spezielle syntaktische Konstrukte (zum Beispiel Variablen<strong>de</strong>klarationen)<br />
realisiert wer<strong>de</strong>n.<br />
• C ermöglicht direkte Speicherzugriffe und sehr hardwarenahe Konstrukte. Es eignet sich daher gut zur<br />
Systemprogrammierung. Sollen Programme portierbar sein, sollte von diesen Möglichkeiten aber möglichst<br />
wenig Gebrauch gemacht wer<strong>de</strong>n.<br />
• C schränkt direkte Speicherzugriffe kaum ein. Dadurch kann <strong>de</strong>r Compiler (an<strong>de</strong>rs als zum Beispiel in Pascal) nur<br />
sehr eingeschränkt bei <strong>de</strong>r Fehlersuche helfen. Aus diesem Grund ist C für sicherheitskritische Anwendungen<br />
(Medizintechnik, Verkehrsleittechnik, Raumfahrt) weniger geeignet.<br />
• C enthält einige sicherheitskritische Funktionen; so überschreibt zum Beispiel gets(), eine Funktion <strong>de</strong>r<br />
Standardbibliothek, frem<strong>de</strong> Speicherbereiche (Pufferüberlauf), wenn es auf eine unpassen<strong>de</strong> (zu lange) Eingabe<br />
stößt. Der Fehler ist innerhalb von C we<strong>de</strong>r bemerk- noch abfangbar. Um <strong>de</strong>n großen Vorteil von C – die<br />
Existenz zahlreicher älterer Quellco<strong>de</strong>s – nicht zu verlieren, unterstützen auch aktuelle Implementierungen<br />
weiterhin diese und ähnliche Funktionen, warnen jedoch in <strong>de</strong>r Regel, wenn sie beim Übersetzen im Quelltext<br />
benutzt wer<strong>de</strong>n.<br />
• Historisch bedingt existieren in C keine Funktionen zur positionierten Ausgabe. Es existieren jedoch zahlreiche<br />
Bibliotheken, die für das jeweilige Zielsystem eine solche Ausgabe ermöglichen.<br />
• C verwen<strong>de</strong>t im Quellco<strong>de</strong> einige Son<strong>de</strong>rzeichen (zum Beispiel „{“, „|“ und „&“), die in <strong>de</strong>r Vergangenheit nicht<br />
auf allen Zielsystemen zur Verfügung stan<strong>de</strong>n. Das hat dazu geführt, dass C sich auf jenen Systemen nicht<br />
verbreiten konnte. C bietet zwar eine Alternativschreibweise über Trigraphen, was jedoch die Lesbarkeit <strong>de</strong>s<br />
Quelltextes enorm verschlechtert.<br />
• Eine Modularisierung in C erfolgt auf Dateiebene. Eine Datei bil<strong>de</strong>t eine Übersetzungseinheit; intern benötigte<br />
Funktionen und Variablen können so vor an<strong>de</strong>ren Dateien verborgen wer<strong>de</strong>n. Die Bekanntgabe <strong>de</strong>r öffentlichen<br />
Funktionsschnittstellen erfolgt mit sogenannten Hea<strong>de</strong>r-Dateien. Damit verfügt C über ein schwach ausgeprägtes<br />
[1] [2]<br />
Modulkonzept.<br />
Die <strong>Programmiersprache</strong> C wur<strong>de</strong> mit <strong>de</strong>m Ziel entwickelt, eine echte Sprachabstraktion zur Assemblersprache zu<br />
implementieren. Es sollte eine direkte Zuordnung zu wenigen Maschineninstruktionen geben, um die Abhängigkeit<br />
von einer Laufzeitumgebung zu minimieren. Als Resultat dieses Designs ist es möglich, C-Co<strong>de</strong> auf einer sehr<br />
hardwarenahen Ebene zu schreiben, analog zu Assemblerbefehlen. Die Portierung eines C-Compilers auf eine neue<br />
Prozessorplattform ist, verglichen mit an<strong>de</strong>ren Sprachen, wenig aufwändig. Beispielsweise ist <strong>de</strong>r freie<br />
GNU-C-Compiler (gcc) für eine Vielzahl unterschiedlicher Prozessoren und Betriebssysteme verfügbar. Für <strong>de</strong>n<br />
Entwickler be<strong>de</strong>utet das, dass unabhängig von <strong>de</strong>r Zielplattform fast immer auch ein C-Compiler existiert. C<br />
unterstützt damit wesentlich die Portierbarkeit von Programmen, sofern <strong>de</strong>r Programmierer auf Assemblerteile im<br />
Quelltext und/o<strong>de</strong>r hardwarespezifische C-Konstrukte verzichten kann. Bei <strong>de</strong>r Mikrocontroller-Programmierung ist<br />
C die mit Abstand am häufigsten verwen<strong>de</strong>te Hochsprache.