Aspect Weaving as Component Knitting - Separating Concerns with Knit

Eric Eide, Alastair Reid, Matthew Flatt, Jay Lepreau
University of Utah
[pdf]

Workshop on Advanced Separation of Concerns in Software Engineering
Toronto, Ontario, Canada
May 2001

Abstract

Knit is a new component specification and linking language. It was initially designed for low-level systems software, which requires especially flexible components with especially well-defined interfaces. For example, threads and virtual memory are typically implemented by components within the system, instead of being supplied by some execution environment. Consequently, components used to construct the system must expose interactions with threads and memory. The component composition tool must then check the resulting system for correctness, and weave the components together to achieve reasonable performance.

Component composition with Knit thus acts like aspect weaving: component interfaces determine the ``join points'' for weaving, while components (some of which may be automatically generated) implement aspects. Knit is not limited to the construction of low-level software, and to the degree that a set of components exposes fine-grained relationships, Knit provides the benefits of aspect-oriented programming within its component model.

First page of paper

BibTeX

@inproceedings{EEide01Aspect , abstract = { Knit is a new component specification and linking language. It was initially designed for low-level systems software, which requires especially flexible components with especially well-defined interfaces. For example, threads and virtual memory are typically implemented by components within the system, instead of being supplied by some execution environment. Consequently, components used to construct the system must expose interactions with threads and memory. The component composition tool must then check the resulting system for correctness, and weave the components together to achieve reasonable performance.

Component composition with Knit thus acts like aspect weaving: component interfaces determine the ``join points'' for weaving, while components (some of which may be automatically generated) implement aspects. Knit is not limited to the construction of low-level software, and to the degree that a set of components exposes fine-grained relationships, Knit provides the benefits of aspect-oriented programming within its component model. } , affiliation = {University of Utah} , ar_file = {ASPSE_01} , ar_shortname = {ASPSE 01} , author = {Eric Eide and Alastair Reid and Matthew Flatt and Jay Lepreau} , booktitle = {Workshop on Advanced Separation of Concerns in Software Engineering} , file = {knit-icse01-wasc.pdf} , location = {Toronto, Ontario, Canada} , month = {May} , png = {knit-icse01-wasc.png} , title = {{A}spect {W}eaving as {C}omponent {K}nitting: {S}eparating {C}oncerns with {K}nit} , year = {2001} }