The Tunes HLL Syntax

Language syntax is a matter of conventions. No one expressed any preference yet, and existing languages of interest are many, each with its own completely different syntax.

Syntax matters in as much as we need it to communicate the semantics of the HLL.


Plan

One possible approach is to define the HLL as multiple extensions to existing languages, then refine it to obtain cleaner things.

A likely approach with this is to define such an extension first in Scheme or Common Lisp that uses a modified form of their syntax to better express these ideas and to interface to the HLL implemented as a Lisp library.


Non-Concerns

Sequentiality:

Tunes HLL principles encourage the idea of separating abstraction from implementation as a necessity; this subproject infers that to mean that a particular syntax should not be exclusively-coupled to a system. So, Tunes should support multiple syntaxes. This juggling may break given sequencing, and use arbitrary tree/graph manipulations. The graphical interface that structured (graphical or textual) editors propose is enough of a "syntax" to me. (See the Tunes Interfaces subproject for generalizations.)

The preferred syntax for input may not forcibly be the preferred syntax for output. For instance, users generally like free-form keyboard input with name completion, and nicknames, but structured output with full names and color. For the sake of consistency verification, it should be easy to interactively change the syntactic mode.


Difficulties

Basic abstractions:

Basic concretizers: