TAO: the family

Note: This is subject to future work. Errors, ambiguities, and omissions are to be expected.

TAO, besides the primary syntax, may also mean a family of syntaxes which is a subset of TAS.

In the context of this document, the primary syntax will be disambiguated as TAO-UO2 where U stands for Unicode, O stands for the characteristic syntactical construct of an op which distinguishes it from other TAO members and 2 is more or less an ordinal number which follows complexity.

This is a provisional classification, but indicates that:

  1. There are more TAO-like syntaxes.
  2. There may be TAO members not based on Unicode or, for that matter, not human-readable at all.
  3. Syntactical constructs beyond TAO-UO2 grammar exist in the TAO family.
  4. There are simpler as well as more complex members of the family.

These points are elaborated on below.

Primitive TAOs

We shall define a few of the more primitive TAOs that are subsets of TAO-UO2.

TAO-UT0

This is a syntax which consists only of two symbols [ and ] and allows encoding arbitrary tree structures without annotations:

It is equivalent to the Dyck language. It provides the foundational structure of TAO: the tree.

TAO-UN1

This is TAO-UT0 where other symbols may appear inbetween the brackets:

Just by adding the note rule the expressive power of the syntax is increased very close to TAO-UO2. The essential elements are now in place: trees from TAO-UT0 are joined by notes to be carried by them.

Annotations are however restricted and cannot contain the meta symbols [ or ]. This is an artifact of representing trees and notes with the same system of symbols (Unicode).

TAO-UO2

This is the primary syntax.

It is TAO-UN1 with the restriction on annotations lifted. This is done by the introduction of another meta symbol ` which essentially creates a generalized escape mechanism:

Now notes may effectively contain arbitrary symbols. Also, by defining op in terms of any rather than restricting it to the meta symbols only we leave space for extensions that need not be a part of the basic syntax, but are permitted by it. On the other hand we can also introduce restrictions to op outside of the syntax.

More advanced TAOs and features are subject to future discussion.