Despite the automated refactoring support provided by today's IDEs many program transformations that are easy to conceptualize-such as improving the implementation of a desig...
Type constraints express subtype-relationships between the types of program expressions that are required for type-correctness, and were originally proposed as a convenient framewo...
Aspect-based refactoring, called aspectualization, involves moving program code that implements cross-cutting concerns into aspects. Such refactoring can improve the maintainabili...
The C language is among the most widely used in the world, particularly for critical infrastructure software. C programs depend upon macros processed using the C preprocessor, but...
Commitment-modeled protocols enable flexible and robust interactions among agents. However, existing work has focused on features and capabilities of protocols without considerin...