Abstract:
Pointcuts in the current AspectJ family of languages are loosely checked because the languages allow compositions of pointcuts that never match any join points, which developers are unlikely to intend, for example, \verb|set(* *)&&get(* *)|. We formalize the problem by defining well-formedness of pointcuts and design a novel type system for assuring well-formedness. The type of pointcuts is encoded by using record, union and the bottom types.
Reference:
Towards A Type System for Rejecting Never-Matching Pointcut Compositions (Tomoyuki Aotani and Hidehiko Masuhara), In Proceedings of Foundations of Aspect-Oriented Langauges (FOAL2007) (Shmuel Katz, ed.), 2007.
Bibtex Entry:
@inproceedings{aotani2007foal,
editor = {Shmuel Katz},
isbn = {1-59593-661-5},
month = mar,
year = 2007,
booktitle = {Proceedings of Foundations of Aspect-Oriented Langauges (FOAL2007)},
pdf = {foal2007.pdf},
author = {Tomoyuki Aotani and Hidehiko Masuhara},
title = {Towards A Type System for Rejecting Never-Matching Pointcut Compositions},
url = {http://www.eecs.ucf.edu/~leavens/FOAL/index-2007.shtml},
pages = {23--26},
keywords = {AspectJ},
abstract = {Pointcuts in the current AspectJ family of languages are loosely checked because the languages allow compositions of pointcuts that never match any join points, which developers are unlikely to intend, for example, \verb|set(* *)&&get(* *)|. We formalize the problem by defining well-formedness of pointcuts and design a novel type system for assuring well-formedness. The type of pointcuts is encoded by using record, union and the bottom types.}
}