In aspect-oriented computer programming, a pointcut is a set of join points. Pointcut allows where exactly to apply advice, this allows separation of concerns and helps in modularizing business logic. Pointcuts are often specified using class names or method names in some cases using regular expressions that match class or method name. Different frameworks support different Pointcut expressions, AspectJ syntax is considered as de facto standard. Frameworks are available for various programming languages like Java, Perl, Ruby, and many more which support pointcut.
Due to limitations in various programming languages, cross cutting concerns have not modularized. Cross cutting concerns refers to parts of software that logically belong to one module and affect the whole system, this could be security, logging and others.Aspect oriented programming tries to solve these cross cutting concerns in the following way: It allows programmers to write modules called as aspects. Aspects contain pieces of code executed at particular point. The expressions required to select a particular point led to creation of Pointcut Expressions.
Whenever the program execution reaches one of the join points described in the pointcut, a piece of code associated with the pointcut (called advice) is executed. This allows a programmer to describe where and when additional code should be executed in addition to an already defined behavior. This permits the addition of aspects to existing software, or the design of software with a clear separation of concerns, wherein the programmer weaves (merges) different aspects into a complete application.