HATS is an integrated development environment (IDE) for higher-order strategic programming.
The HATS interface is written in Java and the execution engine is written in
SML. The Java interface provides support for file management, editors for various
file types including text highlighting of keywords for the strategic
programming language as well as term highlighting. The interface also
provides control over execution of various portions of the execution engine
(i.e., the parser, the interpreter, and the prettyprinter), and supports
graphical display of term structures.
The HATS engine consists of
three components: a parser, an interpreter, and a prettyprinter. A domain
of discourse can be defined by defining a suitable grammar and lexer. The HATS
parser supports an extended-BNF grammar and additionally supports
precedence and associativity of operators and rules. The parser is an LR
parser with the capability to do backtracking as needed in order to resolve
local ambiguities. One can think of such a parser as an LR(K) parser for an
arbitrary K. Backtracking brings the parser's capability close to that of a
scannerless generalized LR parser.
The programming paradigm supported by
HATS is a strategic. A strategic framework can be thought of as a rewriting
system where control of rule application and term traversal can be
explicitly controlled by the user. A somewhat distinguishing feature of
HATS is that terms correspond to parse trees rather than abstract syntax
trees. There are pros and cons to such an approch. However, one advantage
of a parse-tree based perspective is that term structures can be completed
by the parser (i.e., the developer need not explicitly write the internal
nodes of a term).
Strategic programs are executed through
an interpreter. The strategic programming language is under development and
a tutorial is not yet available. However, the HATS download comes with
The prettyprinter is very powerful however somewhat difficult to use. Documentation is available describing
how to construct prettyprint programs.
The HATS download runs on Windows XP/2000/NT/ME platforms.