Generizität

Generizität ein Begriff der generischen Programmierung. Es ist die Fähigkeit, Klassen durch einen Typ zu parametrisieren. Verallgemeinert kann der Begriff der Generizität auch auf Funktionen, Prozeduren bzw. Methoden und deren Parameter angewendet werden. Dies bedeutet dann die Anwendbarkeit z.B. eines Sortieralgorithmus auf beliebige Elementtypen eines Feldes. Trotz der Mächtigkeit generischer Konstrukte sind generische Klassen beispielsweise nur in Eiffel, Ada und C++ zugelassen.

Die Vererbung ist das zentrale Konzept der Wiederverwendbarkeit in objektorientierter Software. Ein weiterer wichtiger Mechanismus zur Unterstützung von Wiederverwendbarkeit ist die so genannte Generizität, die jedoch nicht nur in objektorientierten Programmiersprachen realisiert wurde, z.B. auch in Algol 68 und in Ada.

Generizität in objektorientierter Software ist die Möglichkeit, parametrisierte Klassen zu definieren. Solche sogenannten generischen Klassen sind nicht direkt verwendbar, sondern definieren eine Schablone, ein Template, zur Definition verwendbarer Klassen. Im Allgemeinen besitzen sie Typparameter, die auch als formale generische Parameter bezeichnet werden. Instanzen einer generischen Klasse werden durch die Zuweisung von aktuellen Typen (aktuellen generischen Parametern) zu den formalen generischen Parametern erzeugt. Generizität ist deshalb nur in statisch getypten Programmiersprachen sinnvoll, da dynamisch getypte Sprachen keine Typparameter kennen. Obwohl eine generische Klasse für einen allgemeinen Typparameter definiert wird, kann aufgrund der Bindung zwischen dem zur Übersetzung festgelegten aktuellen und formalen generischen Parameter (durch Instanziierung) eine statische Typprüfung durchgeführt werden.

Es gibt objektorientierte Sprachen, die dieses Konzept zur Verfügung stellen, wie z.B. Eiffel und C++.

Informationen zum Artikel
Deutsch: Generizität
Englisch:
Veröffentlicht: 14.11.2009
Wörter: 242
Tags: Sonstige Progr.
Links: Prozedur, Methode, Parameter, Sortieralgorithmus, Eiffel
Übersetzung: EN
Sharing: