nitrO is the work designed as the PhD thesis of Francisco Ortin. It is based on a reflective abstract machine that provides runtime structural reflection. Over this layer, a non-restrictive reflective system provides behavioral reflection. Using behavioral reflection, a dynamically adaptable persistence system has been developed (PhD thesis of Benjamin Lopez).
The nitrO virtual machine is a reflective abstract machine implementation that uses reflection in order to build an extensible and adaptable computational system, capable of being deployed over heterogeneous environments. Programming on its own language, its computational abstraction level can be increased. As an example, different garbage collectors, persistence systems, object distribution and thread synchronization have been developed by using its own programming language: no modification on its initial implementation has been performed. This project finished in 2002.
The nitrO non-restrictive reflective system offers a dynamic behavioral and linguistic reflection. This means that any programming language feature can be changed at runtime. Different examples are the modification of the message passing mechanism, inheritance or how objects are created. The main contribution of this system is that there are no previous limitations of what can be reflectively customized. The level of adaptability is much higher than the one offered by Meta-Object Protocols. MOPs. This project finished in 2002.
The implicit reflective persistence system is a practical use of the nitrO non-restrictive reflective system. This project demonstrates how computational reflection can be employed as a suitable technique to overcome runtime adaptability and language independence. Over our reflective system, implicit and dynamically adaptable persistence was achieved, so that the user does not need to take special action to make objects persist. At runtime, persistence characteristics of applications can be modified without any restriction in a programmatically way, regardless of the programming language used. This project finished in 2005.