International audienceAttribute Oriented Programming (@OP ) permits programmers to extend the semantics of a base program by annotating it with attributes that are related to a set of concerns. Examples of this are applications that rely on XDoclet (such as Hibernate) or, with the release of Java5's annotations, EJB3. The set of attributes that implements a concern defines a Domain Specific Language, and as such, imposes syntactic and semantic rules on the way that attributes are included in the program or even on the program itself. We propose a framework for the definition and checking of these rules for @OP that uses Java5 annotations. We define an extensible set of meta-annotations to allow the validation of @OP programs, as well as the...