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
Using role components in implement collaboration-based designs
Proceedings of the 11th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Program fragments, linking, and modularization
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Units: cool modules for HOT languages
PLDI '98 Proceedings of the ACM SIGPLAN 1998 conference on Programming language design and implementation
Modular object-oriented programming with units and mixins
ICFP '98 Proceedings of the third ACM SIGPLAN international conference on Functional programming
Implicit parameters: dynamic scoping with static types
Proceedings of the 27th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Hyper/J: multi-dimensional separation of concerns for Java
Proceedings of the 22nd international conference on Software engineering
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
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
Comparing frameworks and layered refinement
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Jiazzi: new-age components for old-fasioned Java
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using mixins to build flexible widgets
AOSD '02 Proceedings of the 1st international conference on Aspect-oriented software development
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
Classbox/J: controlling the scope of change in Java
OOPSLA '05 Proceedings of the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Software—Practice & Experience
Integrating aspects in software architectures: PRISMA applied to robotic tele-operated systems
Information and Software Technology
FEATUREHOUSE: Language-independent, automated software composition
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A calculus for uniform feature composition
ACM Transactions on Programming Languages and Systems (TOPLAS)
Superimposition: a language-independent approach to software composition
SC'08 Proceedings of the 7th international conference on Software composition
An algebraic foundation for automatic feature-based program synthesis
Science of Computer Programming
Architectural aspects of architectural aspects
EWSA'05 Proceedings of the 2nd European conference on Software Architecture
Evaluating support for features in advanced modularization technologies
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
FeatureC++: on the symbiosis of feature-oriented and aspect-oriented programming
GPCE'05 Proceedings of the 4th international conference on Generative Programming and Component Engineering
Shakeins: nonintrusive aspects for middleware frameworks
Transactions on Aspect-Oriented Software Development II
Hi-index | 0.00 |
We present aspect-oriented programming in Jiazzi. Jiazzi enhances Java with separately compiled, externally linked code modules called units. Units can act as effective "aspect" constructs with the ability to separate crosscutting concern code in a non-invasive and safe way. Unit linking provides a convenient way for programmers to explicitly control the inclusion and configuration of code that implements a concern, while separate compilation of units enhances the independent development and deployment of the concern. The expressiveness of concern separation is enhanced by units in two ways. First, classes can be made open to the addition of new behavior, fields, and methods after they are initially defined, which enables the direct modularization of concerns whose code crosscut object boundaries. Second, the signatures of methods and classes can also be made open to refinement, which permits more aggressive modularization by isolating the naming and calling requirements of a concern implementation.