Section:
New Results
Functional programming with -tree syntax
Participants :
Ulysse Gerard, Dale Miller, Gabriel Scherer.
We have been designing a new functional programming language, MLTS,
that uses the -tree syntax approach to encoding
bindings that appear within data structures
[17]. In this setting, bindings never become
free nor escape their scope: instead, binders in data structures are
permitted to move into binders within programs phrases. The
design of MLTS—whose concrete syntax is based on that of
OCaml—includes additional sites within programs that directly
support this movement of bindings. Our description of MLTS includes a
typing discipline that naturally extends the typing of OCaml programs.
The operational semantics of MLTS is given using natural semantics for
evaluation. We shall view such natural semantics as a logical theory
with a rich logic that includes both nominal abstraction and the
-quantifier: as a result, the natural semantic specification
of MLTS can be given a succinct and elegant presentation.
We have developed a number of examples of how this new programming
language can be used. Some of the most convincing of these examples
are programs that manipuate untyped -terms.
A web-based implementation of an MLTS interpreter is available to
anyone with a modern web browser: simply visit
https://trymlts.github.io/. Small MLTS programs can be composed and
executed using that interpreter.