Tutorials Infos - Anleitungen - Hilfe - Dreamcodes
 

C Definition

Die Programmiersprache C wurde von Ken Thompson und Dennis Ritchie in den frühen 70er Jahren für das neu entwickelte Betriebssystem Unix entworfen. Ken Thompson passte zunächst die Programmiersprache BCPL auf seine Bedürfnisse an und nannte die so entstandene Sprache "B" (nach den Bell Laboratories, in denen die Sprache entwickelt wurde). Aus dieser Sprache entstand dann C. Die grundlegenden Programme aller Unix-Systeme und die Kerne vieler Betriebssysteme sind in C programmiert.

Die Sprache C++ ist aus C hervorgegangen und gegenüber C unter anderem um Möglichkeiten zur objektorientierten und generischen Programmierung erweitert.

C ist eine Programmiersprache, die auf fast allen Computersystemen zur Verfügung steht. Im Gegensatz zu z.B. BASIC gibt es seit der Definition von ANSI C relativ einheitliche Implementierungen auf den verschiedenen Plattformen. In jedem C-System mit Laufzeitumgebung steht auch die genormte Standard C Library zur Verfügung. Dies und die bei geschickter Programmierung hohe Leistung der resultierenden Programme erklärt die weiterhin relativ hohe Popularität der Sprache, sowohl im kommerziellen als auch im Open-Source-Bereich.

Es gibt Meinungen, C entspreche nicht dem heutigen Stand der Technik; manchmal wird C auch als portierbarer Highlevel-Assembler bezeichnet. Die Kerne fast aller heute verbreiteten Betriebssysteme wurden aber in C implementiert, und dies, obwohl C++ bereits seit Mitte der 80er Jahre zur Verfügung steht, wenn auch in der jetzigen, ISO-genormten Form erst seit 1998.

C eignet sich gut für die Systemprogrammierung. Anders sieht die Sache jedoch bei der Anwendungsentwicklung aus. Dort wird C zunehmend durch die Sprachen C++, Java und C# verdrängt, die gemeinsam haben, dass sie alle über Möglichkeiten zur objektorientierten Programmierung verfügen und C im Bezug auf Wartbarkeit, Entwurfsunterstützung und Abstraktionsniveau erweitern und verbessern.

An anderer Stelle zeigen sich die einfache Struktur und der kleine Umfang der Sprache als großer Vorteil: Die Portierung eines C-Compilers auf eine neue Prozessorplattform ist verglichen mit anderen Sprachen wenig aufwändig, so dass sich dies vom einfachsten Mikrocontroller bis zum Großrechner-Prozessor praktisch immer lohnt. Der GNU C-Compiler gcc ist beispielsweise für eine Vielzahl unterschiedlichster Prozessoren und Betriebssysteme verfügbar. Für den Entwickler bedeutet dies, dass unabhängig von der Zielplattform fast immer auch ein C-Compiler für diese spezifische Plattform existiert. Die prozessorspezifische Programmierung in Assembler bleibt ihm dadurch ganz oder weitgehend erspart, und Quellcode, der für andere Plattformen geschrieben wurde, kann oftmals mit keinen oder nur wenigen Änderungen auf einer neuen Plattform weiterverwendet werden.

Die Sprachbeschreibung wurde 1972 erstmals publiziert. Im Jahre 1989 wurde die Sprache erstmals standardisiert (C89). Dieser Standard wurde überarbeitet und 1999 erschien dann der internationale Standard ISO/IEC 9899:1999, der als C99 bekannt ist. Siehe auch ANSI C.

Ein ausführbares C-Programm wird durch den so genannten Linker oder Binder aus Objektcode erzeugt (gebunden). Dabei können mehrere Objectcodedateien zu einem Programm zusammengefasst werden. Die Objektcodedateien ihrerseits werden durch den Compiler aus Textdateien erzeugt (übersetzt), die eine Anzahl Funktions- und Variablendefinitionen enthalten. Neben Programmen kann man aber auch noch Bibliotheken erstellen. Diese werden ähnlich wie Programme gebunden oder in ein Archiv zusammengefasst. Diese Bibliotheken können dann in einem späteren Bindevorgang wiederum zu einem Programm hinzugebunden werden. Auf diese Weise kann man verhindern, dass für jedes zu erzeugende Programm unzählige (in größeren Systemen durchaus hunderte bis tausende) unveränderliche Objektcodedateien immer wieder erneut gebunden werden müssen.

Das Design der Programmiersprache, die Technik des Linkens und verschiedene zu festen Sprachelementen gewordene Funktionen und Festlegungen sind eng mit dem Design unixartiger Betriebssysteme verbunden, so die Art und Weise der Signalbearbeitung, der Ein- und Ausgabe mit Streams, und das Verfahren des Startens und Beendens eines Programms.

 
ID: 866
eingestellt am: 05.09.2005
Autor: na
Status zum lesen: Gast
gelesen: 4589
Webseite: www.dreamcodes.com
[Drucken]