News Gästebuch Forum Mitglied werden FAQ Howtos Desktops C BOfH Lamer & DAUs Quote DB #linux Quotes Was und warum ? Downloads Wallpapers Subdomain Links TU Sidebar Das Team Über die Site Kontakt
Die Sprache FAQ Basics Advanced
-[ Die Programmiesprache C ]-


--[ Inhalt
    1  -  C - Vor- und Nachteile 
    2  -  Für welche Art von Programmen ist C geeignet?
    3  -  Geschichte der Programmiersprache C


--[ 1 - C - Vor- und Nachteile

C ist eine Hochsprache wie viel andere. Es ist eine sehr mächtige, schnelle und systemnahe Programmiersprache, deren Einsatzgebiet unbeschränkt ist. Da sie sehr populär ist, gibt es eine große Auswahl an Compilern und Hilfsprogrammen, sowie eine Vielzahl von Büchern über C.
In der UNIX-Familie wird C fast ausschließlich benutzt. Es gibt kaum ein Programm, das nicht mit C geschrieben wurde. Auch die Systemkerne der unzähligen UNIX-Clones sind in C geschrieben.
C ist nicht auf ein Betriebssystem beschränkt. Es ist eine hoch portable Sprache, deren Quellcode mit wenigen, oder sogar keiner Änderung auf ein anderes Betriebssystem portiert werden kann. Dies ist vorallem dann der Fall, wenn man sich innerhalb der UNIX-Betriebssystem-Familie bewegt. Es ist aber auch möglich, ein Programm von Windows zu Linux zu portieren und umgekehrt. Dafür sorgt vorallem der ANSI-Standard für C.

Der Umfang der Sprache ist sehr klein und daher leicht erlernbar. Sie umfasst nur 32 Schlüsselwörter im Gegensatz zu Basic welches über 150 umfasst. Dadurch wird Basic aber nicht mächtiger als C. Ganz im Gegenteil! Es gibt kaum eine Programmieraufgabe die mit C nicht gelöst werden kann.
Aber es gibt auch Nachteile. Es ist zwar leicht die Grundlagen der Sprache zu erlernen und kleinere Programme zu schreiben, wenn es aber darum geht ein komplexeres Programm zu programmieren, welches fehlerfrei ablaufen soll, ist schon eine menge Erfahrung nötig. Man braucht mehrere Jahre um dieses zu können. Da die Sprache sehr systemnah ist können sich leicht Fehler einschleichen, wie z.B. das Schreiben in einen nicht vorher reservierten oder sogar von einem anderen Programm genutzten Speicherbereich oder ein "Heap/Stack" overflow. Diese Fehler führen häufig zu einem Sicherheitsproblem. Sie können ausgenutzt werden um an die Benutzerrechte des Programms zu gelangen. Vorallem deswegen ist es wichtig, wenn man die Programmiersprache C verwendet, dass man sehr sorgfältig programmiert. Ein weiterer Nachteil ist, dass der Quellcode komplexer Programme leicht unübersichtlich wird. Es ist nicht gerade leicht den Code eines Programmes übersichtlich und gut zu Strukturieren. Es bedarf sehr viel Zeit sich in den Quellcode eines fremden Programmes einzulesen und genau deshalb ist eine gute Strukturierung sehr wichtig.

Auch die Arbeit mit Strings ist bei C nicht unproblematisch. Durch das Vergessen eines "Nullzeichens", welches einen String abschließt, entstehen leicht Fehler, welche den Programmablauf beeinflussen können.



--[ 2 - Für welche Art von Programmen ist C geeignet?

Wie schon gesagt gibt es keine Beschränkungen des Anwendungsgebietes von C, es gibt aber Gebiete für die sich C mehr oder weniger eignet.
Da C eine sehr systemnahe Programmiersprache ist eignet sie sich vorallem für Hardware bezogene Programme, wie z.B.:

    - Gerätetreiber
    - Betriebssystem-Kerne
    - Bibliotheken
    - Interpreter/Laufzeitumgebungen anderer Sprachen
    - Microcontroller
    - TCP/IP, Sockets
Für diese Anwendungsgebiete gibts unzählige Beispiele wie z.B. der GCC, welcher selbst in C geschrieben wurde oder der Linux Kernel.

Es ist aber nicht alles in C realisierbar. Für solche Fälle gibt es eine Schnittstelle zum Assemblercode.
Wenn man sich mal den Quelltext des Linux-Kernels anschaut, wird man das feststellen. Daher ist die Kenntnis von Assembler bei C nicht unnütz. Sie erleichtert aber vorallem auch das Verständnis vieler Dinge.

Eher ungeeignet ist die Programmiersprache C bei Programmen wie z.B. Textadventures, kleineren Tools oder Hilfsprogrammmen. Hier sind Sprachen wie Perl, Pascal oder Basic besser geeignet, da man bei solchen Programmen keine hohe Geschwindigkeit braucht und sich nicht so leicht Fehler einschleichen die die Sicherheit des Systems beeinflussen.



--[ 3 - Geschichte der Programmiesprache C

C wurde 1972 von Dennis Ritchie in den Bell Telephone Laboratories entwickelt. Ihr eigentlicher Name ist B++, da sie von B abstammt. Die Weiterentwicklung von C nennt sich C++, welche dasselbe enthält wie C, plus einige Zusätze für das objektorientierte Programmieren.

Das Unix-Betriebssystem wurde zuerst mit Assembler geschrieben. Da diese Sprache sehr von der Hardware abhängig und auch schwer ist, war es nötig eine neue Programmiersprache zu entwickeln. C war also dazu gedacht Assembler abzulösen, um die Programmierung von Unix zu erleichtern und die Quelltexte portabler zu machen.

Bis 1989 gab es keinen Standard für C und desshalb wichen die verschiedenen Compiler sehr voneinander ab. Es war nur schwer möglich ein und denselben Quelltext mit verschiedenen Compilern zu compilieren. Deshalb wurde die Sprache 1989 vom amerikanischen Normierungsinstitut (American National Standards Institute, ANSI) standardisiert.

Etwas später, in den frühen 90ern, gab die internationale Normierungsbehörde (International Standards Organisation, ISO) einen neuen Standard heraus, der auch international anerkannt wurde.
Jeder moderne C-Compiler entspricht mit einigen ausnahmen diesen Standards.

by WarLocK