Aspect-oriented programming (AOP) promotes new mechanisms and methods to improve separation of concerns in software design. AOP is not well understood in theory, and remains controversial among researchers and practitioners. One issue is that it relies on implementation-dependent, implicit side effects, contradicting traditional views on abstraction, information hiding, and compositional reasoning. The PIs' goals are to explicate fundamental mechanisms of AOP; assess and improve the impact of AOP on decomposition and coupling; and improve our understanding of the inherent complexity of, and potential for, compositional reasoning involving AOP. The approach is to ground AOP in an underlying ontology of implicit invocation and then to leverage knowledge in that domain to advance our understanding of AOP. The intellectual significance of the proposed work is in its potential to improve our understanding of AOP, including effects on modularity and abstraction, and the complexity of specification and verification. Broader impacts are anticipated to flow from regularized and improved AOP mechanisms, e.g., for event abstraction. The project will also support development and delivery of a senior-level undergraduate and early graduate course on AOP.