A denotational semantics of inheritance and its correctness
OOPSLA '89 Conference proceedings on Object-oriented programming systems, languages and applications
Common LISP: the language (2nd ed.)
Common LISP: the language (2nd ed.)
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
Ropes: an alternative to strings
Software—Practice & Experience
The Dylan reference manual: the definitive guide to the new object-oriented dynamic language
The Dylan reference manual: the definitive guide to the new object-oriented dynamic language
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
N degrees of separation: multi-dimensional separation of concerns
Proceedings of the 21st international conference on Software engineering
Efficient multiple and predicated dispatching
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
MultiJava: modular open classes and symmetric multiple dispatch for Java
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
Adaptive Object-Oriented Software: The Demeter Method with Propagation Patterns
The Java Language Specification
The Java Language Specification
ECOOP '93 Proceedings of the 7th European Conference on Object-Oriented Programming
Predicate Dispatching: A Unified Theory of Dispatch
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
Implementing Layered Designs with Mixin Layers
ECCOP '98 Proceedings of the 12th European Conference on Object-Oriented Programming
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
DJ: Dynamic Adaptive Programming in Java
REFLECTION '01 Proceedings of the Third International Conference on Metalevel Architectures and Separation of Crosscutting Concerns
A case for statically executable advice: checking the law of demeter with AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Aspects and polymorphism in AspectJ
Proceedings of the 2nd international conference on Aspect-oriented software development
Controlling the Complexity of Software Designs
Proceedings of the 26th International Conference on Software Engineering
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
PolyD: a flexible dispatching framework
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using predicate fields in a highly flexible industrial control system
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
State-based incremental testing of aspect-oriented programs
Proceedings of the 5th international conference on Aspect-oriented software development
Semantics and scoping of aspects in higher-order languages
Science of Computer Programming - Special issue: Foundations of aspect-oriented programming
Redundancy-free residual dispatch: using ordered binary decision diagrams for efficient dispatch
Proceedings of the 7th workshop on Foundations of aspect-oriented languages
Expressive and modular predicate dispatch for Java
ACM Transactions on Programming Languages and Systems (TOPLAS)
Weaving generic programming and traversal performance
Proceedings of the 9th International Conference on Aspect-Oriented Software Development
Aspect-oriented programming beyond dependency injection
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
A machine model for aspect-oriented programming
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Method slots: supporting methods, events, and advices by a single language construct
Proceedings of the 12th annual international conference on Aspect-oriented software development
Hi-index | 0.00 |
Languages that support incremental programming, that is, the construction of new program components by specifying how they differ from existing components, allow for clean separation of concerns. Object-oriented languages support incremental programming with inheritance and dynamic dispatch features: whenever a message is sent, a decision occurs, but the branches of the decision can be specified in separate components. Aspect-oriented programming and predicate dispatching both introduce language mechanisms that improve on this support by allowing an extensible decision to depend on information about the message send other than just the dynamic type of the receiver or arguments. A small prototype language is presented that unifies the best features of these mechanisms, providing uniform support for incremental programming whether concerns are crosscutting or not. The language is demonstrated with a running example, a small data structure library that is incrementally extended with optimizations and new operations.