Konzeptorientierte Programmierung

Konzeptorientierte Programmierung ist ein Programmierparadigma, das zur Umwandlung von Konzepten in der Planungsphase eines Programmes in die Darstellungen der Konzepte in Maschinencode dient. Das Paradigma der konzeptorientierten Programmierung wurde 2001 von Christophe de Dinechin mit der Programmiersprache XL eingeführt.

Pseudo-Metriken

Die konzeptorientierte Programmierung macht Gebrauch von sogenannten Pseudo-Metriken, um die Qualität von Quellcode zu bestimmen. Diese Metriken werden als Pseudo-Metriken bezeichnet, weil sie sich sowohl auf den Konzeptteil als auch den Codeteil beziehen, mit der klaren Einsicht, dass der Konzeptbereich nicht streng genug normiert werden kann, um eine echte Metrik darauf anzuwenden. Die Pseudo-Metriken der konzeptionalen Programmierung beinhalten:

Regel der Äquivalenz, Äquivalenzauflösung

Die Regel der Äquivalenz ist erfüllt, wenn das Verhalten des Codes mit dem Originalkonzept übereinstimmt. Diese Äquivalenz kann sich in vielen Fällen auflösen. Integer-Overflows stören die Äquivalenz zwischen dem mathematischen Integerkonzept (-prinzip) und der computerisierten versuchten Annäherung an dieses Konzept.

Viele Arten, die Äquivalenz zu stören, besitzen bestimmte Namen, da diese sehr allgemein sind und oft vorkommen:

Methodik

Um Code zu schreiben, empfiehlt konzeptorientierte Programmierung folgende Schritte:

  1. Festlegen und Definieren der relevanten Konzepte im Konzeptraum.
  2. Festlegen der herkömmlichen Schreibweisen für Konzepte, oder Erfinden neuer, nützlicher Schreibweisen.
  3. Festlegen einer Kombination von Programmierkonstrukten, die es den Konzepten erlauben, gut im Code repräsentiert zu sein - Dieser Schritt schließt das Finden einer Schreibweise so ähnlich wie möglich der im vorigen Schritt festgelegten mit ein.
  4. Code schreiben, der das erwartete Verhalten und die Semantik der wichtigen Aspekte des Originalkonzepts möglichst gut erhält.

Vielen Programmierwerkzeugen fehlt es an Darstellungsfähigkeiten, weshalb konzeptorientiertes Programmieren manchmal das Nutzen eines Präprozessors oder metaprogrammiererischen Techniken erfordert.

Sprachen

XL ist die bisher einzige Programmiersprache, die ausschließlich für konzeptorientiertes Programmieren entworfen wurde, jedoch kann konzeptorientiertes Programmieren in fast jeder Sprache betrieben werden, mit unterschiedlichen Erfolgen. Lisp und Forth (und Derivate) sind Beispiele vorher bestehender Sprachen, die sich gut zum konzeptorientierten Programmieren eignen.

Ähnliche Projekte

Es gibt Projekte, die ähnliche Ideen nutzen, um Code auf einer höheren Abstraktionsebene zu erzeugen. Unter anderem sind das:

Siehe auch