Context-Oriented Image Processing: Reconciling genericity and performance through contexts

Genericity aims at providing a very high level of abstraction in order, for instance, to separate the general shape of an algorithm from specific implementation details. Reaching a high level of genericity through regular object-oriented techniques has two major drawbacks, however: code cluttering (e.g. class / method proliferation) and performance degradation (e.g. dynamic dispatch). In this paper, we explore a potential use for the Context-Oriented programming paradigm in order to maintain a high level of genericity in an experimental image processing library, without sacrificing either the performance or the original object-oriented design of the application.

[1]  Bruno C. d. S. Oliveira,et al.  The Different Aspects of Monads and Mixins , 2009 .

[2]  Aaron Mark Ucko Predicate dispatching in the Common Lisp Object , 2001 .

[3]  Gregor Kiczales,et al.  Aspect-oriented programming , 2001, ESEC/FSE-9.

[4]  S. E. Keene,et al.  A programmer's guide to object-oriented programming in Common LISP , 1988 .

[5]  Theo D'Hondt,et al.  Filtered dispatch , 2008, DLS '08.

[6]  Andry Rakotonirainy,et al.  Context-oriented programming , 2003, MobiDe '03.

[7]  Andreas Paepcke,et al.  User-level language crafting: introducing the CLOS metaobject protocol , 1993 .

[8]  Gregor Kiczales,et al.  RG: A Case-Study for Aspect-Oriented Programming , 1997 .

[9]  Didier Verna,et al.  Beating C in Scientific Computing Applications On the Behavior and Performance of LISP, Part 1 , 2006 .

[10]  John R. Gilbert,et al.  Aspect-Oriented Programming of Sparse Matrix Code , 1997, ISCOPE.

[11]  Guy L. Steele,et al.  Common LISP: the language, 2nd Edition , 1990 .

[12]  Guy L. Steele,et al.  Common Lisp the Language , 1984 .

[13]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[14]  Robert Hirschfeld,et al.  Language constructs for context-oriented programming: an overview of ContextL , 2005, DLS '05.

[15]  Aaron Mark Ucko Predicate Dispatching in the Common Lisp Object System , 2001 .

[16]  Yannis Smaragdakis,et al.  Mixin layers: an object-oriented implementation technique for refinements and collaboration-based designs , 2002, TSEM.

[17]  Jr. Guy L. Steele,et al.  Common LISP: the language (2nd ed.) , 1990 .

[18]  Laurent Najman,et al.  Why and howto design a generic and efficient image processing framework: The case of the Milena library , 2010, 2010 IEEE International Conference on Image Processing.

[19]  Sonya E. Keene,et al.  Object-oriented programming in COMMON LISP - a programmer's guide to CLOS , 1989 .

[20]  Christian Hofer,et al.  On the relation of aspects and monads , 2007, FOAL.

[21]  Matti Pietikäinen,et al.  Adaptive document image binarization , 2000, Pattern Recognit..

[22]  Daniel G. Bobrow,et al.  CLOS: integrating object-oriented and functional programming , 1991, CACM.

[23]  Pierre Soille,et al.  Morphological Image Analysis: Principles and Applications , 2003 .

[24]  Wolfgang De Meuter,et al.  Efficient Layer Activation for Switching Context-Dependent Behavior , 2006, JMLC.