←back to thread

56 points boris_m | 9 comments | | HN request time: 0.001s | source | bottom
Show context
BoiledCabbage ◴[] No.42066515[source]
Term re-writing systems are a really interesting way of looking at computation.

It completely abstracts away the concept of a machine, and it's simply translation as computation - but equally as powerful.

replies(3): >>42066655 #>>42066678 #>>42067446 #
llm_trw ◴[] No.42066678[source]
It's a shame the standard texts are all 20 years old or more than way too heavy mathematically.

A little book for term rewriting would be a great new addition.

replies(1): >>42067199 #
1. entaloneralie ◴[] No.42067199[source]
Here's a little zine on multiset rewriting(unordered term rewriting), John Conway said(about Fractran in The Book of Numbers) that it is such a simple paradigm of computation that no book is needed to learn it, and it can be taught in 10 seconds.

https://wiki.xxiivv.com/site/pocket_rewriting

replies(1): >>42069293 #
2. BoiledCabbage ◴[] No.42069293[source]
I'm somewhat surprised there isn't a semi-mainstream language for it. It's incredibly simple, with very few core concepts yet very powerful.

Similar to LISP in that sense.

replies(5): >>42069569 #>>42069855 #>>42070879 #>>42071115 #>>42072164 #
3. Jtsummers ◴[] No.42069569[source]
https://www.researchgate.net/publication/243768023_Mathemati...

Mathematica is at least semi-mainstream. Not sure of any other examples though.

4. entaloneralie ◴[] No.42069855[source]
Maude is the most famous one that I know of I think.

https://maude.lcc.uma.es/maude-manual/maude-manualch1.html#x...

5. opminion ◴[] No.42070879[source]
The foundations of Wolfram Language (Mathematica) are about transformations on symbolic expressions, at least conceptually.
6. alxmng ◴[] No.42071115[source]
I think the issue is performance. A true term rewriting system has to essentially operate on text, right?
replies(2): >>42071220 #>>42071290 #
7. Jtsummers ◴[] No.42071220{3}[source]
No, it can operate on a data structure as well. There's string rewriting which does operate on text (but this can be stored in a structure amenable to applying rewrite rules versus brute force copying it or something silly). For term rewriting, there are plenty of efficient ways to store and operate on the information besides just textually.
8. simplify ◴[] No.42071290{3}[source]
Not necessarily, I would think terms can be converted to numbers like how the Ruby vm compiles symbols.
9. UncleOxidant ◴[] No.42072164[source]
There's Pure, but it's not exactly mainstream: https://agraef.github.io/pure-lang/