Join points are those elements of the programming language semantics which the aspects coordinate with. Nowadays, there are various join point models around and still new under development. They heavily depend on the underlying programming language and AO language.
In a number of presently available AOP languages, a join point is a region in the dynamic control flow of an application. Thus a join point can for instance represent
- a call to a method,
- execution of a method,
- the event of setting a field,
- the event of handling an exception ...
Join points can be picked up by an AOP program by using pointcuts to match on them. Depending on the pointcut language the AOP language provides, it may be possible to pick up more or less of those join points. Since join points are dynamic, it may be possible to expose runtime information such as the caller or callee of a method from a join point to a matching pointcut.
Many AOP languages implement aspect behavior by weaving hooks into the join point shadows, which is the static projection of a join point onto the program code.
![[Main Page]](/wiki/skins/common/images/AOSDWikiLogo.gif)