This tutorial on rule-based programming using ELAN will provide an introduction to rule-based programming and its theoretical foundation: the rewriting calculus. ELAN has two first class objects: rewrite rules and strategies to control the rewrite rule applications. The ELAN environment includes an efficient compiler for strategy controlled rewrite rules. The tutorial will introduce the main concepts of ELAN and compilation techniques for strategy controlled rewriting. The main features of ELAN will be illustrated with significant examples in the following application domains: specification and verification of protocols, meta-programming, constraint solving.
Some preliminary knowledge on declarative programming languages and algebraic specifications may help but is not mandatory.