The Abstract Rewriting Machine (ARM) is a virtual machine which implements term rewriting. See also Wikipedia. A detailed overview of ARM with references to ARM's compilation process via minimal rewriting systems can be found in "Within ARM's reach: compilation of left-linear rewrite systems via minimal rewrite systems". A description for lazy (non-innermost) rewriting can be found in "Lazy rewriting on eager machinery".

Term rewriting allows for rule-based, comprehension-based software development against a formal background of algebraic specifications.

ARM's standard source language EPIC has two main applications:

  • It can be used as a target language, where other specification languages are given an implementation by translating them to EPIC. EPIC is a suitable target for many languages based on pattern matching, tree- (dag-) replacement and term rewriting. To this end, all EPIC tools offer an abstract, abstract syntax oriented API.
  • EPIC can be used as a `systems programming language' in which to write executable specifications. For example, EPIC's compiler, and several other tools for EPIC, have been implemented in EPIC itself.

A documented implementation of ARM (with the term rewriting language Epic) is available here. Note that EPIC asnd ARM are no longer being actively maintained.

Built with Bloom