1.4 Specification Conventions

Lexical and syntactic constructs of the language are described by a grammar using ABNF as defined in [RFC4234] with additional conventions as defined in the introductions to sections 3 and 5 of this document. Within the prose text of this specification the names of ABNF rules are distinguished by enclosing them angle brackets, for example <for-statement>.

Static semantics rules are expressed as prose descriptions, tables, and pseudo code algorithms that reference grammar rules. Runtime semantics are expressed in prose using implementation independent abstract computational concepts.

This specification defines a large number of terms that have specialized meaning within the context of this specification. Such terms are generally italicized when used within this document. The first use of each such term within a section of this document references the document section that defines the term.

Within this specification the phrase "implementation-defined" means that the contextually apparent detail of the syntax or semantics of a feature of the language is intentionally left unspecified and can vary among implementation of the language. However, the implementation of the unspecified details SHOULD be repeatedly consistent and the implementation SHOULD document its specific behavior order to preserve the utility of the language feature.

The phrase "implementation-specific" means that the contextually apparent detail of the syntax or semantics of a feature of the language is intentionally left unspecified and can vary among implementation of the language. However, the implementation of the unspecified details SHOULD be repeatedly consistent.

The phrase "undefined" means that the contextually apparent detail of the syntax or semantics of a feature of the language is intentionally left unspecified and can vary among implementation of the language. There is no requirement or expectation of consistent or repeatable behavior.