Die Programmiersprache C++

von | 16. Dezember 2021 | Grundlagen

Wer Softwareprojekte umsetzen möchte oder ein System programmieren will, der muss sich mit der Wahl der passenden Programmiersprache auseinandersetzen. C++ gehört zu den Klassikern unter den Programmiersprachen, wenngleich Java in den letzten Jahren in einigen Bereichen dominierend geworden ist.

Doch welche Vorteile bringt die Programmiersprache und welche Einsatzmöglichkeiten ergeben sich hinsichtlich künstlicher Intelligenz?

Ein kurzer Überblick: Ist C++ noch aktuell?

Im Jahr 1979 entwickelte Bjarne Stroustrup die C++ als Weiterentwicklung von C. Die Programmiersprache ermöglicht das Erstellen von Programmen auf einem hohen Abstraktionsniveau. Die effiziente und maschinennahe Programmierung ist einer der Vorteile der Sprache. Es handelt sich um eine der am weitverbreitetsten Programmiersprachen – sowohl in der Anwendungsprogrammierung als auch in der Systemprogrammierung.

Einsatzmöglichkeiten in der Entwicklung von Anwendungen ergeben sich unter anderem bei der Programmierung von:

  • Betriebssystemen – Windows ist beispielsweise zum Großteil in C, C++ und C# geschrieben
  • eingebetteten Systemen – eingebetteter Computer z.B. in Waschmaschinen
  • Spiele – wie z.B. GTI Racing (2006)

In diesem Sektor ersetzte die Programmiersprache die klassischen Assemblersprachen, die bis in die 80er-Jahre für diese Aufgaben genutzt wurden. Bereits der Vorgänger C zeigte diese Fähigkeit.

In der Anwendungsprogrammierung wurde C++ seit dem Jahr 2000 von Java als vorherrschende Sprache zurückgedrängt. Sie kommt jedoch weiterhin in Bereichen zum Einsatz, die eine hohe Effizienz voraussetzen. Denn ein großer Vorteil der Programmiersprache ist die Eigenschaft vorgegebene Leistungsgrenzen optimal auszunutzen.

Wie wurde die Programmiersprache C++ entwickelt?

Bjarne Stroustrup befasste sich im Rahmen des Schreibens seiner Doktorarbeit an der Cambridge University mit der Programmiersprache Simula. Er erkannte zwar die Vorteile von Simula hinsichtlich der Nutzung in großen Softwareprojekten, kritisierte jedoch die Struktur der Sprache, welche bei der Erstellung hocheffizienter Programme schwerfällig war. Sollten effiziente Programme geschrieben werden, dann stand die Programmiersprache BCPL zur Verfügung – sie eignete sich allerdings nicht für große Softwareprogramme. Aus dieser Situation heraus entstand der Wunsch, eine Programmiersprache zu entwickeln, die für große Softwareprojekte geeignet war und zugleich hocheffiziente Programme ermöglichte.

Weiterentwicklung von C mit Einfluss von Simula-67

Bjarne Stroustrup arbeitete in den AT&T Bell Laboratories und befasste sich mit der Programmiersprache C, die er als Basis für eine Weiterentwicklung auswählte. Zentrale Gründe für diese Auswahl waren die Eigenschaft als Mehrzwecksprache und die Fähigkeit zur Produktion von schnellem Code. Simula-67 fungierte hinsichtlich des Entwurfs eines Klassenkonzepts mit Datenkapselung als Vorlage.

Bjarne Stroustrup entwickelte nicht nur die Programmiersprache weiter, er schrieb auch den Compiler cfront, deren erste kommerzielle Version im Jahr 1985 auf den Markt kam. Der Compiler hatte die Aufgabe, aus „C mit Klassen“, einem Vorgänger von C++, einen C-Code zu erzeugen. Die bereits 1983 entscheidenden Erweiterungen waren:

  • Referenzen,
  • Konstanten,
  • virtuelle Funktionen,
  • das Überladen von Operatoren sowie Funktionsnamen
  • und die verbesserte Typüberprüfung.

Entwicklung weiterer Funktionen

Aus der Programmiersprache BCPL übernahm der Entwickler die Option, Kommentare an das Zeilenende zu stellen. Die Lesbarkeit und die Dokumentation der Programme werden dadurch verbessert. Die Programmierer nutzen „//“, um Kommentare einzufügen, die vom Compiler nicht übersetzt werden und ausschließlich dem menschlichen User als Orientierung dienen. Insbesondere bei der späteren Analyse ist es bei großen Projekten unerlässlich, derartige Kommentare als Hilfe zu haben.

Die erste Version von C++ kam 1985 auf den Markt, die zweite Version wurde 1989 veröffentlicht. In der zweiten Ausführung waren statische Elementfunktionen, abstrakte Klassen und Mehrfachvererbung enthalten. Später erhielt die Programmiersprache weitere Änderungen, boolsche Typen, Templates und Namensräume.

Welches Sprachdesign wird verwendet?

Der Sprachkern der Programmiersprache besteht aus rund 60 Schlüsselwörtern, wobei einige in unterschiedlichen Zusammenhängen mehrfach zur Anwendung kommen. Durch die Standardbibliothek wird die erforderliche Funktionalität ermöglicht. Hierzu gehören unter anderem Listen, Vektoren und Arrays. Des Weiteren stellt die Standardbibliothek die Verbindung zum Betriebssystem her. Um die Funktionalität zu erhöhen, ist die Nutzung weiterer Bibliotheken und Frameworks möglich.

Zu den Vorteilen der Programmiersprache gehört die Kombination von mächtigen Sprachmitteln mit maschinennaher, effizienter Programmierung. Abstrakte Befehlsfolgen kommen zum Einsatz – sowohl komplexe als auch einfach Implementierungsdetails werden in den Befehlsfolgen verpackt.

Sind C und C++ kompatibel?

Der Entwurf der 1979 neuen Programmiersprache erfolgte bewusst als Weiterentwicklung, wodurch die Grundlage für die Kompatibilität gelegt wurde. Allerdings wurden durch diese Entscheidung auch einige Nachteile von C übernommen, die weiterhin bestehen:

  • Die C-Syntax gilt als teilweise schwer verständlich – ein Laster, das sich auf die Weiterentwicklung übertragen hat.
  • Der Präprozessor ist überholt, bleibt in seinem Kern jedoch auch bei der Nachfolgeversion erhalten.
  • C++ Programme können oftmals nur mit hohem Aufwand zwischen Betriebssystemen und unterschiedlichen Rechnertypen übertragen werden – auch hier wird das Erbe der Vergangenheit deutlich.

Wie erfolgt die „Hallo Welt!“-Ausgabe in C++?

Zu den wohl bekanntesten Programmen gehört die Ausgabe des Wortes „Hallo Welt!“ auf dem Bildschirm. Nahezu jeder Programmiereinsteiger erstellt als erste Aufgabe die Ausgabe eines Wortes oder Satzes (zumeist „Hallo Welt!“). Folgender Code kann als Lösung für diese Aufgabe angesehen werden:

#include
int main() {
std::cout << "Hallo Welt!" << std::endl;
return 0;
}

Soll das Programm ausgeführt werden, dann wird die oben stehenden Funktion main () aufgerufen. Das Programm beginnt hier. Übergabeparameter sind nicht vorhanden, sie würden in der Klammer hinter dem Schlüsselwort main stehen. Die Funktion main () enthält nur einen Befehl: die Ausgabe des Satzes „Hallo Welt!“.

Ist es einfach, mit der Programmiersprache C++ zu arbeiten?

Die Programmiersprache bietet große Chancen und ist in ihren Ansätzen leicht verständlich. Allerdings ist es wie bei allen anderen Programmiersprachen ebenfalls unerlässlich Programme im professionellen Umfeld von erfahrenen Experten erstellen zu lassen. Die Programmiersprache ist ein mächtiges Instrument, deren Stärken wohlüberlegt eingesetzt werden müssen.

In diesem Kontext kann auf ein bekanntes Zitat von Bjarne Stroustrup verwiesen werden:

„In C++ it’s harder to shoot yourself in the foot, but when you do, you blow off your whole leg.“

Quelle: www.stroustrup.com/quotes.html

Die Programmiersprache führt zu einer Vereinfachung, die von Programmierern gerne eingesetzt wird. Zugleich enthält die Programmiersprache aber auch viele mächtige Instrumente, deren Einsatz mit Bedacht erfolgen muss. Erfahrene Developer wissen, wie sie mit diesen Möglichkeiten umgehen.

Ein Beispiel hierfür ist der Einsatz von Zeigern, der in der Programmierung üblich ist. Die sogenannten Zeiger verweisen dabei auf den Inhalt einer anderen Variablen. Ein übertragenes Beispiel hierfür wäre eine Nummernkarte, die ein Besucher beim Abgeben seiner Jacke an der Garderobe erhält. Die Nummernkarte steht hierbei für den Zeiger. Sie verweist auf den Ablageort der Jacke.

Ein Zeiger, der noch keine Zieladresse zugewiesen bekommen hat (im Beispiel einen Haken in der Garderobe), wird auf 0 gesetzt. An dieser Stelle befindet sich keine Variable, ein versehentlicher Zugriff hierauf führt zum Absturz. Das führt in diesem Moment zwar zu einem Fehler, dieser löst jedoch keine weiteren Fehler aus. Verweist jedoch der Zeiger auf einen zufälligen Wert, dann kann das Programm weiterarbeiten. Dabei wird dann ein falscher Wert verwendet, der Fehler wird jedoch nicht bemerkt.

Es ist ersichtlich, dass mit einer mächtigen Programmiersprache auch eine große Verantwortung entsteht, die von Experten jedoch bewältigt wird.

Kann man mit C++ Anwendungen mit künstlicher Intelligenz programmieren?

Künstliche Intelligenz (KI) oder auch artifizielle Intelligenz (AI) genannt, befasst sich mit der Aufgabe, maschinelles Lernen zu realisieren und menschliche Intelligenz nachzuahmen. Auf diese Weise entstehen leistungsfähige und vielseitige Programme. AI 2.0 befasst sich mit dem Ziel, AI in non-tech companies zu nutzen.

Denn künstliche Intelligenz ermöglicht die Erhöhung der Effizienz durch Automatisierung von Aufgaben. Umfangreiche Datenmengen lassen sich auf diese Weise verarbeiten und es können automatisiert Entscheidungen auf Basis dieser Informationen getroffen werden.

Basis für jedes KI-Programm ist die Programmiersprache. C++ eignet sich in diesem Bereich insbesondere für Deep Learning im Edge-Bereich (die künstliche Intelligenz liegt direkt auf dem Endgerät). Denn künstliche Intelligenz wird immer mehr Device-übergreifend eingefordert. Dabei ist es notwendig, Programme für Systeme umzusetzen, die nur sehr begrenzt Ressourcen zur Verfügung haben. Denn viele Endprodukte sind in Bezug auf Kosten, Speichergröße, Abmessungen und Leistungsaufnahme limitiert. C++ ermöglicht sich hierbei die größte Performance.

Fazit

Bei C++ handelt es sich um eine Programmiersprache, die umfangreiche Werkzeuge liefert, um große Projekte erfolgreich zu bewältigen. Erfahrene Entwickler können mit C++ komplexe Programme und Systeme erstellen, die vielfältige Einsatzgebiete haben.

Ein modernes Anwendungsgebiet ist hierbei die künstliche Intelligenz. Da insbesondere mobile Endgeräte und IoT-Devices nur über begrenzte Ressourcen verfügen, ist die C++ eine effiziente Lösung. Für Developer bietet der Bereich somit ein spannendes Tätigkeitsfeld, dass C++ als Programmiersprache entsprechend attraktiv macht.

<a href="https://www.alexanderthamm.com/de/blog/author/at-redaktion/" target="_self">[at] REDAKTION</a>

[at] REDAKTION

Unsere AT Redaktion besteht aus verschiedenen Mitarbeitern, die mit größter Sorgfalt und nach Bestem Wissen und Gewissen die entsprechenden Blogartikel ausarbeiten. Unsere Experten aus dem jeweiligen Fachgebiet versorgen Sie regelmäßig mit aktuellen Beiträgen aus dem Data Science und AI Bereich. Wir wünschen viel Freude beim Lesen.

0 Kommentare

Einen Kommentar abschicken

Deine E-Mail-Adresse wird nicht veröffentlicht.