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. See the Semantics page.
I guess we'll have to define the HLL as multiple extensions to existing languages, then refine it to obtain cleaner things. All this is pure draft.
So which some existing syntax to start with: BETA ? SELF ? CECIL ? Dylan ? LISP ? Haskell ? CAML ? SML ? C ? Perl ? Python ? Icon ? Oberon ? FORTH ? Esperanto ? Latin ? French ? English ?


HLL-

The HLL- will be the initial implementation for the HLL, written as s-exps interpreted by a program written in Scheme.

The HLL- will basically have all Scheme constructs, with ones like car and cdr being deprecated, and support for the number type tower being postponed, while some extensions will be added: annotations, first-class environments, a reflective interpreter, a CPS macro system, a pattern matching system, a module system.

Features of the full HLL it won't have are arbitrary syntax (arbitrary s-exp syntax only), weak pointers (R4RS Scheme doesn't support them) with finalizers, modules to define LLL types, etc. But the compiler ought to eventually support them.



Standard Basic constructors



Standard Library of language extensions

That's worth a whole subproject...


Syntactic Difficulties


To Do on this page

  • Make first proposals.
  • Allow meaningful indentation on any syntax
  • Think about how to embed syntaxes in each other
  • Settle full HLL syntax.
  • Be faithful to the semantics.
  • Wait for feedback, as usual.


  • See the Tunes HLL Semantics.
  • Back to the Tunes HLL Subproject.


    Page Maintainer:
    Faré -- rideau@clipper.ens.fr