Supporting software composition at the programming language level

  • Authors:
  • Peter H. Fröhlich;Andreas Gal;Michael Franz

  • Affiliations:
  • Department of Computer Science and Engineering, University of California, Riverside, CA;School of Information and Computer Science, University of California, Irvine, CA;School of Information and Computer Science, University of California, Irvine, CA

  • Venue:
  • Science of Computer Programming - Special issue on new software composition concepts
  • Year:
  • 2005

Quantified Score

Hi-index 0.00

Visualization

Abstract

We are in the midst of a paradigm shift toward component-oriented software development, and significant progress has been made in understanding and harnessing this new paradigm. Oddly enough, however, the new paradigm does not currently extend to the level at which components themselves are constructed. While we have composition architectures and languages that describe how systems are put together out of atomic program parts, the parts themselves are still constructed on the basis of a previous paradigm: object-oriented programming. We argue that this mismatch impedes the progress of compositional software design: many of the assumptions that underlie object-oriented languages simply do not apply in the open and dynamic contexts of component software environments. What, then, would a programming language that supported component-oriented programming at the smallest granularity look like? Lagoona, our project to develop such a language, tries to answer this question. This paper motivates the key concepts behind Lagoona and briefly describes their realization (using Lagoona itself as the implementation language) in the context of Microsoft's NET environment.