back to the tutorial home page
back to the MGS home page

Generic Pattern Matching

  • If you are interested by using Associative-Commutative (multi set), Associative (sequence) and simple (free algebraic term) rewriting on your usual language (say, Java), take a look at TOM

Topological Collection as Containers Beyond Algebraic Data Type

Topological collection can be seen as a generalization of the notion of containers developed in the standard C++ library or in JAVA. We are currently trying to developp several API to offer the idea of topological collection in these languages. One problem is the specification of transformation: without an ad hoc syntax, the definition of a rule is very painful.

Incremental HOAS implementation of a DSL

The implementation of the functional evaluator of MGS relies on a higher-order abstract syntax approach (HOAS). THe HOAS form of a MGS term is obtained by a combinatorisation using a subset of the combinators introduced by Dillers. You will fnd the technical details in:

  • Variable elimination for building interpreters details the HOAS approach, shows that it can be implemented in any language that has a reasonable notion of function (e.g., C) and prove the correction of the approach using the Coq theorem prover. The resulting evaluation function is rather efficient: more efficient than Mathematica or Python a heavily recursive function (ackermann, fibonacci, factorial, etc.).

Personal Tools