1.3. Programmiersprachen

Zur Formulierung und zum Notieren des Programms benutzt man Programmiersprachen. Im Unterschied zu den natürlichen Sprachen (Deutsch, Englisch...) werden Programmiersprachen künstlich entworfen. Der Aufbau einer Programmiersprache unterliegt strengen Regeln.

Programmiersprachen können wir genau dann einsetzen, wenn das Problem sich in eine Folge von Grundoperationen auflösen läßt, die wiederum durch Befehle beschrieben werden können. Mit Hilfe der Programmiersprache werden im Computer die Verarbeitungsvorgänge und die Verarbeitungsdaten beschrieben.

Verarbeitungsvorgänge sind unter anderem:

Zu den Verarbeitungsdaten gehören:

Seit der Anwendung von Computern gibt es eine Vielzahl von Programmiersprachen. Sie können in ihrer Leistungsfähigkeit, Erlernbarkeit und in ihrem Umfang sehr unterschiedlich sein.

1.3.1. Die erste Generation: Maschinensprachen

Der Computer kann im Prinzip nur Zahlen in Befehle umsetzen. Am Anfang wurden diese Zahlen direkt programmiert und dann von den CPUs umgesetzt. Jeder Befehl ist ein Zahlencode oder eine Folge von Zahlencodes. Beispiel: der Maschinenbefehl 10 bedeutet für einen bestimmten Computer Addition. Diese Zahlencodes sind nicht auf andere Maschinen übertragbar, weil sie für jede Generation neu entwickelt werden.

Programmieraufträge für betriebliche Prozesse werden nicht in Maschinensprache programmiert, sondern fast immer in einer der so genannten Hochsprachen (Generation 3/4/5). Trotzdem wird das Programm in einer Form geliefert, die für unseren Computer verständlich ist. Die Übersetzung aus der Hochsprache in die Maschinensprache übernimmt auf dem Rechner des Entwicklers ein spezielles Programm (Compiler). In Programmiersprachen der höheren Generationen kann zum Teil auch noch in der Maschinensprache programmiert werden, wenn es zur Beschleunigung von Vorgängen notwendig ist.

1.3.2. Die zweite Generation: Assembler

Jede Prozessorgeneration besitzt ihre eigene, angepasste Assemblersprache. Der Assemblercode wird mit einem speziellen Programm in Maschinensprache übersetzt (dieses Programm nennt man ebenfalls Assembler). Der Assembler und die Maschinensprache stellen prinzipiell eine äquivalente Beziehung zueinander dar, wobei der Assembler aber besser lesbar ist. Man kann sagen, dass es für einen Code in der Maschinensprache auch einen Assemblerbefehl gibt (wobei Assemblerbefehle aber zu Assembler-Makros zusammengefasst werden können).

Programmieraufgaben für betriebliche Prozesse werden nur in ganz seltenen Ausnahmen in Assembler vergeben, normalerweise in Hochsprachen. Diese Ausnahmen treten dann ein, wenn gezielt eine bestimmmte Hardware angesteuert wird oder wenn ein Vorgang im Computer sehr stark beschleunigt werden soll. Die Programmierung in Assembler ist im allgemeinen teurer und dauert auch länger als die Programmierung in einer Hochsprache.

1.3.3. Die dritte Generation: Problemorientierte Sprachen

Diese Generation umfasst nach wie vor die wichtigste und am meisten angewendete Art von Programmiersprachen. Problemorientierte Sprachen kommen den menschlichen Sprachen schon wesentlich näher als Assembler oder Maschinencode. Sie unterstützen unmittelbar die Anwendung von Algorithmen. Die Sprachen der 3. Generation wurden bzw. werden für ein bestimmtes Anwendungsgebiet (unterschiedlicher Ausdehnung) entwickelt. Beispiele:

Es gibt in dieser Generation zwei vielseitige, für mehrere dieser Problemfelder einsetzbare Sprachen, nämlich C und Pascal (Pascal wurde weiterentwickelt unter dem Namen Modula). Vom Volumen her nimmt die wichtigste Rolle innerhalb der problemorientierten Sprachen C ein, auch als ANSI-C bekannt.

Betriebliche Prozesse werden zum Teil in Sprachen der 3. Generation umgesetzt. Die Entscheidung für eine bestimmte Programmiersprache ist zuerst abhängig vom Problem, dann unter anderem von der Ausstattung des Betriebs mit EDV-Technik, vom Betriebssystem und natürlich auch von den Kosten. Dazu sollten Sie sich von verschiedenen Seiten Vorschläge machen lassen.

1.3.4. Die vierte Generation: Datenorientierte Sprachen

Mit dem Wachsen von Datenbeständen im Computer entstand die Notwendigkeit, Sprachen speziell dafür zu entwickeln. Solche Sprachen sind z.B. ABAP/4 im SAP-System, die Sprache NATURAL, und die Sprache SQL (structured query language) allgemein in Datenbanksystemen. Diese Sprachen wurden speziell dafür entwickelt, Abfragen und andere Datenbankvorgänge zu optimieren.

Prozesse in den Betrieben werden kaum direkt in Datenbanksprachen modelliert, sondern man benutzt heute fast immer Sprachen der dritten oder fünften Generation, um die datenorientierten Sprachen damit gezielt einzusetzen. Mit Hilfe dieser Sprachen kann man sehr einfach intuitive Oberflächen programmieren. Ein sehr gutes Beispiel dafür ist die Verbindung von C++, Delphi oder Visual Basic mit einer Datenbanksprache, z.B. mit SQL. Ein anderes Beispiel ist die Nutzung von Office-Frontends mit dem SAP-System.

1.3.5. Die fünfte Generation: Objektorientierte Sprachen

Sprachen der 5. Generation gestatten das Beschreiben von Sachverhalten und Objekten. Objekte sind logische Einheiten, die man programmieren und steuern kann. Der Zugriff auf alle Daten, auf jede Funktion und jeden Prozeß erfolgt nur über das Objekt. Wenn man sich für bestimmte Problemstellungen und Sachverhalte Objektmodelle schaffen kann, dann wird die Entwicklung von Programmen dadurch erleichtert. Denn diese Objekte erleichtern die Beschrei-bung von Prozessen.

Beispiele für Sprachen der fünften Generation: C++ und Java, VBA, Visual Basic und Smalltalk. Es gibt einige objektorientierte Weiterentwicklungen, bei denen sich der Sprachname änderte, wie z.B. von Pascal zu Delphi. Weitere Sprachen, für die objektorientierte Erweiterungen entwickelt wurden, sind LISP und PROLOG. Weniger bekannt sind die Sprachen Eiffel und Oberon.

Wobei helfen Ihnen nun die Sprachen dieser Generation ? Betriebliche Prozesse können in diesen Sprachen in Auftrag gegeben werden. Die objektorientierten Sprachen können aber erstmals auch von den Mitarbeitern selbst auf dem Rechner umgesetzt werden. Das bekannteste Beispiel dazu ist VBA (Visual Basic for Applications) aus der Office-Umgebung (siehe nächster Abschnitt).

Auch bei der Entscheidung für oder gegen eine objektorientierte Sprache sind Sie wieder abhängig von der Ausstattung des Betriebs mit EDV-Technik, vom Betriebssystem und von den Kosten. Sie haben aber bessere Möglichkeiten, die Lösungen zu durchschauen und mitzugestalten.