<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Abstract_rewriting_machine</id>
	<title>Abstract rewriting machine - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Abstract_rewriting_machine"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Abstract_rewriting_machine&amp;action=history"/>
	<updated>2026-05-14T12:57:10Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Abstract_rewriting_machine&amp;diff=3335313&amp;oldid=prev</id>
		<title>imported&gt;Headbomb: /* References */  | Add: journal, title. | Use this tool. Report bugs. | #UCB_Gadget</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Abstract_rewriting_machine&amp;diff=3335313&amp;oldid=prev"/>
		<updated>2025-06-12T18:16:25Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;References: &lt;/span&gt;  | Add: journal, title. | &lt;a href=&quot;/wiki143/index.php?title=En:WP:UCB&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:UCB (page does not exist)&quot;&gt;Use this tool&lt;/a&gt;. &lt;a href=&quot;/wiki143/index.php?title=En:WP:DBUG&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;En:WP:DBUG (page does not exist)&quot;&gt;Report bugs&lt;/a&gt;. | #UCB_Gadget&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{external links |date=April 2024}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Abstract Rewriting Machine&amp;#039;&amp;#039;&amp;#039; (ARM) is a [[virtual machine]] which implements [[term rewriting]] for minimal term rewriting systems.&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Minimal term rewriting systems&amp;#039;&amp;#039;&amp;#039; are [[left-linear]] [[term rewriting system]]s in which each rule takes on one of six forms:&lt;br /&gt;
&lt;br /&gt;
{{block indent| em = 1.5 |&lt;br /&gt;
;Continuation:&amp;lt;math&amp;gt;f(\vec{x},\vec{y},\vec{z})\rightarrow g(\vec{x},h(\vec{y}),\vec{z})&amp;lt;/math&amp;gt;&lt;br /&gt;
;Return:&amp;lt;math&amp;gt;f(x)\rightarrow x&amp;lt;/math&amp;gt;&lt;br /&gt;
;Match:&amp;lt;math&amp;gt;f(\vec{x},g(\vec{y}),\vec{z})\rightarrow h(\vec{x},\vec{y},\vec{z})&amp;lt;/math&amp;gt;&lt;br /&gt;
;Add:&amp;lt;math&amp;gt;f(\vec{x},\vec{z})\rightarrow g(\vec{x},y,\vec{z}) -&lt;br /&gt;
{\rm for }~y\in\vec{x}\cup\vec{z}&amp;lt;/math&amp;gt;&lt;br /&gt;
;Delete:&amp;lt;math&amp;gt;f(\vec{x},\vec{y},\vec{z})\rightarrow g(\vec{x},\vec{z})&amp;lt;/math&amp;gt;&lt;br /&gt;
;Ident:&amp;lt;math&amp;gt;f(\vec{x})\rightarrow g(\vec{x})&amp;lt;/math&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
Each of these six forms is mapped (in ARM) to one or  a  few  processor instructions on most contemporary micro processors. Accordingly, minimal term rewriting is achieved at tens to hundreds of clock cycles per reduction step—millions of reduction steps per second.&lt;br /&gt;
&lt;br /&gt;
ARM implements general term rewriting, in that every single-sorted unconditional left-linear term rewriting system can be transformed (compiled) into a minimal term rewriting system that gives rise to the same normal form relation.&lt;br /&gt;
&lt;br /&gt;
An overview with references to this compilation process for innermost rewriting, as well as a detailed overview of ARM, can be found in [http://portal.acm.org/citation.cfm?id=291903&amp;amp;dl=GUIDE&amp;amp;coll=&amp;amp;CFID=15151515&amp;amp;CFTOKEN=6184618 &amp;quot;Within ARM&amp;#039;s reach: compilation of left-linear rewrite systems via minimal rewrite systems&amp;quot;]. A description for lazy (non-innermost) rewriting can be found in  [http://portal.acm.org/citation.cfm?id=345102&amp;amp;dl=ACM&amp;amp;coll=ACM&amp;amp;CFID=15151515&amp;amp;CFTOKEN=6184618 &amp;quot;Lazy rewriting on eager machinery&amp;quot;].&lt;br /&gt;
&lt;br /&gt;
A documented implementation of ARM (with the term rewriting language Epic) is available [https://web.archive.org/web/20070327185702/http://www.babelfish.nl/epicarm.html here]. Note that site and software are no longer being actively maintained.&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
* {{Cite journal | last1 = Giesl | first1 = J. R.| last2 = Middeldorp | first2 = A.| doi = 10.1017/S0956796803004945 | title = Transformation techniques for context-sensitive rewrite systems | url = http://cl-informatik.uibk.ac.at/users/ami/research/publications/journals/04jfp.pdf| journal = [[Journal of Functional Programming]]| volume = 14 | issue = 4 | pages = 379–427| date=July 2004 | citeseerx = 10.1.1.127.2817}}&lt;br /&gt;
* {{Cite journal | last1 = Lucas | first1 = Salvador | doi = 10.1016/S1571-0661(04)80353-0 | title = Lazy Rewriting and Context-Sensitive Rewriting | journal = [[Electronic Notes in Theoretical Computer Science]] | volume = 64 | pages = 234–254 | year = 2002 | citeseerx = 10.1.1.14.3470 | url = http://www.dsic.upv.es/users/elp/berlanga/slucas/entcsV64/entcsV64.pdf | access-date = 2015-08-29 | archive-url = https://web.archive.org/web/20060516192924/http://www.dsic.upv.es/users/elp/berlanga/slucas/entcsV64/entcsV64.pdf | archive-date = 2006-05-16 | url-status = dead }}&lt;br /&gt;
* {{Cite journal | last1 = Nguyen | first1 = Quang-Huy| doi = 10.1016/S1571-0661(04)00269-5 | title = Compact Normalisation Trace via Lazy Rewriting | journal = [[Electronic Notes in Theoretical Computer Science]]| volume = 57 | pages =  87–108| year = 2001 | url = http://hal.inria.fr/docs/00/10/78/74/PDF/A01-R-139.pdf| citeseerx = 10.1.1.24.771| s2cid = 38634432}}&lt;br /&gt;
* {{Cite journal | last1 = Schernhammer | first1 = F.| last2 = Gramlich | first2 = B.| doi = 10.1016/j.entcs.2008.03.052 | title = Termination of Lazy Rewriting Revisited | journal = [[Electronic Notes in Theoretical Computer Science]]| volume = 204 | pages = 35–51| date=April 2008 | citeseerx = 10.1.1.142.1957| url = http://www.logic.at/staff/gramlich/papers/wrs07-techrep.pdf}}&lt;br /&gt;
* {{Cite journal | last1 = Kirchner | first1 = C. | last2 = Kirchner | first2 = H.| doi = 10.1016/B978-0-444-51624-4.50006-X | title = Equational Logic and Rewriting | journal = [[Handbook of the History of Logic]]| volume = 9 | pages = 255–282| date=2014 | isbn = 9780444516244 | url = https://hal.inria.fr/hal-01183817/file/eqLogicRw.pdf}}&lt;br /&gt;
* {{Cite journal | last1 = Antoy | first1 = S.| last2 = Johannsen | first2 = J.| last3 = Libby | first3 = S.| title = Needed Computations Shortcutting Needed Steps| journal = Electronic Proceedings in Theoretical Computer Science| doi = 10.4204/EPTCS.183.2 | volume = 183 | date=2015 | pages = 18–32| arxiv = 1505.07162v1| doi-access = free }}&lt;br /&gt;
&lt;br /&gt;
[[Category:Virtual machines]]&lt;br /&gt;
[[Category:Term-rewriting programming languages]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Computer science stub}}&lt;/div&gt;</summary>
		<author><name>imported&gt;Headbomb</name></author>
	</entry>
</feed>