High-Assurance Transformation System (HATS)


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 numerous examples.

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.