具象化
具象化はインスタンス化の一形態です。概念を具体化するときは、提供した辞書の定義と同じように、抽象的なものを取り入れて具体的にします。
可能な型のいくつかの抽象構文木に生息する用語として型を具体化することを選択するかもしれません。
いくつかの言語での汎用実装を考え出すことで、デザインパターンを具体化することができます。たとえば、
template<typename T> class Singleton {
public:
static T& Instance() {
static T me;
return me;
}
protected:
virtual ~Singleton() {};
Singleton() {};
}
シングルトンデザインパターンをC ++のテンプレートとして具体化します。
Hoareのクイックソートのアイデアを、選択したプログラミング言語の実装に具体化することができます。このように、私は圏論からHaskellコードへの概念の具体化に多くの時間を費やしています。
言語をその言語の通訳として具体化することができます。Larry WallのPerlの考え方は、perlインタープリターとして洗練されています。
データ具体化し、真空パッケージは、それが共有してメモリ内に構成されている方法を表すグラフとして用語を具体化。
反射
具象化の裏側は反射です具象。これは具体的なものを取り、通常は詳細を忘れることによって抽象化を生成します。おそらく、抽象化がより単純であるため、または何らかの形であなたが話していることの本質を捉えているために、これを実行したいと思うでしょう。
Java、C#などの型システムリフレクションは、プログラミング言語の具象クラスを取り、クラスの抽象構造を提供し、クラスが提供するメンバーのリストにアクセスできるようにします。ここでは、型の具体的な概念を採用し、その構造を説明する抽象的な用語を生成し、特定の値を破棄します。
プログラミング言語を実装に具体化する方法のように、逆の方向に進むこともあります。これは一般的に悪い考えと考えられていますが、実装を取り、その動作の望ましいプロパティから言語仕様を反映しようとする場合があります。TeXが最初に実装されました、仕様なしのKnuthによってれました。TeXの仕様はすべて、Knuthの実装から反映されています。
(より正式には、リフレクションを具体的なドメインから抽象的なドメインに移動する忘却関手と見なす場合、具体化は理想的にはリフレクションに隣接したままになります。)
反射私は保守パッケージは、あなたが新しい用語を生成することができます方法を反映して、用語を取り、それを表しタイプを生み出す具体化する方法を提供します。ここで、「具体的な」ドメインは型システムであり、抽象的なドメインは用語です。