W czystym kodzie bez dodatkowych narzędzi nie sposób dojrzeć aspektów. Ich łączenie z implementacją odbywa się na poziomie kodu bajtowego. Kod źródłowy podlegający modularyzacji na klasy i aspekty jest kompilowany do kodu bajtowego, w który aspekty zostają wplecione. AspectJ jest pełnym językiem programowania - oprócz składni posiada także własne narzędzia – kompilator i debugger. Ponadto od czasu gdy został przeniesiony do projektu Eclipse obserwuje się jego coraz silniejszą integrację z tą platformą.

Składnia W celu poprawnego opisu problemu przekrojowego AspectJ definiuje kilka nowych elementów składni, rozszerzających znaczenie podstawowej semantyki znanej z języka Java: punkty złączeń (ang. joinpoints), punkty przecięcia (ang. pointcuts), rady (ang. advices). aspekty.

Punkty złączeń (joinpoints) Podstawowym elementem programowania aspektowego jest definicja punktu złączenia. Punkt taki jest atomową jednostką opisu problemu przekrojowego. Może nim być dowolny identyfikowalny przez semantykę punkt programu.