<?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=Markov_algorithm</id>
	<title>Markov algorithm - 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=Markov_algorithm"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;action=history"/>
	<updated>2026-05-05T16:51:16Z</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=Markov_algorithm&amp;diff=3447589&amp;oldid=prev</id>
		<title>2600:1700:4770:C21F:A980:6998:66FB:3448: /* Symbol string */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;diff=3447589&amp;oldid=prev"/>
		<updated>2025-09-06T20:35:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Symbol string&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 20:35, 6 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot;&gt;Line 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{No footnotes|date=May 2020}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{No footnotes|date=May 2020}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[theoretical computer science]], a &#039;&#039;&#039;Markov algorithm&#039;&#039;&#039; is a [[string rewriting system]] that uses [[Formal grammar|grammar]]-like rules to operate on [[string (computer science)|strings]] of symbols. Markov algorithms have been shown to be [[Turing-complete]], which means that they are suitable as a general model of [[computation]] and can represent any [[mathematical expression]] from its simple notation. Markov algorithms are named after the Soviet mathematician [[Andrey Markov, Jr.]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;In [[theoretical computer science]], a &#039;&#039;&#039;Markov algorithm&#039;&#039;&#039; is a [[string rewriting system]] that uses [[Formal grammar|grammar]]-like rules to operate on [[string (computer science)|strings]] of symbols. Markov algorithms have been shown to be [[Turing-complete]], which means that they are suitable as a general model of [[computation]] and can represent any [[mathematical expression]] from its simple notation. Markov algorithms are named after the Soviet mathematician [[&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Andrey Markov Jr.|&lt;/ins&gt;Andrey Markov, Jr.]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Refal]] is a [[programming language]] based on Markov algorithms.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Refal]] is a [[programming language]] based on Markov algorithms.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l98&quot;&gt;Line 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 98:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==References==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==References==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Caracciolo di Forino, A. &amp;#039;&amp;#039;String processing languages and generalized Markov algorithms.&amp;#039;&amp;#039; In Symbol manipulation languages and techniques, D. G. Bobrow (Ed.), North-Holland Publ. Co., Amsterdam, the Netherlands, 1968, pp.&amp;amp;nbsp;191–206.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Caracciolo di Forino, A. &amp;#039;&amp;#039;String processing languages and generalized Markov algorithms.&amp;#039;&amp;#039; In Symbol manipulation languages and techniques, D. G. Bobrow (Ed.), North-Holland Publ. Co., Amsterdam, the Netherlands, 1968, pp.&amp;amp;nbsp;191–206.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Andrey Markov &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;(Soviet mathematician)&lt;/del&gt;|Andrey Andreevich Markov (&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1903-1979&lt;/del&gt;)]] 1960. &#039;&#039;The Theory of Algorithms.&#039;&#039; American Mathematical Society Translations, series 2, 15, &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1-14&lt;/del&gt;. (Translation from the Russian, Trudy Instituta im. Steklova 38 (1951) 176-189&amp;lt;ref&amp;gt;{{Cite journal |last=Kushner |first=Boris A. |date=1999-05-28 |title=Markov&#039;s constructive analysis; a participant&#039;s view |url=https://core.ac.uk/works/41825477 |journal=Theoretical Computer Science |language=en |volume=219 |issue=1–2 |pages=268, 284 |doi=10.1016/S0304-3975(98)00291-6|doi-access=free }}&amp;lt;/ref&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [[Andrey Markov &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Jr.&lt;/ins&gt;|Andrey Andreevich Markov (&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1903–1979&lt;/ins&gt;)]] 1960. &#039;&#039;The Theory of Algorithms.&#039;&#039; American Mathematical Society Translations, series 2, 15, &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;1–14&lt;/ins&gt;. (Translation from the Russian, Trudy Instituta im. Steklova 38 (1951) 176-189&amp;lt;ref&amp;gt;{{Cite journal |last=Kushner |first=Boris A. |date=1999-05-28 |title=Markov&#039;s constructive analysis; a participant&#039;s view |url=https://core.ac.uk/works/41825477 |journal=Theoretical Computer Science |language=en |volume=219 |issue=1–2 |pages=268, 284 |doi=10.1016/S0304-3975(98)00291-6|doi-access=free }}&amp;lt;/ref&amp;gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;references /&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==External links==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://yad-studio.github.io/ Yad Studio - Markov algorithms IDE and interpreter (Open Source)]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://yad-studio.github.io/ Yad Studio - Markov algorithms IDE and interpreter (Open Source)]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://sourceforge.net/projects/markov  Markov algorithm interpreter]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://sourceforge.net/projects/markov  Markov algorithm interpreter]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://web.archive.org/web/20060217113205/http://nic-nac-project.de/~jcm/index.php?nav=projects Markov algorithm interpreter]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://web.archive.org/web/20060217113205/http://nic-nac-project.de/~jcm/index.php?nav=projects Markov algorithm interpreter]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;http&lt;/del&gt;://rosettacode.org/wiki/Execute_a_Markov_algorithm Markov algorithm interpreters at Rosetta-Code]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;https&lt;/ins&gt;://rosettacode.org/wiki/Execute_a_Markov_algorithm Markov algorithm interpreters at Rosetta-Code]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1720850/AB/ A=B, a game about writing substitution rules for a Markov algorithm]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://store.steampowered.com/app/1720850/AB/ A=B, a game about writing substitution rules for a Markov algorithm]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>2600:1700:4770:C21F:A980:6998:66FB:3448</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;diff=1687412&amp;oldid=prev</id>
		<title>imported&gt;RandFreeman: Adding local short description: &quot;Algorithm operating on grammar-like rules&quot;, overriding Wikidata description &quot;string rewriting system that uses grammar-like rules to operate on strings of symbols&quot;</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;diff=1687412&amp;oldid=prev"/>
		<updated>2025-06-23T18:48:15Z</updated>

		<summary type="html">&lt;p&gt;Adding local &lt;a href=&quot;https://en.wikipedia.org/wiki/Short_description&quot; class=&quot;extiw&quot; title=&quot;wikipedia:Short description&quot;&gt;short description&lt;/a&gt;: &amp;quot;Algorithm operating on grammar-like rules&amp;quot;, overriding Wikidata description &amp;quot;string rewriting system that uses grammar-like rules to operate on strings of symbols&amp;quot;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Previous revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:48, 23 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;{{Short description|Algorithm operating on grammar-like rules}}&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{No footnotes|date=May 2020}}&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{No footnotes|date=May 2020}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>imported&gt;RandFreeman</name></author>
	</entry>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;diff=139427&amp;oldid=prev</id>
		<title>imported&gt;Xleviator: Include link to game, A=B, where you write these. I can&#039;t find an official webpage, so this uses the link to steam.</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Markov_algorithm&amp;diff=139427&amp;oldid=prev"/>
		<updated>2024-12-25T04:17:33Z</updated>

		<summary type="html">&lt;p&gt;Include link to game, A=B, where you write these. I can&amp;#039;t find an official webpage, so this uses the link to steam.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{No footnotes|date=May 2020}}&lt;br /&gt;
&lt;br /&gt;
In [[theoretical computer science]], a &amp;#039;&amp;#039;&amp;#039;Markov algorithm&amp;#039;&amp;#039;&amp;#039; is a [[string rewriting system]] that uses [[Formal grammar|grammar]]-like rules to operate on [[string (computer science)|strings]] of symbols. Markov algorithms have been shown to be [[Turing-complete]], which means that they are suitable as a general model of [[computation]] and can represent any [[mathematical expression]] from its simple notation. Markov algorithms are named after the Soviet mathematician [[Andrey Markov, Jr.]]&lt;br /&gt;
&lt;br /&gt;
[[Refal]] is a [[programming language]] based on Markov algorithms.&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
Normal algorithms are verbal, that is, intended to be applied to strings in different alphabets.&lt;br /&gt;
&lt;br /&gt;
The definition of any normal algorithm consists of two parts: an &amp;#039;&amp;#039;alphabet&amp;#039;&amp;#039;, which is a set of symbols, and a &amp;#039;&amp;#039;scheme&amp;#039;&amp;#039;. The algorithm is applied to strings of symbols of the alphabet. The scheme is a finite ordered set of &amp;#039;&amp;#039;substitution formulas&amp;#039;&amp;#039;. Each formula can be either &amp;#039;&amp;#039;simple&amp;#039;&amp;#039; or &amp;#039;&amp;#039;final&amp;#039;&amp;#039;. Simple substitution formulas are represented by strings of the form &amp;lt;math&amp;gt;L\to D&amp;lt;/math&amp;gt;, where &amp;lt;math&amp;gt;L&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; are two arbitrary strings in the alphabet. Similarly, final substitution formulas are represented by strings of the form &amp;lt;math&amp;gt;L\to\cdot D&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a normal algorithm scheme in the five-letter alphabet &amp;lt;math&amp;gt;|*abc&amp;lt;/math&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
: &amp;lt;math&amp;gt;\left\{\begin{matrix} |b&amp;amp;\to&amp;amp; ba|\\ ab&amp;amp;\to&amp;amp; ba\\ b&amp;amp;\to&amp;amp;\\ {*}|&amp;amp;\to&amp;amp; b*&amp;amp; \\ {*}&amp;amp;\to&amp;amp; c&amp;amp; \\&lt;br /&gt;
|c&amp;amp;\to&amp;amp; c\\ ac&amp;amp;\to&amp;amp; c|\\ c&amp;amp;\to\cdot\end{matrix}\right.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The process of applying the normal algorithm to an arbitrary string &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt; in the alphabet of this algorithm is a discrete sequence of elementary steps, consisting of the following. Let’s assume that &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt; is the word obtained in the previous step of the algorithm (or the original word &amp;lt;math&amp;gt;V&amp;lt;/math&amp;gt;, if the current step is the first). If of the substitution formulas there is no left-hand side which is included in the &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt;, then the algorithm terminates, and the result of its work is considered to be the string &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt;. Otherwise, the first of the substitution formulae whose left sides are included in &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt; is selected. If the substitution formula is of the form &amp;lt;math&amp;gt;L\to\cdot D&amp;lt;/math&amp;gt;, then out of all of possible representations of the string &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt; of the form &amp;lt;math&amp;gt;RLS&amp;lt;/math&amp;gt; (where &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;S&amp;lt;/math&amp;gt; are arbitrary strings) the one with the shortest &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; is chosen. Then the algorithm terminates and the result of its work is considered to be &amp;lt;math&amp;gt;RDS&amp;lt;/math&amp;gt;. However, if this substitution formula is of the form &amp;lt;math&amp;gt;L\to D&amp;lt;/math&amp;gt;, then out of all of the possible representations of the string &amp;lt;math&amp;gt;V&amp;#039;&amp;lt;/math&amp;gt; of the form of &amp;lt;math&amp;gt;RLS&amp;lt;/math&amp;gt; the one with the shortest &amp;lt;math&amp;gt;R&amp;lt;/math&amp;gt; is chosen, after which the string &amp;lt;math&amp;gt;RDS&amp;lt;/math&amp;gt; is considered to be the result of the current step, subject to further processing in the next step.&lt;br /&gt;
&lt;br /&gt;
For example, the process of applying the algorithm described above to the word &amp;lt;math&amp;gt;|*||&amp;lt;/math&amp;gt; results in the sequence of words &amp;lt;math&amp;gt;|b*|&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;ba|*|&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a|*|&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;a|b*&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;aba|*&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;baa|*&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;aa|*&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;aa|c&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;aac&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;ac|&amp;lt;/math&amp;gt; and &amp;lt;math&amp;gt;c||&amp;lt;/math&amp;gt;, after which the algorithm stops with the result &amp;lt;math&amp;gt;||&amp;lt;/math&amp;gt;.    &lt;br /&gt;
&lt;br /&gt;
For other examples, see below.&lt;br /&gt;
&lt;br /&gt;
Any normal algorithm is equivalent to some [[Turing machine]], and vice versa{{snd}}any [[Turing machine]] is equivalent to some normal algorithm. A version of the [[Church–Turing thesis]] formulated in relation to the normal algorithm is called the &amp;quot;principle of normalization.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Normal algorithms have proved to be a convenient means for the construction of many sections of [[constructive mathematics]]. Moreover, inherent in the definition of a normal algorithm are a number of ideas used in programming languages aimed at handling symbolic information{{snd}}for example, in [[Refal]].&lt;br /&gt;
&lt;br /&gt;
==Algorithm==&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;Rules&amp;#039;&amp;#039; are a sequence of pairs of strings, usually presented in the form of &amp;#039;&amp;#039;pattern&amp;#039;&amp;#039; → &amp;#039;&amp;#039;replacement&amp;#039;&amp;#039;. Each rule may be either ordinary or terminating.&lt;br /&gt;
&lt;br /&gt;
Given an &amp;#039;&amp;#039;input&amp;#039;&amp;#039; string: &lt;br /&gt;
&lt;br /&gt;
#Check the Rules in order from top to bottom to see whether any of the &amp;#039;&amp;#039;patterns&amp;#039;&amp;#039; can be found in the &amp;#039;&amp;#039;input&amp;#039;&amp;#039; string.&lt;br /&gt;
#If none is found, the algorithm stops.&lt;br /&gt;
#If one (or more) is found, use &amp;#039;&amp;#039;&amp;#039;the first&amp;#039;&amp;#039;&amp;#039; of them to replace the leftmost occurrence of matched text in the &amp;#039;&amp;#039;input&amp;#039;&amp;#039; string with its &amp;#039;&amp;#039;replacement&amp;#039;&amp;#039;.&lt;br /&gt;
#If the rule just applied was a terminating one, the algorithm stops.&lt;br /&gt;
#Go to step 1.&lt;br /&gt;
&lt;br /&gt;
Note that after each rule application the search starts over from the first rule.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
The following example shows the basic operation of a Markov algorithm.&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
#&amp;quot;A&amp;quot; -&amp;gt; &amp;quot;apple&amp;quot;&lt;br /&gt;
#&amp;quot;B&amp;quot; -&amp;gt; &amp;quot;bag&amp;quot;&lt;br /&gt;
#&amp;quot;S&amp;quot; -&amp;gt; &amp;quot;shop&amp;quot;&lt;br /&gt;
#&amp;quot;T&amp;quot; -&amp;gt; &amp;quot;the&amp;quot;&lt;br /&gt;
#&amp;quot;the shop&amp;quot; -&amp;gt; &amp;quot;my brother&amp;quot;&lt;br /&gt;
#&amp;quot;a never used&amp;quot; -&amp;gt; &amp;#039;&amp;#039;&amp;#039;.&amp;#039;&amp;#039;&amp;#039;&amp;quot;terminating rule&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Symbol string===&lt;br /&gt;
&amp;quot;I bought a B of As from T S.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Execution===&lt;br /&gt;
If the algorithm is applied to the above example, the Symbol string will change in the following manner.&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;I bought a B of As from T S.&amp;quot;&lt;br /&gt;
#&amp;quot;I bought a B of apples from T S.&amp;quot;&lt;br /&gt;
#&amp;quot;I bought a bag of apples from T S.&amp;quot;&lt;br /&gt;
#&amp;quot;I bought a bag of apples from T shop.&amp;quot;&lt;br /&gt;
#&amp;quot;I bought a bag of apples from the shop.&amp;quot;&lt;br /&gt;
#&amp;quot;I bought a bag of apples from my brother.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
The algorithm will then terminate.&lt;br /&gt;
&lt;br /&gt;
==Another example==&lt;br /&gt;
&lt;br /&gt;
These rules give a more interesting example. They rewrite binary numbers to their unary counterparts. For example, 101 will be rewritten to a string of 5 consecutive bars.&lt;br /&gt;
&lt;br /&gt;
===Rules===&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;|0&amp;quot; -&amp;gt; &amp;quot;0||&amp;quot;&lt;br /&gt;
#&amp;quot;1&amp;quot; -&amp;gt; &amp;quot;0|&amp;quot;&lt;br /&gt;
#&amp;quot;0&amp;quot; -&amp;gt; &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Symbol string===&lt;br /&gt;
&amp;quot;101&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Execution===&lt;br /&gt;
If the algorithm is applied to the above example, it will terminate after the following steps.&lt;br /&gt;
&lt;br /&gt;
#&amp;quot;101&amp;quot;&lt;br /&gt;
#&amp;quot;0|01&amp;quot;&lt;br /&gt;
#&amp;quot;00||1&amp;quot;&lt;br /&gt;
#&amp;quot;00||0|&amp;quot;&lt;br /&gt;
#&amp;quot;00|0|||&amp;quot;&lt;br /&gt;
#&amp;quot;000|||||&amp;quot;&lt;br /&gt;
#&amp;quot;00|||||&amp;quot;&lt;br /&gt;
#&amp;quot;0|||||&amp;quot;&lt;br /&gt;
#&amp;quot;|||||&amp;quot;&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
* [[Formal grammar]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
* Caracciolo di Forino, A. &amp;#039;&amp;#039;String processing languages and generalized Markov algorithms.&amp;#039;&amp;#039; In Symbol manipulation languages and techniques, D. G. Bobrow (Ed.), North-Holland Publ. Co., Amsterdam, the Netherlands, 1968, pp.&amp;amp;nbsp;191–206.&lt;br /&gt;
* [[Andrey Markov (Soviet mathematician)|Andrey Andreevich Markov (1903-1979)]] 1960. &amp;#039;&amp;#039;The Theory of Algorithms.&amp;#039;&amp;#039; American Mathematical Society Translations, series 2, 15, 1-14. (Translation from the Russian, Trudy Instituta im. Steklova 38 (1951) 176-189&amp;lt;ref&amp;gt;{{Cite journal |last=Kushner |first=Boris A. |date=1999-05-28 |title=Markov&amp;#039;s constructive analysis; a participant&amp;#039;s view |url=https://core.ac.uk/works/41825477 |journal=Theoretical Computer Science |language=en |volume=219 |issue=1–2 |pages=268, 284 |doi=10.1016/S0304-3975(98)00291-6|doi-access=free }}&amp;lt;/ref&amp;gt;)&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [https://yad-studio.github.io/ Yad Studio - Markov algorithms IDE and interpreter (Open Source)]&lt;br /&gt;
* [http://sourceforge.net/projects/markov  Markov algorithm interpreter]&lt;br /&gt;
* [https://web.archive.org/web/20060217113205/http://nic-nac-project.de/~jcm/index.php?nav=projects Markov algorithm interpreter]&lt;br /&gt;
* [http://rosettacode.org/wiki/Execute_a_Markov_algorithm Markov algorithm interpreters at Rosetta-Code]&lt;br /&gt;
* [https://store.steampowered.com/app/1720850/AB/ A=B, a game about writing substitution rules for a Markov algorithm]&lt;br /&gt;
&lt;br /&gt;
{{Strings}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Theory of computation]]&lt;br /&gt;
[[Category:Rewriting systems]]&lt;br /&gt;
[[Category:Models of computation]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Xleviator</name></author>
	</entry>
</feed>