The Safety of Dynamic Mixin Composition. Burton, E. & Sekerinski, E. In Proceedings of the 30th Annual ACM Symposium on Applied Computing, SAC'15, Object Oriented Programming Languages and Systems Track, pages 1992–1999, April, 2015. ACM.
doi  abstract   bibtex   
Dynamic mixins are a modular means of developing features or roles that can be composed with objects at run-time. However, naive use of this construct can cause unexpected behaviour due to interference caused by the presence of an object's previously bound mixins. This work proposes a method for developing mixins that can be bound to base ob- jects such that the mixins do not interfere with each other; the method achieves compositionally through a coupling in- variant and by syntactically restricting mixins. The refine- ment calculus is used for formalization, as it treats imple- mentations and specifications uniformly. The formalization relies on a new notion of mixin refinement.
@inproceedings{BurtonSekerinski15MixinSafety,
	title = {The {Safety} of {Dynamic} {Mixin} {Composition}},
	doi = {10.1145/2695664.2695938},
	abstract = {Dynamic mixins are a modular means of developing features or roles that can be composed with objects at run-time. However, naive use of this construct can cause unexpected behaviour due to interference caused by the presence of an object's previously bound mixins. This work proposes a method for developing mixins that can be bound to base ob- jects such that the mixins do not interfere with each other; the method achieves compositionally through a coupling in- variant and by syntactically restricting mixins. The refine- ment calculus is used for formalization, as it treats imple- mentations and specifications uniformly. The formalization relies on a new notion of mixin refinement.},
	booktitle = {Proceedings of the 30th {Annual} {ACM} {Symposium} on {Applied} {Computing}, {SAC}'15, {Object} {Oriented} {Programming} {Languages} and {Systems} {Track}},
	publisher = {ACM},
	author = {Burton, Eden and Sekerinski, Emil},
	month = apr,
	year = {2015},
	pages = {1992--1999},
}

Downloads: 0