next up previous contents
Nächste Seite: Höhere Programmiersprachen: Besonderheiten, Übersicht Aufwärts: Allgemeines zu Programmiersprachen Vorherige Seite: Wahl einer Programmiersprache   Inhalt

Sprachniveaus

Für die Codierung von Programmen existiert eine große Zahl von Programmiersprachen, die man nach ihren stark unterschiedlichen Ausdrucksmöglichkeiten entsprechenden Sprachniveaus zuordnet, Abb. 4.1. Zu den sogenannten maschinennahen Sprachen zählen die Assemblersprachen. Sie bilden die Befehlsstruktur der Hardware ab und sind daher an einen bestimmten Rechner oder an eine Rechnerfamilie gebunden. Assemblerprogrammierung setzt Kenntnisse über den Aufbau und die Wirkungsweise des jeweils zugrundeliegenden Prozessors voraus. Dem Programmierer wird nur ein geringer Programmierkomfort geboten. Zwar wird ihm dadurch die Arbeit erleichtert, daß die binär codierten Maschinen-Befehle durch eingängige Abkürzungen (mnemonics) ersetzt werden, der Programmierer muß die Aufgabe jedoch selbst in maschinennahe Befehle zerlegen, was zeitaufwendig und fehleranfällig ist. Dies führt oft zu langen Testzeiten. Die mögliche hohe Effizienz bei der Ausführung von Assemblerprogrammen erreichen tatsächlich nur geübte Programmierer. Da zudem das Problem des Speicherplatzbedarfs weitgehend entschärft ist, und auch höhere Programmiersprachen die Möglichkeit bieten, hardwarenahe Funktionen zu programmieren (z.B. die Sprache C), sollten Anwenderprogramme heute nicht mehr in Assembler geschrieben werden. Eine Ausnahme bilden zeitkritische Abschnitte, die eine so optimal wie irgend möglich programmiert werden müssen. Dann bietet sich auch eine Lösung in Assembler an.

1mm

Abbildung 4.1: Sprachniveaus
\begin{figure}\begin{center}
\linethickness{0.75pt}\begin{picture}(150.00,75.00)...
...3.60}}
\put(80.00,55.00){\line(0,1){3.60}}
\end{picture}\end{center}\end{figure}

Die höheren Programmiersprachen gehören zur Ebene der problemnahen Sprachen. Sie ermöglichen eine problemangepaßte, für den Anwender durchschaubare Darstellung, die der Forderung nach Verständlichkeit und Anwenderfreundlichkeit entgegenkommt. Ihre Befehlswörter sind meist der englischen Sprache entnommen, und Ausdrücke für Berechnungen entsprechen der mathematischen Schreibweise. Die maschinelle Übersetzung der problemnahe formulierten Anweisungen in Maschinenbefehle (sogenannter Objektcode) durch den Compiler entlastet den Programmierer von dieser mühsamen Aufgabe.

Der vom Compiler erzeugte Maschinencode ist in der Regel weniger effizient als ein gutes Assemblerprogramm. Dies liegt an den allgemeingültig gehaltenen Übersetzungsalgorithmen. Aufgrund des stetigen Fortschritts beim ,,Bau`` moderner hochoptimierender Compiler wird sich diese Effizienzlücke jedoch weiter schließen. So existieren bereits leistungsfähige Compilationssysteme insbesondere für Parallel- und Vektorrechner, die zunächst Datenabhängigkeiten sowohl innerhalb von Programmodulen als auch global analysieren. Die Berücksichtigung der Analyse gestattet dann eine Optimierung des Maschinencodes auch über Module hinweg.

Die Verwendung höherer Programmiersprachen hat also folgende Vorteile:


next up previous contents
Nächste Seite: Höhere Programmiersprachen: Besonderheiten, Übersicht Aufwärts: Allgemeines zu Programmiersprachen Vorherige Seite: Wahl einer Programmiersprache   Inhalt
Lars Tornow 2003-03-31