Zurück zur Startseite

Computeralgorithmen und Programmiersprachen

Computeralgorithmen

Computeralgorithmen sind programmiere Abläufe um die Intelligenzleistung eines Menschen in einem Teilbereich nachzuahmen.  Da der Computer ein williger Rechenknecht ist, kann er so zu stupiden Arbeiten herangezogen werden und seinem Anwender hilfreich sein. Von einem intelligenten Algorithmus ist genau dann die Rede, wenn mit wenigen Zeilen Code erstaunlich viel erreicht wird.

Computerprogramme

Computerprogramme bestehen aus einer Ein- und Ausgabemöglichkeit für den Benutzer sowie einer Ansammlung von Algorithmen für die Erfüllung der Aufgaben.

Fehlbarkeit der 

Computeralgoritmen 

Computeralgorithmen sind nicht unfehlbar. Immer wieder gibt es Abweichungen von der Regel, bei denen ein Algorithmus versagt. Das liegt normalerweise daran, dass Fälle eintreten können, die bei der Erstellung des Algorithmus nicht berücksichtigt wurden. Deshalb hängt die Zuverlässigkeit eines Programms unter anderem davon ab, ob man beim Entwickeln des Programms mit allen möglichen Eventualitäten gerechnet hat. Deswegen ist es wichtig, dem Programmierer einen möglichst vollständigen Überblick über die Anforderungen und das Umfeld zu geben. Oft kommen die Ideen des Auftraggebers aber erst während der Softwareentwicklung wenn dieser schon mal etwas vorläufiges gesehen hat.

 Programmiersprachen

Die Programmiersprachen sind im Wesentlichen in Lisp-ähnliche und Pascal-ähnliche einzuteilen. Wenn man unterschiedliche Programmiersprachen miteinander vergleicht, kann man zum Einen an der Existenzberechtigung einiger Sprachen zweifeln, wenn es bessere gibt. Zum Anderen würde man gute Programmiersprachen gerne um die guten Eigenschaften anderer Programmiersprachen ergänzen. So ist die Programmiersprache Fortran immer wieder weiterentwickelt worden und hält ganz gut mit C++ mit. Überlegen ist Fortran allen anderen Programmiersprachen in punko Ausführungsgeschwindigkeit. Selbst zur Programmiersprache C ist die Speicherplatznutzung besser durchdacht. Unabhängig davon ist das moderne Fortran 95 vektorfähig, d.h. es können mehrere Prozessoren beauftragt werden an derselben Aufgabe parallel zu arbeiten. Leider ist die Fortran-Syntax normalerweise umständlicher als die C-Syntax. Eine Ausnahme bildet die Definition dynamischer Felder und Matrizen. Die ist in Fortran deutlich einfacher. Auch bestimmt eine klare Begriffssprache die Definitionen der Programmiersprache C in Lehrbüchern. Wenn man Fortran lernt, nachdem man C gelernt hat, ärgert man sich über die Wischi-waschi-Begriffe mit denen Fortran erklärt wird.

Vor und Nachteile der C++-Entwicklung

Als die Programmiersprache C geboren war, hatte sie eine schönere Syntax als Pascal und wurde beliebter als Basic. C glänzte durch seine Maschinennähe und die damit verbundenen schnelle Ausführungsgeschwindigkeit. Dann wurde Objektorientierung modern und C mutierte zu C++. Als Microsoft nach einigem Zögern auf C++ umstieg, indem sie die Microsoft Foundation Classes (MFC) entwickelte, entstand wenigstens der Vorteil, dass Microsoft seine 2000 Windows-Funktionen in Klassen sortierte und somit einen Funken Übersichtlichkeit vermittelte. Auch die Vererbungslehre der Objektorientierung war eine merkwürdige Doktrie nach dem Motto: „Wie mache ich eine Kuh fliegend?“ Antwort: „Die Kuh soll einen Vogel beerben und schon fliegt sie.“ Ein Hauptproblem bei der Objektorientierung ist der Umstand das Funktionen immer nur einem Objekt zugeordnet sind, auf dessen Daten die Funktion operieren soll. Der Normalfall ist jedoch, dass die Funktionen auf den Daten mehrerer Objekte zu operieren haben. Wenn man die friend-Klausel vermeiden möchte, bekommt man eine nicht mehr entflechtbare Funktionenverstrickung sich gegenseitig aufrufender Funktionen aus unterschiedlichen Klassen. Die Trennung von den privaten Daten einer Klasse vom übrigen Quellkode ist für die Objektorientierung eine gültige Theorie. Jedoch gilt sie nur für den Programmierer und nicht für den Compiler. An dieser Stelle sah sich Mikrosoft gezwungen nachzubessern und erfand die COM-Schnittstelle. Ein passendes Schlüsselwort in der Programmiersprache C++ hätte es auch getan. Jedoch fand sich leider nicht die nötige Zusammenarbeit der Entwickler ein. Über die Jahre betrachtet hat man den Eindruck, das am Anfang der Entwicklung Genialität, wahrzunehmen als gradliniges Denken, noch am häufigsten erkennbar war. Spätere Entwickler konnten nicht mehr vernünftig geradeausdenken und haben C++ nur unnötig verkompliziert, so als wollten die Entwickler das C++ einer arroganten Elite vorbehalten, der sie selbst angehören würden.