Imperative Programmierung - LinkFang.de





Imperative Programmierung


Imperative Programmierung (lat. imperare ‚anordnen‘, ‚befehlen‘) ist ein Programmierparadigma, nach dem „ein Programm aus einer Folge von Anweisungen besteht, die vorgeben, in welcher Reihenfolge was vom Computer getan werden soll“.[1]

Die imperative Programmierung ist das am längsten bekannte Programmierparadigma. Diese Vorgehensweise war, bedingt durch den Sprachumfang früherer Programmiersprachen, ehemals die klassische Art des Programmierens. Sie liegt dem Entwurf von vielen Programmiersprachen, zum Beispiel ALGOL, Fortran, Pascal, Ada, PL/I, Cobol, C und allen Assemblersprachen zugrunde.[1]

Abweichende Bezeichnungen: In der Literatur wird dieses Entwicklungskonzept zum Teil auch „imperativ/prozedural“, „algorithmisch“[2] oder auch „zustandsorientiert“[3] genannt. Auch die Bezeichnung „prozedurale Programmierung(siehe dort) wird zum Teil synonym verwendet, was jedoch abweichend auch mit „Verwendung von Prozeduren“ definiert wird.

Details

Bestimmende Merkmale für diese Art des Programmierens sind:[4][5]

  • Im Quellcode wird festgelegt, was in welcher Reihenfolge und wie zu tun ist: „First do this and next do that“[4] Schrittweises ‚Fortschreiten‘ der Befehle; „viewed as sequence of things to be done“[5] (dargestellt als Folge von Anweisungen).
  • Zur Steuerung der Befehlsausführung verwendet der Entwickler Kontrollstrukturen (z. B. Sequenz, Schleife, Verzweigung).

Das dem imperativen Paradigma zugrunde liegende abstrakte Ausführungsmodell ist eng angelehnt an die Ausführung von Maschinencode auf Computern, die nach der Von-Neumann-Architektur implementiert sind. Es existieren beispielsweise bedingte und unbedingte Sprunganweisungen. Der Status des Rechners bzw. des Programms ergibt sich aus dem Inhalt von Datenfeldern im Arbeitsspeicher und dem Zustand von Systemvariablen (z. B. Register, Befehlszähler …).

Abgrenzung

Als Gegenentwurf zur imperativen Programmierung gilt das Paradigma Deklarative Programmierung. Darin wird vom Entwickler im Quellcode definiert, WAS das Programm erarbeiten/berechnen soll, aber nicht WIE.

„Die meisten […] Programmiersprachen, darunter auch OOP-Sprachen wie C#, Visual Basic, C++ und Java, unterstützen in erster Linie [auch] die imperative […] Programmierung“.[2] Das Prinzip der Datenkapselung (information hiding) wird in imperativen Sprachen oft dadurch umgesetzt, dass Prozeduren, die eine logische Einheit bilden, in Modulen oder Paketen zusammengefasst werden.

Nicht maßgeblich für die Einstufung als ‚imperativ‘ ist die Tatsache, dass bei der physischen Ausführung von Computerprogrammen (im Prozessor) die einzelnen Befehle des Maschinencodes „Befehl für Befehl“ ausgeführt werden; denn dies ist unabhängig vom praktizierten Paradigma immer so. Vielmehr setzt ‚imperativ‘ voraus, dass „ein Entwickler Code erstellt, der detailliert die Schritte beschreibt, die der Computer zur Erfüllung der Aufgabe ausführen muss“.[2] Deklarativ erstellte Anweisungen etwa werden von übergeordneten oder eingebundenen Systemkomponenten – und nur ‚basierend‘ auf dem Quellcode – in ausführbare Maschinenbefehle umgeformt; Beispiel ‚SQL-Kommandos‘: Komponenten der Systemsoftware des DBMS interpretieren sie, erzeugen daraus Maschinencode und lassen diesen ausführen.

Beispiel

Ausgabe der Quadrate ungerader Zahlen von 3 bis 11.

Imperativ, Codeversion in C:

for (int i = 3; i < 12; i += 2) {
    printf("%d\n", i * i);
}

Deklarativ, Code in Haskell:

mapM_ print [ i^2 | i <- [3,5..11] ]

Geschichte

Die 1957 entwickelte Programmiersprache Fortran implementiert wie die zuvor verwendeten Assemblersprachen das imperative Paradigma. LISP, 1958 erschienen, ist ein Beispiel für eine deklarative Sprache, bei der der Computer selbst einen Handlungsablauf zur Berechnung konstruieren muss.

Literatur

  • Terrence W. Pratt, Marvin V. Zelkowitz: Programming Languages: Design and Implementation. 4. Auflage. Prentice Hall, 2000, ISBN 978-0-13-027678-0.
  • Robert W. Sebesta: Concepts of Programming Languages. 9. Auflage. Addison Wesley, 2009, ISBN 978-0-13-607347-5.

Einzelnachweise

  1. 1,0 1,1 Böhm, Jungkunz: Grundkurs IT-Berufe. Vieweg-Verlag, books.google.de
  2. 2,0 2,1 2,2 Microsoft Library MSDN
  3. Goos: Vorlesungen über Informatik. books.google.co.uk
  4. 4,0 4,1 Java and Object-Oriented Programming Paradigm. books.google.com
  5. 5,0 5,1 Programming Paradigms and Methodology. books.google.com

Kategorien: Programmierparadigma | Programmiersprache als Thema

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Imperative Programmierung (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.