Modular-Like Transformations and Style Checking for Crosscutting Programming Concepts

Macneil Shonle · 2007

Programmers resort to design patterns, microarchitectures, and other idioms when their design ideas can't be expressed directly in the programming language. The crosscutting code that appears as a result makes it harder to ensure a correct implementation of the idiom, and complicates software evolution when the idiom's implementation cannot be modularly substituted or extended like a method or class. We propose Concepts, an IDE-based mechanism for declaring, checking, and evolving crosscutting design idioms. Programmers code their design idioms as before, but also declare their fundamental properties in supplemental files. A concept's behavior and implementation are described separately. This separation permits describing a new implementation for a concept and then having the concept tool mechanically transform the concept's current implementation into the new one. As a result we aim to get many of the same benefits for concepts that we get for classes: checking of key behaviors and substitutability.

Read the paper · More papers on PaperTik