Abstract. In aspect-oriented programming, pointcuts are used to describe crossstructure. Pointcuts that abstract over irrelevant implementation details are clearly desired to better support maintainability and modular reasoning. We present an analysis which shows that current pointcut languages support localization of crosscutting concerns but are problematic with respect to information hiding. To cope with the problem, we present a pointcut language that exploits information from different models of program semantics, such as the execution trace, the syntax tree, the heap, static type system, etc., and supports ion mechanisms analogous to functional abstraction. We show how this he abstraction level and modularity of pointcuts and present first steps toward an efficient implementation by means of a static analysis technique.