Erweiterbarkeit von Programmiersprachen


[ Gliederung ] [ Einführung ] [ Effizienz ] [ Regelmäßigkeit ] [ Einfachheit ] [ Ausdruckskraft ] [ Erweiterbarkeit ]
[ Einschränkbarkeit ] [ Präzision ] [ Sicherheit ] [ Fazit ] [ Literatur und Internetquellen ]

Erweiterbarkeit


Erweiterbarkeit von Programmiersprachen


Unter Erweiterbarkeit einer Sprache versteht man, dass die Möglichkeit gegeben ist, die Sprache mit eigenen Eigenschaften zu erweitern. Dies können eigene Funktionen sein aber auch die Möglichkeit eigene Typen zu definieren oder neue Operatoren. In funktionale Sprachen wie LISP ist eine Erweiterbarkeit relativ einfache, da dort Spracheigenschaften innerhalb der Sprache selbst definiert werden können. In imperativen Sprachen ist dies nicht ganz so einfach zu realisieren. Als Beispiel dient hier eine Möglichkeit zur Erweiterung der Sprache Ada.

type MATRIX is
array (POSITIVE range <>, POSITIVE range <>) of FLOAT;
function "+" (LEFT,RIGHT: MATRIX) return MATRIX;

Hierdurch besteht nun die Möglichkeit in der Sprache zwei Matrizen miteinander zu addieren. In der ersten Zeile wird der Name des Typs definiert. Die zweite Zeile gibt an, wie der Typ aufgebaut ist (zwei Arrays vom Typ Float) und die dritte Zeile beschreibt wie der bestehende Operator "+" auf den neuen Typ angewendet wird. Somit besteht nun die Möglichkeit folgendes in der Sprache auszudrücken.

A,B,C: MATRIX (1..10, 1..10); 

C := A + B;

Mit dieser Anweisung werden die beiden Matrizen A und B addiert und dann C zugewiesen. Diese Funktionsweise nennt sich überladen und findet sich auch in anderen Programmiersprachen wie z.B. C++. Jedoch beschränkt sich die Erweiterbarkeit nur auf bestehende Operatoren d.h. wenn es zum Beispiel in dieser Programmiersprache keine Addition geben würde, so könnte man keinen Operator erstellen, der eine Addition ausführt.
[ Gliederung ] [ Einführung ] [ Effizienz ] [ Regelmäßigkeit ] [ Einfachheit ] [ Ausdruckskraft ] [ Erweiterbarkeit ]
[ Einschränkbarkeit ] [ Präzision ] [ Sicherheit ] [ Fazit ] [ Literatur und Internetquellen ]