<preface id="preface">
  <title>Preface</title>

  <para>
    This programming guide does three things. It

    <itemizedlist spacing="compact">
      <listitem>
        <para>introduces the AspectJ language</para>
      </listitem>

      <listitem>
        <para>
          defines each of AspectJ's constructs and their semantics, and
        </para>
      </listitem>

      <listitem>
        <para>
          provides examples of their use.
        </para>
      </listitem>
    </itemizedlist>

    It includes appendices that give a reference to the syntax of AspectJ,
    a more formal description of AspectJ's semantics, and a description of
    notes about the AspectJ implementation.
  </para>

  <para>
    The first section, <xref linkend="starting" />, provides a gentle
    overview of writing AspectJ programs. It also shows how one can
    introduce AspectJ into an existing development effort in stages,
    reducing the associated risk. You should read this section if this is
    your first exposure to AspectJ and you want to get a sense of what
    AspectJ is all about.
  </para>

  <para>
    The second section, <xref linkend="language" />, covers the features of
    the language in more detail, using code snippets as examples.  All the
    basics of the language is covered, and after reading this section, you
    should be able to use the language correctly.
  </para>

  <para>
    The next section, <xref linkend="examples" />, comprises a set of
    complete programs that not only show the features being used, but also
    try to illustrate recommended practice. You should read this section
    after you are familiar with the elements of AspectJ.
  </para>

  <para>
    Finally, there are two short chapters, one on <xref linkend="idioms" />
    and one on <xref linkend="pitfalls" />.
  </para>

  <para>
    The back matter contains several appendices that cover a <xref
    linkend="quick">quick reference</xref> to the language's syntax, a more
    in depth coverage of its <xref linkend="semantics">semantics</xref>,
    and a description of the latitude enjoyed by its <xref
    linkend="implementation">implementations</xref>.
  </para>

</preface>
