Verdinglichung
Reifikation ist eine Form der Instanziierung. Wenn Sie ein Konzept neu definieren, nehmen Sie etwas Abstraktes und konkretisieren es genau wie die von Ihnen angegebene Wörterbuchdefinition.
Sie können einen Typ als Begriff in einem abstrakten Syntaxbaum möglicher Typen ändern.
Sie können ein Entwurfsmuster ändern, indem Sie eine allgemeine Implementierung für eine bestimmte Sprache erstellen. Zum Beispiel so etwas wie
template<typename T> class Singleton {
public:
static T& Instance() {
static T me;
return me;
}
protected:
virtual ~Singleton() {};
Singleton() {};
}
Überprüft das Singleton-Entwurfsmuster als Vorlage in C ++.
Sie können Hoares Idee von Quicksort in eine Implementierung in der Programmiersprache Ihrer Wahl umwandeln. In diesem Sinne verbringe ich viel Zeit damit, Konzepte aus der Kategorietheorie in Haskell-Code umzuwandeln.
Sie können eine Sprache als Dolmetscher für diese Sprache bestätigen. Larry Walls Vorstellung von Perl, der Sprache, wird als Perl-Interpreter bestätigt.
Die Daten-reify und Vakuumpakete reify Begriffe als Graphen darstellt , wie sie im Speicher mit Sharing strukturiert ist.
Betrachtung
Die Kehrseite der Verdinglichung ist die Reflexion , die etwas Konkretes nimmt und eine Abstraktion erzeugt, normalerweise durch Vergessen einiger Details. Vielleicht möchten Sie dies tun, weil die Abstraktion einfacher ist oder irgendwie die Essenz dessen erfasst, wovon Sie sprechen.
Die Typsystemreflexion in Java, C # usw. verwendet eine konkrete Klasse in einer Programmiersprache und stellt Ihnen die abstrakte Struktur einer Klasse zur Verfügung, sodass Sie auf die Liste der Mitglieder zugreifen können, die Ihre Klassen bereitstellen. Hier nehmen wir den konkreten Begriff eines Typs und generieren daraus einen abstrakten Begriff, der seine Struktur beschreibt, während wir bestimmte Werte verwerfen.
So wie Sie eine Programmiersprache in eine Implementierung umwandeln können, können Sie manchmal in die entgegengesetzte Richtung gehen. Obwohl dies im Allgemeinen als schlechte Idee angesehen wird, können Sie eine Implementierung nehmen und versuchen, eine Sprachspezifikation anhand der gewünschten Eigenschaften ihres Verhaltens widerzuspiegeln. TeX wurde zuerst von Knuth ohne Spezifikation implementiert . Jede Spezifikation von TeX wurde aus der Implementierung von Knuth übernommen.
(Wenn Sie Reflexion formeller als einen vergesslichen Funktor betrachten, der Sie von einer konkreten Domäne zu einer abstrakten Domäne führt, wird die Verdinglichung im Idealfall neben der Reflexion gelassen.)
Das von mir verwaltete Reflection- Paket enthält eine Reify-Methode, die einen Begriff verwendet und einen Typ ergibt, der ihn darstellt, und anschließend eine Reflection-Methode, mit der Sie einen neuen Term generieren können. Hier ist die 'konkrete' Domäne das Typensystem, und die abstrakte Domäne sind Begriffe.