21.01.2013 Aufrufe

Programmiersprache - Retroware.de

Programmiersprache - Retroware.de

Programmiersprache - Retroware.de

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!