Abstract. In software architecture, components represent the computational units of a system and connectors represent the interactions among those units. Making decisions about the...
One of the most difficult tasks in software development is that features are implemented by changing the code of other features. This problem cannot be solved with existing general...
Understanding the structure of large existing (and evolving) software systems is a major challenge for software engineers. In reverse engineering, we aim to compute, for a given s...
Software developers often do not build software from scratch but reuse software libraries. In theory, the APIs of a library should be stable, but in practice they do change and th...
Knit is a new component definition and linking language for systems code. Knit helps make C code more understandable and reusable by third parties, helps eliminate much of the per...
Alastair Reid, Matthew Flatt, Leigh Stoller, Jay L...