1 In diesem Abschnitt wollen wir uns mit den unterschiedlichen Paradigmen (Prinzipien) von Programmiersprachen beschäftigen. 2 Diese Abbildung zeigt einen groben Überblick über die wichtigsten Programmiersprachen. Die Einteilung in die einzelnen Arten basiert dabei auf der Frage, welches Prinzip / Paradigma wurde bei der Definition der Sprache zu Grunde gelegt. Hierbei unterscheidet man grundsätzlich zwei verschiedene Ansätze, • Deskriptiv oder auch deklarative Sprachen • Imperative Sprachen Wie diese Paradigmen aussehen, sehen wir uns in der nächsten Abbildung genauer an. 3 Bei den deskriptiven bzw. deklarativen ist SQL die bekannteste Sprache und kommt bei Verwendung von relationalen Datenbanken zum Einsatz. Ein besondere Art von deklarativer Programmierung sind die funktionalen Sprachen. Hier ist die Sprache Erlang zu nennen. Ein weiterer Vertreter dieser Art ist die Sprache Scala. Bei den imperativen Sprachen unterscheidet man in • prozedurale Sprachen und in • objektorientierte Sprachen. Was nun genau der Unterschied zwischen funktional, prozedural und objektorientiert ist, schauen wir uns in den nächsten Abbildungen genauer an. Als Vertreter der prozeduralen Sprachen findet man die bekannten Sprachen wie • C • Cobol 4 • Pascal und noch viele mehr. Als objektorientierte Sprachen sind zu nennen: • Java • C++ • C# 4 Bei den deskriptiven-Sprachen verwendet man nur Sprachelemente, mit denen man beschreiben kann, wie die Ergebnismenge aussieht. Bestes Beispiel ist die Programmiersprache SQL, um Anfragen an RelationaleDatenbanken zu stellen. In der Literatur wird manchmal auch der Begriff „Deklarative Sprachen“ verwendet. Siehe auch: • Deklarative Programmierung- https://www.informatikaktuell.de/entwicklung/methoden/deklarative-programmierung-ist-deklarativwirklich-instruktiv.html 5 Funktionale Sprachen sind vollständig auf mathematischen Funktionen aufgebaut. Die Programme bestehen ausschließlich aus: • Funktionsdefinition • Funktionsaufrufen • Anwenden von Ergebnissen auf Funktionen In der Abbildung ist ein Beispiel der Programmiersprache Erlang dargestellt. Wie man sehen kann, sind dort zwei Funktionen zu sehen. Die erste Funktion hat als Parameter den Wert 0 . Die zweite Funktion hat den gleichen Namen und hat als Parameter den Wert N Je nach dem , mit welchem Wert die Funktion fac() aufgerufen wird, wird entweder fac(0) aufgerufen – wenn der Wert 0 ist-. Oder die zweite Funktion fac(N). 6 Quelle: * http://www.erlang.org/docs 6 Bei den imperativen Programmiersprachen gibt es Sprachelemente, die es erlauben, den Ablauf eines Programmes genau zu definieren. Man beschreibt also genau WIE etwas getan werden soll. Programmiersprachen wie C. COBOL etc. sind daher imperative Sprachen. Bei den imperativen Sprachen gibt es Elemente zur Definition von: • Variablen • Datentypen • Verzweigungen • Wiederholungen ( Schleifen) Dies gilt auch für Java, C++ und C#. Da diese jedoch auch das Paradigma der Objektorientierung umsetzen, werden diese auch als objektorientierte Sprachen bezeichnet. Objektorientierte Sprachen werden wir uns später noch genauer ansehen. 7 Prozedurale Sprachen basieren auf dem gleichen Paradigma wie alle imperativen Sprachen und bieten die Elemente • Variablen • Datentypen • Verzweigungen (IF, Switch) • Wiederholungen (Schleifen) Zusätzlich gib es auch die Möglichkeit Funktionen und Prozeduren zu erstellen. Die Bedeutung der Elemente schauen wie uns genauer an, wenn wir uns näher mit der Programmiersprache C beschäftigen. 8 In der Abbildung sehen Sie den Aufbau eines C-Programmes. 9 Objektorientierte Sprachen erweitern das Prinzip der imperativen Sprache um das Paradigma der Objektorientiertheit. In der Abbildung ist auf der linken Seite ein Beispiel eines prozeduralen Programmes zu sehen. Dort gibt es nur die bereits genannten Elemente. Bei dem objektorientieren Paradigma gibt es die Möglichkeit einzelne Methoden zusammenzufassen bzw. zu kapseln. Bei der Kapselung spricht man von Klassen bzw. von Objekten. Wie auf der rechten Seite der Abbildung zu sehen ist, besteht ein objektorientiertes Programm aus einer Menge von Objekten, die miteinander kommunizieren. Man sagt auch: Die Objekte können Nachrichten austauschen. Der Nachrichtenaustausch ist dabei nicht anderes als das Aufrufen von Methoden. Welche zusätzlichen Konzepte bei objektorientierten Sprachen zum Einsatz kommen, sehen wir uns näher an, wenn wir uns mit der Sprache Java beschäftigen. 10 Hier sehen Sie den Aufbau eines Java Programms. 11 12 13