# §0 About this Document

### Levels of this document

Terms, concepts
Each chapter of this document starts with a short synopsis of concepts covered by the chapter (like this).
Definition
The actual definition is given in small numbered paragraphs.
Examples
Examples and accompanying explanations will be interspersed into the definition.

## §0.1 Purpose(s) of this document↑ §0

This document defines the OT/J programming language. The main goals were to create a precise and complete reference for this language. Didactical considerations had lower priorities, which means that this document is not designed as an introductory tutorial. Still, we advise programmers learning the OT/J language, to consult this document whenever a compiler error message is not perfectly clear to them (see §0.3).

## §0.2 Text structure↑ §0

Each chapter of this document starts with a short synopsis of concepts covered by the chapter (see above).

→ Syntax §A

#### (a) Paragraphs

The actual definition is structured into small paragraphs for easy referral.

#### (b) Syntax Links

Links to the syntax precede definitions whenever new syntax is introduced.

Interspersed you will find some example program listings. Examples are typeset in a box:

1

    public team class MyTeamA {

2

      ...

3

    }

Explanations for examples look like the following:

##### Effects:

- Lines 1-3 show a minimal OT/J program, which should not cause any headache.

Examples are given for illustration only.

Additional paragraphs like "Language implementation", or "open issues" provide some background information which is not necessary for understanding the definition, which might however, help to understand why things are the way they are and what other things might be added to the language in the future.

## §0.3 Compiler messages↑ §0

Error messages given by the Object Teams compiler refer to this definition whenever appropriate. This way it should be easy to find out, why the compiler rejected your program. Please make sure you are using a language definition whose version matches the version of your compiler.

## §0.4 Versions↑ §0

OTJLD version | Release date | Matching OTDT version
--- | --- | ---
1.0.0 | July 2007 | 1.0.0
1.1.0 | June 2008 | 1.1.9
1.2.0 | June 2009 | 1.2.8 - 1.4.0
1.3.0 | June 2011 | 2.0.0 - 2.1.2
1.3.1 | June 2013 | 2.2.0 and greater

Changes between the current and previous versions are listed in appendix §B.

## §0.5 Publishing↑ §0

The sources of this language definition are maintained in a target-independent XML format. Three different versions are generated from these sources, using XSLT:

- Online version (XHTML)
- Tooling version (XHTML – directly accessible from inside the OTDT)
- Print version (LaTeX/PDF)