Table of Contents
back to the tutorial home page
back to the MGS home page
Generic Pattern Matching
- Pattern-matching and rewriting rules for group indexed data structures. ACM SIGPLAN Notices, 37(12):76–87, 2002.
- 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.).
- Incremental extension of a domain specific language interpreter presented at IFL'2007 describes the extensible software architecture used to add incrementally new collection type to the current MGS interpreter.