Backstage Java. Making a difference in Metaprogramming - Zachary Palmer, Scott F. Smith Introduction Metaprogramming - examples Backstage Java - metaprogramming in Java Difference-based metaprogramming approach Backstage Java in examples Difference-based metaprogramming Dual-write conflict Read-write conflict Dependency graph Edit script Meta-annotations Ackermann function example Meta-annotation ordering User defined meta-annotation Metaprogram injection Injection conflict Restrictions Code literal disambiguation Code lifting Implementation What has been done Future work