Die bekanntesten Paradigmen der Programmierung sind heutzutage die Funktionale Programmierung, die Objekt-orientierte und die Imperative Programmierung. Funktionale ProgrammierungVon den drei Paradigmen der Programmierung geht die Funktionale Programmierung aus einer konsequenten Anwendung des von Alonzo Church 1941 erfundenen Lambda-Kalküls auf die Programmierung hervor.In diesem Paradigma ist es Funktionen lediglich gestattet Werte zurückzuliefern. Sie dürfen keine Nebeneffekte erzeugen. Dies bedeutet, dass Zuordnungsanweisungen nicht zur Verfügung stehen. Es werden in diesem Paradigma generell keine Anweisungen ausgeführt, sondern vielmehr Ausdrücke ausgewertet. Funktionale Programme sind im Vergleich zu imperativen Programmen sehr robust und leichter von Fehlern zu befreien. Im imperativen Programmierstil geschriebene Programme dagegen erzeugen Nebeneffekte, die eine Komplexität erzeugen, die schwer in den Griff zu bekommen ist. Programmiersprachen, die den funktionalen Programmierstil vorschreiben sind Haskell, ML, SML, Miranda, Concurrent CLEAN und andere. Scheme ist eine Hybrid-Sprache, die zwar die Funktionale Programmierung favorisiert, aber auch offen ist für die Objekt-orientierte Programmierung und für die Imperative Programmierung. Es gibt in Scheme Zuordnungsanweisungen, die allerdings durch ein Ausrufungszeichen als besonders gefährlich gekennzeichnet sind.
Objekt-orientierte ProgrammierungDas populärste der drei Paradigmen der Programmierung ist heutzutage wohl die Objekt-orientierte Programmierung, in der Programmierung reduziert wird auf die Erzeugung von Objekten und das Versenden von Botschaften an die Objekte. Objekte sind hierbei Verkapselungen von Daten und Prozeduren.Die Daten werden als Attribute der Objekte bezeichnet und die Prozeduren als Methoden. In den meisten Fällen werden Objekte derselben Art einer Klasse von Objekten zugeordnet. Klassen können hierarchisch strukturiert sein, d.h. aus Ober und Unterklassen bestehen. Die Unterklassen erben automatisch alle Attribute und Methoden der Oberklassen. Eine rein objekt-orientierte Sprache ist Smalltalk. Java kommt einer rein objekt-orientierten Sprache sehr nahe. Auf einer unteren Ebene (innerhalb der Methoden) ist es jedoch in Java erlaubt und üblich dem imperativen Programmierstil gemäß zu programmieren. Python ist eine andere Sprache, die dem objekt-orientierten Paradigma sehr nahe steht. C++ ist jedoch eine echte Hybrid-Sprache, die zwar den objekt-orientierten Programmierstil favorisiert, aber dem Programmierer alle Freiheiten läßt. Imperative ProgrammierungDie Imperative Programmierung ist die älteste Art der Programmierung. Dieser Programmierstil orientiert sich stark an dem Computer, der als Maschine mit Anweisungen gefüttert werden muss. Der Computer wird durch Anweisungen gesteuert, die in einer der Komponenten der Zentraleinheit ausgeführt werden.Befehle oder Anweisungen ausführen ist der Gedanke, der hinter dem Begriff der imperativen Programmierung steht. Die ersten höheren Programmiersprachen wie BASIC, FORTRAN und COBOL sind genau nach dieser Denkungsart entworfen. Die Strukturierte Programmierung, in der GOTO-Anweisungen vermieden werden, folgt dennoch dem imperativen Programmierstil. Eine Sprache, die zu dieser Kategorie gehört, ist Pascal, die Programmiersprache, die lange Zeit an Höhreren Schulen und Hochschulen dominierte. Während BASIC, FORTRAN, COBOL und Pascal heute nicht mehr als populär bezeichnet werden können, ist es die Progrogrammiersprache C immernoch. C favorisiert den imperativen Programmierstil aber da C eine maschinennahe Sprache ist, kann sie auch benutzt werden, um die anderen Paradigmen zu implementieren. ARS und die ParadigmenDas Buch Programmierung pur zeigt, dass alle drei oben beschriebenen Paradigmen der Programmierung aus den mächtigen Prinzipen Abstraktion Referenz Synthese abgeleitet werden können.Während der Lambda-Kalkül eine solide Grundlage für das Paradigma der Funktionalen Programmierung darstellt, ist ARS, das man als Verallgemeinerung des Lambda-Kalküls betrachten kann, geeignet als Grundlage für alle drei Paradigmen zu dienen. Siehe auch:Grundlagen der Programmierung. |