Lazy Composition of Representations in Java

  • Authors:
  • Rémi Douence;Xavier Lorca;Nicolas Loriant

  • Affiliations:
  • École des Mines de Nantes, INRIA, LINA UMR 6241, Nantes Cedex 3 FR---44307;École des Mines de Nantes, LINA UMR 6241, Nantes Cedex 3 FR---44307;INRIA, LaBRI, Talence Cedex FR-33402

  • Venue:
  • SC '09 Proceedings of the 8th International Conference on Software Composition
  • Year:
  • 2009

Quantified Score

Hi-index 0.00

Visualization

Abstract

The separation of concerns has been a core idiom of software engineering for decades. In general, software can be decomposed properly only according to a single concern, other concerns crosscut the prevailing one. This problem is well known as "the tyranny of the dominant decomposition". Similarly, at the programming level, the choice of a representation drives the implementation of the algorithms. This article explores an alternative approach with no dominant representation. Instead, each algorithm is developed in its "natural" representation and a representation is converted into another one only when it is required. To support this approach, we designed a laziness framework for Java, that performs partial conversions and dynamic optimizations while preserving the execution soundness. Performance evaluations over graph theory examples demonstrates this approach provides a practicable alternative to a naive one.