Aspect Weaving as Component Knitting: Separating Concerns with Knit

Eric Eide, Alastair Reid, Matthew Flatt, and Jay Lepreau

University of Utah, School of Computing
50 South Central Campus Drive, Room 3190
Salt Lake City, Utah 84112-9205



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.

Appeared in the Workshop on Advanced Separation of Concerns in Software Engineering at ICSE 2001, May 2001. Position paper.

Eric Eide <>
Last modified: Wed Jun 6 13:28:22 MDT 2001