Sprache Cee
 
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern

Die Programmiersprache C

Wer in die SpracheCee einsteigen möchte, findet das Notwendige in CeeResourcen.

Kurze Einführung:

C ist eine prozedurale Programmiersprache, mit der man nahezu jedes Problem lösen kann. Die meisten Aufgabenstellungen lassen sich jedoch mit anderen, spezialisierteren oder moderneren Programmiersprachen einfacher lösen. Viele dieser Sprachen, wie C++, Java, Perl oder neuerdings C# verwenden im wesentlichen die C-Syntax und bauen ihre Zusatzfeatures darauf auf. So ist C zwar in gewisser Weise veraltet, aber gleichzeitig fest im Kern der Software-Welt verankert. Betriebssysteme wie UNIX oder MS-Windows sind in C programmiert. Perl ist in C implementiert. Viele Systeme, bei denen es auf maximale Kompaktheit und/oder Performance ankommt, wie "embedded systems" oder Computerspiele, verwenden C. Es lohnt sich also nach wie vor, C zu erlernen; aber vielleicht nicht unbedingt als erste Programmiersprache.

Geschichte:

Die Programmiersprache C wurde 1972 von DennisRitchie entwickelt, als er bei BellLaboratories? die Aufgabe erhielt, das damals noch unbekannte Betriebssystem UNIX auf eine andere Hardware (PDP-11) zu übertragen. Um einem mühsamen Assembler-Projekt zu entgehen, schrieb er sich eine eigene, passende Programmiersprache. Da er dabei auf eine Vorgängersprache B aufbaute, nannte er die neue Sprache C. Der Rest ist die bekannte Erfolgsstory.

Diese Erfolgsstory baut vor allem auch auf der Tatsache auf, daß C als Programmiersprache schnell zu einer standardisierten Sprache werden sollte. Jedoch hat sich die tatsächliche Veröffentlichung eines C Standards vor allem auch wegen der Art, wie ein Standard-Komitee arbeitet, bis hin zum Jahr 1989 verzögert, obwohl bereits 1983 ein Arbeitskreis für einen C Standard gebildet wurde. Man spricht hierbei vom C89 Standard der ursprünglich vom amerikanischen ANSI (American National Standards Institute) herausgegeben, nachher von der ISO (International Organization for Standardization) übernommen und daraufhin wieder vom ANSI übernommen wurde (dies ergab eine weitere Verzögerung um ein Jahr, weshalb man diese Ausgabe auch C90 nennt). Der offizielle Name des Standard Dokumentes lautet: ISO/IEC 9899 "Programming languages -- C". Der Entstehungsweg zeigt, schon durch wieviele Hände die Programmiersprache C ging, bevor sie tatsächlich zu dem wurde was wir heute von Ihr kennen. Auch wenn der Standard weitestgehend auf dem von DennisRitchie (im Usenet als dmr bekannt) veröffentlichten Reference Definition (die man auch im Standardwerk "The C Programming Language" von BrianKernighan und DennisRitchie, heute in der zweiten Ausgabe als K&R2 bekannt, im Anhang A: Reference Manual finden kann) basiert, so haben sich doch einige wichtige Änderungen gegenüber K&R-C ergeben. 1999 wurde die zweite Ausgabe des C Standards freigegeben. Diese Version (C99) bringt einige Neuerungen mit sich. -- ZoranCutura

Stärken:

Schwächen:
Durchgriff von Modellierung bis zum Ablauf im Maschinencode

Programmiert wird, indem das Problem zergliedert und modelliert wird, dann compiliert und gestartet. Was genau die CPU auf dem Mainboard treibt, wird schon richtig sein. Das geht bei typischen PC-Anwendungen gut, nicht aber in Echtzeitsteuerungen. Auch bei typischen PC-Programmen könnte man ein besseres Gefühl haben, wenn man weiß, dass jemand im Bekanntenkreis oder im Umkreis von 100 km - wie auch immer - weiß, was die CPU tut. Ich meine, nicht die Verantwortung und die Beherrschung der Technik wenigen überlassen, die weit weg sind.

In diesem Zusammenhang greift die Programmiersprache C. Grob gesagt, C ist ein besserer Makroassembler, und das ist auch gut so. Bei Programmzeilen in C kann man sich, ohne in's Listing zu schauen, eine grobe Vorstellung davon machen, was der Prozessor treibt. Zusätzlich gibt es das Listing, oder im Visual Studio die Dissassemblierungsansicht usw. C ist damit ideal geeignet aus dieser Sicht.

Als Programmiersprache zum wirklichen Programmieren ist C weniger geeignet. Dazu ist schon vieles gesagt.

Ich arbeite mit einem UML-Tool, grafische Modellierung, automatische Codegenerierung, Inhalte von Methoden werden mit C(++) gefüllt. C(++) tritt als Zwischensprache für die Generierung auf. In diesem Zusammenhang ist C++, besser wäre C (!), richtig. Die Programmzeilen, die in die Methoden geschrieben werden, sehen an sich (fast) genauso wie Java oder ähnliches aus, und wünschenswert wäre, wenn man dort wirklich nicht in der Zielsprache schreiben müsste, sondern in einer Metasprache. Ich halte Java-style als Metasprache für sinnvoll. Aber soweit sind die UML-Tool-Hersteller noch nicht.

Damit ergibt sich folgende Konstellation:

 Modellierung in UML, grafisch, Objektmodell-Diagramme + Statecharts, 
 Funktionalität mit Metasprachen-Programmzeilen ergänzen.

==>

Codegenerieren in C, damit ist der Durchgriff vom Modell zum Code möglich

==>

Maschinencode mit C-Compiler, Durchgriff zum Maschinencode ist möglich

Anmerkung: C++ erscheint in dem Zusammenhang eher überflüssig.

Fragen, Diskussionen und Anregungen zu verschiedenen Topics der Sprache C


Siehe CeeKonzepte CeeResourcen SpracheCpp SpracheJava SprachePerl SpracheCsharp

Diverse Links:


KategorieC KategorieCee KategorieProgrammierSprache
StartSeite | Neues | TestSeite | ForumSeite | Teilnehmer | Kategorien | Index | Hilfe | Einstellungen | Ändern
Text dieser Seite ändern (zuletzt geändert am 17. Dezember 2010 9:40 (diff))
Suchbegriff: gesucht wird
im Titel
im Text