Sprachkonzepte Preprozessor Operatoren Kontrollstrukturen Typen OOP Bibliotheken |
Die Sprachen C und C++C und C++ sind Programmiersprachen, also Sprachen, mit denen Computerprogramme geschrieben werden. Im folgenden wird versucht, C und C++ in einen allgemeinen Kontext einzuordnen. Diese Seite soll ein Verständnis für grundlegende Motivationen der Sprachen aufbauen, indem kurz umrissen aufgezeigt wird, wie sich C und C++ entwickelt haben. Ein kurzer historischer RückblickEs ist noch nicht lange her, seit die ersten elektronischen Schaltungen erfunden wurden: Eine Methode, mit der elektrischer Strom kontrolliert auf verschiedene Leitungen verteilt werden kann. Das Zusammenfügen mehrerer Schaltungen und Leitungen führte zu den ersten elektronischen Geräten: Einfache Steuerelemente wie beispielsweise automatische Türöffner, Zeitschaltuhren oder die Blinklichter eines Autos. Diese Steuerelemente wandeln stets irgendwelche Eingangssignale wie beispielsweise einen Tastendruck durch eine mehr oder weniger komplizierte Verknüpfung verschiedener Schaltungen in Ausgangssignale um. Erfüllt eine Zusammenstellung von Schaltungen einen bestimmten Zweck, so wird sie als sogenannt Elektronische Bauteile wie Chips werden aufgrund ihrer physikalischen Greifbarkeit AssemblerDamit ein Prozessor weiss, was für eine Funktion er ausführen soll, braucht er Instruktionen, einen Code, welcher genau vorgibt, wann welche Eingangssignale mit welcher Methode verknüpft werden sollen. Die Zusammenstellung eines Codes wird Zu alten Zeiten mussten Programmierer somit einem Prozessor Zahlenwerte übermitteln, um eine bestimmte Funktionalität zu erreichen. Da dies für einen Menschen schwierig zu handhaben ist, wurde der sogenannte
Da jeder Prozessortyp seine eigene Maschinensprache hat, hat auch jeder Prozessortyp seinen eigene Assemblersprache. Die Entwicklung von Prozessoren hält bis heute an, und die Organisation der Daten wurde immer wieder verändert. Dies würde bedeuten, dass ein Programmierer einen Code für jeden Prozessortyp neu schreiben müsste. Um dies zu verhindern, wurden neue Programmiersprachen entwickelt, welche sich nie verändern, im Hintergrund jedoch anhand eines CDie Sprache C wird als Befehls-Sprache bezeichnet, das bedeutet, dem Computer werden genauso wie beim Assembler mehr oder weniger direkt Befehle erteilt in einer ganz genau definierten Reihenfolge. Einen Befehl nennt man in C Mehrere aufeinanderfolgende Anweisungen werden als sequentielle Abarbeitung des Codes bezeichnet, bei sehr vielen aufeinanderfolgenden Anweisungen spricht man auch von Spaghetti-Code. Diese Teile des Codes sind diejenigen, an welchen der Prozessor schlussendlich Daten verarbeitet, rechnet, produktiv ist. An gewissen Stellen jedoch wird dem Prozessor mitgeteilt, dass er an eine andere Stelle im Code springen soll, beispielsweise, da er je nach Eingabewert etwas anderes ausführen soll. Eine solche Änderung des Befehlsflusses wird allgemein als Kontrollstruktur bezeichnet. C erlaubt es dem Programmierer, ein Programm in einer übersichtlichen Form zu definieren. Beispielsweise können alle verfügbaren Daten mit einem Namen versehen werden, was man als
Mit der Sprache C wurde ein Hilfsmittel geschaffen, um Datenmanipulationen schnell und geordnet durchführen zu können. Die Sprache ist durch die Nähe zu Assembler nicht immer ganz einfach, für den eingefleischten Programmierer jedoch sehr praktisch. Viele Dinge, die man als Programmierer häufig machen muss, sind mit C vereinfacht worden. Viele bekannte kommerzielle Softwarepakete sowie die gängigen Computersysteme sind in ihrer Basis mit C programmiert worden. Die Sprache C kann auch heute noch mit anderen Sprachen konkurrenzieren, insbesondere durch die Erweiterung mit C++ auf objektorientierte Programmierung. C++C++ ist auf C aufgebaut, beinhaltet somit den kompletten Funktionsumfang von C, bietet jedoch neue Möglichkeiten in der Datenorganisation. Die Grundüberlegung, dass in C sämtliche Werte einem Typ zugeordnet sind, wurde in C++ dahingehend erweitert, dass jeder Typ eine Klasse repräsentiert. In einer Klasse wird ein zusammengehöriges Set von Daten deklariert und Programmcode so damit verknüpft, dass die Klasse eine Dateneinheit beschreibt mit programmierten Eigenschaften, den sogenannten
Die Methoden einer Klasse definieren, welche Funktionen mit den gespeicherten Daten ausgeführt werden können, aus denen die Objekte bestehen. Dies bedeutet, dass man ausserhalb einer Klasse weder den genauen Aufbau der Daten kennen, noch dieselben zu kontrollieren braucht, es genügt, die passenden Funktionen der Objekte aufzurufen. Alleine durch die Deklaration des Typs sind somit automatisch alle benötigten und passenden Funktionen verfügbar. Die objektorientierte Programmierung in C++ erlaubt es zudem, Klassen ineinander zu verschachteln und Methoden über Klassen hinweg zu vererben. Zusammen mit dem Laufzeitsystem von C++ führt dies zu Die Einkapselung von Code und Daten in Klassen strukturiert die Arbeit an der Software. Diese Um die Arbeit mit Objekten weiter zu vereinfachen, können in C++ nebst Methoden auch benutzerdefinierte Operatoren programmiert werden. Dies wird als Mehr über C und C++Hier auf dieser Seite hört die Geschichte von C und C++ auf. Als Rahmen sei hier festgehalten, dass die Sprache C aus der Sprache B entstand, welche erstmals etwa 1969 auftrat. C wurde 1972 von Dennis Ritchie, C++ wurde 1983 von Bjarne Stroustrup entwickelt. 1986 wurde mit Objective-C eine Erweiterung geschaffen und 1999 kam erstmals die Sprache D ins Spiel, genaue Informationen findet man anderswo.
|