I've recently become very interested in this space and am wondering what resources are out there for people wanting to learn more and implement their own languages/environments that use term rewriting?

Most of the literature I've seen seems to focus more on the typed lambda calculus aspect of things and less on the term rewriting.

I'm planning on going through:

- The Architecture of Symbolic Computers

- Abstract Computing Machines

- Mathematica documentation / internals

I think rewrite is related to program transformation [1]? Most stuff that I've seen looks pretty academic, obscure, not very well maintained, etc ...

Pure [2] is the only practical language I've stumbled upon that appears to be general purpose _and_ based on term rewrite.

I wonder if XSLT could fall under this umbrella? It rewrites trees into other trees ... not sure if that's enough to be considered a term rewrite system. If yes, then maybe CDuce is also an interesting thing to check.

The author of Ragel also has a program transformation system [4], but I'm not sure what state it is at, he seems to have been working on it for a long while but it doesn't seem to be something nearly as popular as Ragel.

Edit: I think specter [5] and meander [6] also could be, perhaps tangentially, related to rewriting. Meander expressly mentions rewrite as inspiration/fondation. Curiously these two look a lil bit like xpath/xslt but with EDN as data model instead of XML infoset.

--

1: https://en.wikipedia.org/wiki/List_of_program_transformation...

2: https://github.com/agraef/pure-lang

3: https://www.cduce.org/#whatis

4: http://www.colm.net/open-source/colm/

5: https://github.com/redplanetlabs/specter

6: https://github.com/noprompt/meander