Ein grundsätzliches Ziel der Softwaretechnik ist es, einmal geschriebenen Code möglichst oft wiederzuverwenden -- so lassen sich die Kosten und Entwicklungszeit für neue Programme dämpfen und die Entwicklung von gutem, teurerem Code rechtfertigen.
Um dieses Ziel zu erreichen braucht man Unterstützung durch die verwendete Programmiersprache. Ein wesentliches Phänomen ist dabei die Polymorphie, heute besonders bekannt in Form von Vererbung in objekt-orientierten Sprachen: Ein Objekt kann in verschiedenen Kontexten eingesetzt werden, solange es die "Rolle" der jeweils geforderten Vaterklasse erfüllt.
Diese Fähigkeit, ein einmal definiertes Sprachobjekt immer neu zu verwenden und an den Kontext anzupassen, wird nicht nur von diesem, sondern vielen anderen Sprachkonstrukten unterschiedlicher Herkunft realisiert. Im Seminar werden diese Konstrukte untersucht und verglichen; dabei soll anhand von Beispielen die relativen Stärken und Schwächen herausgearbeitet werden.
Beispielsprachen: ML, Haskell, Java, Generic Java, C++, Ada