Tech moves fast! Stay ahead of the curve with Techopedia!
Join nearly 200,000 subscribers who receive actionable tech insights from Techopedia.
Reification is the process during which an abstract idea regarding a computer application can be converted into an object or explicit data model. In other words, reification helps in the conversion of an unexpressed, implicit idea into a conceptual or logical one. Reification is one the most widely used processes in knowledge representation and conceptual analysis.
Data reification is similar in some aspects to data refinement, though the reification process is more focused on concretizing the idea than refining it. When it comes to data reification, the refinement is comprised of steps to find more concrete representation of abstract data types, which is done using standard specifications. Data reification helps in lowering the level of abstract data types and the abstraction involved in operation modeling. In conceptual modeling, reifying a relationship makes it possible to view as an entity. The sole purpose of reifying a relationship is to make it as explicit with additional information added to it.
From the context of programming languages, reification is the methods by which a program or any aspect of a programming language which was earlier implicit in the runtime environment is represented in the language itself. This allows all the aspects that were earlier implicit to be available as ordinary data for inspection. Reification has been realized in many programming languages to date, even if in partial form. For example, Java makes use of "reifiable types" that are fully available at runtime. Low-level details of memory addresses are reifiable in C programming. Smalltalk programming language allows reification of messages.