Reification (computer science): Difference between revisions
change 'sometimes' to 'been' |
No edit summary |
||
Line 1: | Line 1: | ||
'''Reification''' |
'''Reification''' is the act of making an abstract concept or low-level implementation detail of a programming language acce\ |
||
ssible to the programmer. |
|||
For example, |
|||
⚫ | |||
* the language C reifies the low-level detail of memory addresses, and |
|||
* the language Scheme reifies continuations (the call stack). |
|||
Programs written in either C or Scheme make use of both memory addresses and continuations. However, Scheme does not reify memory addresses and C does not reify continuations (unless one counts accessing the stack by pointer arithmetic as is done when smashing the stack). |
|||
⚫ | In the context of [[object-oriented programming]], reification describes the act of making a [[data model]] for a previously abstract concept. Reification allows a computer to process an abstraction as if it were any other data. Reification is a useful technique in [[object-oriented]] languages, as encapsulating an abstract behaviour in an object makes it easier to isolate that behaviour to do [[unit test]]s. |
||
The term has also been used by some in the context of [[formal methods]] to mean [[refinement]]. |
The term has also been used by some in the context of [[formal methods]] to mean [[refinement]]. |
Revision as of 02:39, 18 January 2007
Reification is the act of making an abstract concept or low-level implementation detail of a programming language acce\ ssible to the programmer.
For example,
- the language C reifies the low-level detail of memory addresses, and
- the language Scheme reifies continuations (the call stack).
Programs written in either C or Scheme make use of both memory addresses and continuations. However, Scheme does not reify memory addresses and C does not reify continuations (unless one counts accessing the stack by pointer arithmetic as is done when smashing the stack).
In the context of object-oriented programming, reification describes the act of making a data model for a previously abstract concept. Reification allows a computer to process an abstraction as if it were any other data. Reification is a useful technique in object-oriented languages, as encapsulating an abstract behaviour in an object makes it easier to isolate that behaviour to do unit tests.
The term has also been used by some in the context of formal methods to mean refinement.