You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

2.1 KiB

Programmierparadigmen

Ein Programmierparadigma ist ein fundamentaler Programmierstil. Grundlegend für den Entwurf von Programmiersprachen sind die Paradigmen der imperativen und der deklarativen Programmierung. Beim letzteren sind als wichtige Ausprägungen die Paradigmen der funktionalen Programmierung und der logischen Programmierung zu nennen.

  • Strukturierte Programmierung

Strukturierte Programmiersprachen entstanden in den 1970er Jahren, als Softwareprogramme immer komplexer wurden und die Kosten für Software die von Hardware überstiegen - die sogenannte Softwarekrise. Sie erlauben es, ein Programm in Unterprogramme zu zerteilen und besitzen die Kontrollstrukturen Sequenz, Verzweigung und Wiederholung.

  • Imperative Programmierung

Imperative Programmierung legt fest, dass Programme aus einer Folge von Anweisungen bestehen. Die Anweisungen, die dafür zur Verfügung stehen, sind wie gewohnt Sequenz, Verzweigung und Wiederholung, aber auch Sprünge und Subroutinen.

Bei der imperativen Programmierung handelt sich um das älteste Programmierparadigma. Die beliebtesten modernen Programmiersprachen, wie Java, C++, C# oder Visual Basic, unterstützen dementsprechend die imperative oder prozedurale Programmierung.

  • Deklarative Programmierung

Bei deklarativer Programmierung beschreibt der Entwickler, welche Anforderungen die Ausgabe oder das Ergebnis eines Programms erfüllen muss. Der Erzeugung der Ergebnisse selbst wird nicht durch die Anweisungen festgelegt, sondern durch den Interpreter anhand dieser Anforderungen entschieden. Ein Beispiel für deklarative Programmiersprachen sind Haskell, Lisp, Prolog und die Datenbanksprache SQL.

  • Objektorientierte Programmierung

Objektorientierte Programmierung (OOP) kapselt Daten und Befehle anhand von Objekten, um die Komplexität der Software zu verringern. Die drei grundlegenden Paradigmen der OOP sind Polymorphismus (ein Bezeichner kann je nach Kontext unterschiedliche Datentypen haben), Datenkapselung (das Verbergen von Implementierungsdetails und das Bereitstellen einer einheitlichen Schnittstelle) und Vererbung (Ableitung von Klassen, die Methoden und Attribute einer Basisklasse übernehmen