= The AspectJ^TM^ Programming Guide :doctype: book :leveloffset: +1 _by the AspectJ Team_ _Copyright (c) 1998-2001 Xerox Corporation, 2002 Palo Alto Research Center, Incorporated, 2003-2005 Contributors. All rights reserved._ This programming guide describes the AspectJ language. A companion guide describes the tools which are part of the AspectJ development environment. * If you are completely new to AspectJ, please read the xref:gettingstarted.adoc#starting[getting started] chapter for a broad overview of AspectJ programming. * If you are already familiar with AspectJ, but want a deeper understanding, you can learn more about the xref:language.adoc#language[AspectJ language] and look at the examples in the chapter. * If you want a more formal definition of AspectJ, please refer to the xref:semantics.adoc#semantics[language semantics] section. **Table of Contents** * xref:preface.adoc[Preface] * xref:gettingstarted.adoc[Getting Started with AspectJ] * xref:language.adoc[The AspectJ Language] * xref:examples.adoc[Examples] * xref:idioms.adoc[Idioms] * xref:pitfalls.adoc[Pitfalls] * xref:quickreference.adoc[AspectJ Quick Reference] * xref:semantics.adoc[Language Semantics] * xref:implementation.adoc[Implementation Notes]