Lucid, a nonprocedural language with iteration
Communications of the ACM
A New Approach to Version Control
IEEE Transactions on Software Engineering
How should context-escaping closures proceed?
International Workshop on Context-Oriented Programming
A comparison of context-oriented programming languages
International Workshop on Context-Oriented Programming
Cartesian Programming: The TransLucid Programming Language
COMPSAC '09 Proceedings of the 2009 33rd Annual IEEE International Computer Software and Applications Conference - Volume 02
Hi-index | 0.00 |
We present a new approach for context-oriented programming in which the context is represented by a set of (dimension, value) pairs. This tuple parameterizes the environment, and it can be referred to either as a single entity or as a composed entity, parts of which can independently be accessed. The context is also an index into any programmable entity, in our model the hyperdatons, which are in turn, arbitrary-dimensional arrays of arbitrary extent. The context may have privileged dimensions and one such dimension is time, which has as well a physical interpretation. The importance of this dimension relies on the fact that its proper handling will allow the control of software evolution, of systems, and of system instances or views; partial changes or updates to specific parts of a system; and synchronous communications between heterogenous components or even systems. In fact, it is our tool to create synchronous Cartesian systems, essential for context-aware distributed systems. The implementation of a Cartesian distributed system may rely on the behavior of several subsystems, all running on an internal clock necessarily infinitely faster than the external one, since a bunch of tasks in a subsystem, corresponds to one tick of the system. These subsystems all run with respect to a shared context called an æther, which facilitates communication by broadcasting between systems at possibly different levels. The æther in this case is an active context.