<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>keeping simple &#187; automata</title>
	<atom:link href="http://www.yodaiken.com/tag/automata/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yodaiken.com</link>
	<description>Systems software technology and business</description>
	<lastBuildDate>Tue, 29 Jun 2010 00:09:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Process algebra reconsidered</title>
		<link>http://www.yodaiken.com/2010/05/process-algebra-reconsidered/</link>
		<comments>http://www.yodaiken.com/2010/05/process-algebra-reconsidered/#comments</comments>
		<pubDate>Fri, 07 May 2010 16:23:52 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[milner]]></category>
		<category><![CDATA[non-determinism]]></category>
		<category><![CDATA[process algebra]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=958</guid>
		<description><![CDATA[Paper is here. The following incorrect claim is not unusual in the process algebra literature. Basically, what is missing [in classical automata theory] is the notion of interaction: during the execution from initial state to final state, a system may interact with another system. This is needed in order to describe parallel or distributed systems, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yodaiken.com/papers/processalgebra.pdf" target="_blank">Paper is here.</a><br />
The following incorrect claim is not unusual in the process algebra literature.</p>
<blockquote><p>Basically, what is missing [in classical automata theory] is the notion of interaction: during the execution from initial state to final state, a system may interact with another system. This is needed in order to describe parallel or distributed systems, or so-called reactive systems. When dealing with interacting systems, we say we are doing concurrency theory, so concurrency theory is the theory of interacting, parallel and/or distributed systems.[Bae05]</p></blockquote>
<p>Actually a sophisticated notion of state machine product was developed for representing composition of &#8220;interacting&#8221; state machines starting in the 1950s[HS66]. A general survey can be found in a monograph by Gecseg[Gec86], Domosi provides a more modern, more algebraic treatment [DN04] and [Yod09] provides practical techniques for construction of complex products.<br />
[...]<br />
The reader familiar with the process algebra literature will note that such an effort must find a way to model the non-determinism that is so fundamental to the process algebra world-view. Since deterministic programs are used to produce pseudo-random number sequences and to model Brownian motion and even the stock market (perhaps not the best example at this date) the problem is easier to solve than it appears at first. Section 4 will include a short discussion on the difference between &#8220;real&#8221; non-determinism and simulated non-determinism, but certainly there is nothing in the basic axiom set of Milner&#8217;s original process algebra that notices this distinction as far as I can see.</p>
<p><a href="../papers/processalgebra.pdf" target="_blank">To read more see the paper.</a></p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F&amp;title=Process+algebra+reconsidered" title="Bookmark this post : Process algebra reconsidered on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F_amp_title=Process+algebra+reconsidered&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F&amp;title=Process+algebra+reconsidered&amp;bodytext=Paper+is+here.%0D%0AThe+following+incorrect+claim+is+not+unusual+in+the+process+algebra+literature.%0D%0ABasically%2C+what+is+missing+%5Bin+classical+automata+theory%5D+is+the+notion+of+interaction%3A+during+the+execution+from+initial+state+to+fi%0Cnal+state%2C+a+system+may+interact+with+another+system.+This+is+needed+in+order+to+describe" title="Digg this post : Process algebra reconsidered" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F_amp_title=Process+algebra+reconsidered_amp_bodytext=Paper+is+here._0D_0AThe+following+incorrect+claim+is+not+unusual+in+the+process+algebra+literature._0D_0ABasically_2C+what+is+missing+_5Bin+classical+automata+theory_5D+is+the+notion+of+interaction_3A+during+the+execution+from+initial+state+to+fi_0Cnal+state_2C+a+system+may+interact+with+another+system.+This+is+needed+in+order+to+describe&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F&amp;t=Process+algebra+reconsidered" title="Recommend this post : Process algebra reconsidered on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F_amp_t=Process+algebra+reconsidered&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F&amp;title=Process+algebra+reconsidered&amp;&amp;summary=" title="Share this post : Process algebra reconsidered on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F_amp_title=Process+algebra+reconsidered_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F&amp;title=Process+algebra+reconsidered" title="Share this post : Process algebra reconsidered on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F_amp_title=Process+algebra+reconsidered&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F05%2Fprocess-algebra-reconsidered%2F" title="Tweet this post : Process algebra reconsidered on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F05_2Fprocess-algebra-reconsidered_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/05/process-algebra-reconsidered/feed" title="Follow this post : Process algebra reconsidered comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/05/process-algebra-reconsidered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Queues and algebra</title>
		<link>http://www.yodaiken.com/2010/02/queues-and-algebra/</link>
		<comments>http://www.yodaiken.com/2010/02/queues-and-algebra/#comments</comments>
		<pubDate>Mon, 01 Mar 2010 02:00:15 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[fault tolerance]]></category>
		<category><![CDATA[group]]></category>
		<category><![CDATA[monoid]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=837</guid>
		<description><![CDATA[Suppose we have a state machine Q, that implements a common first in first out queue. The input alphabet of Q consists of &#8220;Deq&#8221; and &#8220;Enq x&#8221; where &#8220;x&#8221; ranges over a set of values, say, V. Let&#8217;s fix the max length of Q at some constant k. As usual, given a sequence of events [...]]]></description>
			<content:encoded><![CDATA[<p>Suppose we have a state machine Q, that implements a common first in first out queue. The input alphabet of Q consists of &#8220;Deq&#8221; and &#8220;Enq x&#8221; where &#8220;x&#8221; ranges over a set of values, say, V. Let&#8217;s fix the max length of Q at some constant k. As usual, given a sequence of events &#8220;w&#8221;, write Q(w) for the output of Q in the state reached by following &#8220;w&#8221; from the initial state. For the empty string NULL, define Q(NULL)=(). If a=Deq then define Q(wa) depending on Q(w) &#8211; if Q(w)=() or Q(w)=(x) then Q(wa)=(). If Q(w)=(x1 .. xn) then define Q(wa)=( x1 &#8230;). If a=Enq x then if Q(w)=() define Q(wa)=(x), if Q(w)=(x1 .. xn) where n&lt;k define Q(wa)=(x,x1 &#8230; xn) and otherwise leave Q(wa)=Q(w). The number of states of Q is a function of the number of elements of V and the constant k and grows rapidly as they grow &#8211; sum[i=1, k](|V|^i  ).</p>
<p><a href="http://www.yodaiken.com/wp-content/uploads/2010/02/queue-sm.png"><img class="alignleft size-full wp-image-839" title="queue sm" src="http://www.yodaiken.com/wp-content/uploads/2010/02/queue-sm.png" alt="" width="354" height="259" /></a>If you visualize the graph of Q, you can see it contains non-trivial loops &#8211; which means that the monoid associated with Q contains groups. The advantage of decomposing Q into a product of smaller machines is that this might guide a smarter implementation. Well, I&#8217;m kind of cheating here, because programmers have found a variety of smart implementations that do strip out the group structure.</p>
<p>The easy decomposition produces two counters, and a collection of k storage elements that are loop free state machines: an input &#8220;store x&#8221; moves the machine to a &#8220;x&#8221; state. They do contain loops but only trivial ones. The counters are group machines. We number the storage cells 0 to k-1.  We can have one mod k counter that &#8220;points&#8221; to the tail of the queue and one that counts the size of the queue. On an enq operation the enqueued value is stored in the storage element identified by subtracting the size from the tail mod k,   and the size is increment mod k+1. An enq operation when the size=k is ignored and has no effect. On a deq, the size is decremented and the tail is incremented by one mod k+1.<a href="http://www.yodaiken.com/wp-content/uploads/2010/02/queueheadtail1.png"><img class="alignright size-medium wp-image-841" title="queueheadtail" src="http://www.yodaiken.com/wp-content/uploads/2010/02/queueheadtail1-300x147.png" alt="" width="300" height="147" /></a> What we&#8217;ve done is construct a system in which the state machine monoids are two cyclic groups and k-aperiodic monoids. If we then switch to more complicated data structures, like ordered lists, it&#8217;s not that hard to see how a permutation group might be used to manipulate pointers to a pile of storage locations. For example (n1,n2,n3,n4,blank, n5,n6) might be an ordered list with n5 and n6 being free. An enqueue would generate some shuffle to say, (n1,n2,n5,n3,n4,blank,n6) and then a dequeue would produce (n2,n5,n3,n4,blank, n6,n1).</p>
<p>A nice property of groups is that &#8220;undo&#8221; always works. So if the data in the storage elements can be marked in some way, a deq or enq can be undone by subtracting mod k or permuting backwards.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra" title="Bookmark this post : Queues and algebra on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra&amp;bodytext=Suppose+we+have+a+state+machine+Q%2C+that+implements+a+common+first+in+first+out+queue.+The+input+alphabet+of+Q+consists+of+%22Deq%22+and+%22Enq+x%22+where+%22x%22+ranges+over+a+set+of+values%2C+say%2C+V.+Let%27s+fix+the+max+length+of+Q+at+some+constant+k.+As+usual%2C+given+a+sequence+of+events+%22w%22%2C+write+Q%28w%29+for+the+output+of+Q+in+the+sta" title="Digg this post : Queues and algebra" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra_amp_bodytext=Suppose+we+have+a+state+machine+Q_2C+that+implements+a+common+first+in+first+out+queue.+The+input+alphabet+of+Q+consists+of+_22Deq_22+and+_22Enq+x_22+where+_22x_22+ranges+over+a+set+of+values_2C+say_2C+V.+Let_27s+fix+the+max+length+of+Q+at+some+constant+k.+As+usual_2C+given+a+sequence+of+events+_22w_22_2C+write+Q_28w_29+for+the+output+of+Q+in+the+sta&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;t=Queues+and+algebra" title="Recommend this post : Queues and algebra on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_t=Queues+and+algebra&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra&amp;&amp;summary=" title="Share this post : Queues and algebra on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F&amp;title=Queues+and+algebra" title="Share this post : Queues and algebra on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F_amp_title=Queues+and+algebra&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fqueues-and-algebra%2F" title="Tweet this post : Queues and algebra on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fqueues-and-algebra_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/02/queues-and-algebra/feed" title="Follow this post : Queues and algebra comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/02/queues-and-algebra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>simple lemma about pipelines</title>
		<link>http://www.yodaiken.com/2010/02/simple-lemma-about-pipelines/</link>
		<comments>http://www.yodaiken.com/2010/02/simple-lemma-about-pipelines/#comments</comments>
		<pubDate>Fri, 26 Feb 2010 01:23:42 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software engineering]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[monoids]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=815</guid>
		<description><![CDATA[The connection between group structure and pipeline design seems like it merits a lot more attention than it gets. It&#8217;s not too hard to show that in a pipeline like the one to the right, the induced monoid of M1 must be a homomorphic image of the composite state machine. This immediately brings in the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yodaiken.com/wp-content/uploads/2010/02/pipeline1.png"><img class="alignright size-full wp-image-819" title="pipeline" src="http://www.yodaiken.com/wp-content/uploads/2010/02/pipeline1.png" alt="" width="271" height="132" /></a></p>
<p>The connection between group structure and pipeline design seems like it merits a lot more attention than it gets. It&#8217;s not too hard to show that in a pipeline like the one to the right, the induced monoid of M1 must be a homomorphic image of the composite state machine. This immediately brings in the limiting factors of simple groups.</p>
<p>KR theory is too vague though. For example, I&#8217;d like to know something about the relationship of M and M&#8217; in the case that the induced monoids are isomorphic. They definitely do not have to be the same, but seems like they should be similar enough so that changing the output map would equalize.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F&amp;title=simple+lemma+about+pipelines" title="Bookmark this post : simple lemma about pipelines on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F_amp_title=simple+lemma+about+pipelines&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F&amp;title=simple+lemma+about+pipelines&amp;bodytext=%0D%0A%0D%0AThe+connection+between+group+structure+and+pipeline+design+seems+like+it+merits+a+lot+more+attention+than+it+gets.+It%27s+not+too+hard+to+show+that+in+a+pipeline+like+the+one+to+the+right%2C+the+induced+monoid+of+M1+must+be+a+homomorphic+image+of+the+composite+state+machine.+This+immediately+brings+in+the+limiting+fact" title="Digg this post : simple lemma about pipelines" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F_amp_title=simple+lemma+about+pipelines_amp_bodytext=_0D_0A_0D_0AThe+connection+between+group+structure+and+pipeline+design+seems+like+it+merits+a+lot+more+attention+than+it+gets.+It_27s+not+too+hard+to+show+that+in+a+pipeline+like+the+one+to+the+right_2C+the+induced+monoid+of+M1+must+be+a+homomorphic+image+of+the+composite+state+machine.+This+immediately+brings+in+the+limiting+fact&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F&amp;t=simple+lemma+about+pipelines" title="Recommend this post : simple lemma about pipelines on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F_amp_t=simple+lemma+about+pipelines&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F&amp;title=simple+lemma+about+pipelines&amp;&amp;summary=" title="Share this post : simple lemma about pipelines on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F_amp_title=simple+lemma+about+pipelines_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F&amp;title=simple+lemma+about+pipelines" title="Share this post : simple lemma about pipelines on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F_amp_title=simple+lemma+about+pipelines&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2010%2F02%2Fsimple-lemma-about-pipelines%2F" title="Tweet this post : simple lemma about pipelines on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2010_2F02_2Fsimple-lemma-about-pipelines_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2010/02/simple-lemma-about-pipelines/feed" title="Follow this post : simple lemma about pipelines comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/02/simple-lemma-about-pipelines/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Process Algebra and classical automata</title>
		<link>http://www.yodaiken.com/2009/11/process-algebra-and-classical-automata/</link>
		<comments>http://www.yodaiken.com/2009/11/process-algebra-and-classical-automata/#comments</comments>
		<pubDate>Sun, 01 Nov 2009 19:25:36 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software engineering]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[automata products]]></category>
		<category><![CDATA[classical automata]]></category>
		<category><![CDATA[milner]]></category>
		<category><![CDATA[process algebra]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=539</guid>
		<description><![CDATA[The long awaited process algebra paper is now finally available in PDF Reducing Process Algebra. Bookmark on Delicious Digg this post Recommend on Facebook Share on Linkedin share via Reddit Tweet about it Subscribe to the comments on this post]]></description>
			<content:encoded><![CDATA[<p>The long awaited process algebra paper is now finally available in PDF</p>
<p><a href="http://www.yodaiken.com/papers/processalgebra.pdf">Reducing Process Algebra</a>.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F&amp;title=Process+Algebra+and+classical+automata" title="Bookmark this post : Process Algebra and classical automata on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F_amp_title=Process+Algebra+and+classical+automata&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F&amp;title=Process+Algebra+and+classical+automata&amp;bodytext=The+long+awaited+process+algebra+paper+is+now+finally+available+in+PDF%0D%0A%0D%0AReducing+Process+Algebra." title="Digg this post : Process Algebra and classical automata" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F_amp_title=Process+Algebra+and+classical+automata_amp_bodytext=The+long+awaited+process+algebra+paper+is+now+finally+available+in+PDF_0D_0A_0D_0AReducing+Process+Algebra.&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F&amp;t=Process+Algebra+and+classical+automata" title="Recommend this post : Process Algebra and classical automata on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F_amp_t=Process+Algebra+and+classical+automata&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F&amp;title=Process+Algebra+and+classical+automata&amp;&amp;summary=" title="Share this post : Process Algebra and classical automata on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F_amp_title=Process+Algebra+and+classical+automata_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F&amp;title=Process+Algebra+and+classical+automata" title="Share this post : Process Algebra and classical automata on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F_amp_title=Process+Algebra+and+classical+automata&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F11%2Fprocess-algebra-and-classical-automata%2F" title="Tweet this post : Process Algebra and classical automata on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F11_2Fprocess-algebra-and-classical-automata_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/11/process-algebra-and-classical-automata/feed" title="Follow this post : Process Algebra and classical automata comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/11/process-algebra-and-classical-automata/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Process algebra (updated)</title>
		<link>http://www.yodaiken.com/2009/07/process-algebra/</link>
		<comments>http://www.yodaiken.com/2009/07/process-algebra/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 01:32:41 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[critique of process algebra]]></category>
		<category><![CDATA[process algebra]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=481</guid>
		<description><![CDATA[The first part of a critique of process algebra is below.Â  This relates to the Recursion and State paper and explicatory blog entry where I show how to compose classical automata and define them &#8220;abstractly&#8221; and to a complaint about the weak critique of automata theory in standard process algebra literature and also to a [...]]]></description>
			<content:encoded><![CDATA[<p>The first part of a critique of process algebra is<a title="critique of process algebra" href="http://www.yodaiken.com/papers-and-talks/failure-to-communicate-process-algebras-draft/" target="_blank"> below</a>.Â  This relates to the Recursion and State <a title="Recursion and State" href="http://www.yodaiken.com/papers/randstatearchiv.pdf" target="_blank">paper</a> and explicatory<a href="http://www.yodaiken.com/papers-and-talks/recursion-and-state/" target="_self"> blog entry</a> where I show how to compose classical automata and define them &#8220;abstractly&#8221; and to a <a href="http://www.yodaiken.com/2009/07/robin-milner-and-automata-theory/" target="_blank">complaint </a>about the weak critique of automata theory in standard process algebra literature and also to a <a href="http://www.yodaiken.com/2009/07/the-source-of-error/">remark</a> about Dijkstra&#8217;s error. Â  There are other parts of it scattered around in some recent posts and some other issues that need to be raised, but the basic argument is in place.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F&amp;title=Process+algebra+%28updated%29" title="Bookmark this post : Process algebra (updated) on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F_amp_title=Process+algebra+_28updated_29&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F&amp;title=Process+algebra+%28updated%29&amp;bodytext=The+first+part+of+a+critique+of+process+algebra+is+below.%C3%82%C2%A0+This+relates+to+the+Recursion+and+State+paper+and+explicatory+blog+entry+where+I+show+how+to+compose+classical+automata+and+define+them+%22abstractly%22+and+to+a+complaint+about+the+weak+critique+of+automata+theory+in+standard+process+algebra+literature+and+also" title="Digg this post : Process algebra (updated)" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F_amp_title=Process+algebra+_28updated_29_amp_bodytext=The+first+part+of+a+critique+of+process+algebra+is+below._C3_82_C2_A0+This+relates+to+the+Recursion+and+State+paper+and+explicatory+blog+entry+where+I+show+how+to+compose+classical+automata+and+define+them+_22abstractly_22+and+to+a+complaint+about+the+weak+critique+of+automata+theory+in+standard+process+algebra+literature+and+also&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F&amp;t=Process+algebra+%28updated%29" title="Recommend this post : Process algebra (updated) on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F_amp_t=Process+algebra+_28updated_29&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F&amp;title=Process+algebra+%28updated%29&amp;&amp;summary=" title="Share this post : Process algebra (updated) on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F_amp_title=Process+algebra+_28updated_29_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F&amp;title=Process+algebra+%28updated%29" title="Share this post : Process algebra (updated) on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F_amp_title=Process+algebra+_28updated_29&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fprocess-algebra%2F" title="Tweet this post : Process algebra (updated) on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fprocess-algebra_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/07/process-algebra/feed" title="Follow this post : Process algebra (updated) comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/07/process-algebra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The source of  error (updated)</title>
		<link>http://www.yodaiken.com/2009/07/the-source-of-error/</link>
		<comments>http://www.yodaiken.com/2009/07/the-source-of-error/#comments</comments>
		<pubDate>Wed, 08 Jul 2009 05:10:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[axiomatic methods]]></category>
		<category><![CDATA[dijkstra]]></category>
		<category><![CDATA[formal methods]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=451</guid>
		<description><![CDATA[Here&#8217;s Edsger Dijkstra discussing the birth of the use of axiomatics in computer science &#8211; the start of &#8220;formal methods&#8221; research.Â  What&#8217;s striking is the assumed choice between &#8220;axiomatic&#8221; and &#8220;mechanistic&#8221; as if there was no other way. In a later note he writes: And now we are back at our old dilemma. Either we [...]]]></description>
			<content:encoded><![CDATA[<p><a title="dijsstra letter" href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD04xx/EWD454.html" target="_self" onclick="pageTracker._trackPageview('/outgoing/www.cs.utexas.edu/_EWD/transcriptions/EWD04xx/EWD454.html?referer=');">Here&#8217;s </a>Edsger Dijkstra discussing the birth of the use of axiomatics in computer science &#8211; the start of &#8220;formal methods&#8221; research.Â  What&#8217;s striking is the assumed choice between &#8220;axiomatic&#8221; and &#8220;mechanistic&#8221; as if there was no other way. In a <a title="dijsstra letter2" href="http://www.cs.utexas.edu/~EWD/transcriptions/EWD04xx/EWD463.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.cs.utexas.edu/_EWD/transcriptions/EWD04xx/EWD463.html?referer=');">later note</a> he writes:</p>
<blockquote><p><span style="color: #800000;">And now we are back at our old dilemma. Either we take by definition all properties of the model as relevant, or we specify in one way or another which of its properties are the relevant ones. In the first case we have failed to introduce in the name of &#8220;divide et impera&#8221; an interface that would allow us to divide and rule and the study of how we could build upon the (only implicitly defined) interface seems bound to deteriorate into a study of the model itself; in the second case we are again close to the axiomatic method&#8230;.</span></p>
<p><span style="color: #800000;">[...]<br />
</span></p>
<p><span style="color: #800000;">Or, to put it in another way: if the traditional automata theory tends to make us insensitive to the role interfaces could and should play in coping with complex designs, should it then (continue to) occupy a central position in computing science curricula?</span></p></blockquote>
<p>And I&#8217;m struck by the ideaÂ  that seems utterly wrong to me, that one either uses the methods of formal logic OR one is stuck without any ability to abstract or underspecify</p>
<blockquote><p><em>The reason mathematics has advanced so much was not because of the Euclidean axioms-lemma-theorem straitjacket, but </em><em>in spite</em> of it. Luckily, when we actually discover mathematics, we do it the Babylonian way, empirically and algorithmically. It is only when it is time to present it, that we put on the stifling Greek formal attire.</p></blockquote>
<p>so says <a href="http://www.math.rutgers.edu/%7Ezeilberg/Opinion43.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.math.rutgers.edu/_7Ezeilberg/Opinion43.html?referer=');">Doron Zeilberger </a></p>
<p>UPDATE: I have a draft of the &#8220;<a title="note on process algebra" href="http://www.yodaiken.com/failure-to-communicate-process-algebras-draft/" target="_blank">process algebras considered harmful</a>&#8221; note up.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F&amp;title=The+source+of++error+%28updated%29" title="Bookmark this post : The source of  error (updated) on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F_amp_title=The+source+of++error+_28updated_29&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F&amp;title=The+source+of++error+%28updated%29&amp;bodytext=Here%27s+Edsger+Dijkstra+discussing+the+birth+of+the+use+of+axiomatics+in+computer+science+-+the+start+of+%22formal+methods%22+research.%C3%82%C2%A0+What%27s+striking+is+the+assumed+choice+between+%22axiomatic%22+and+%22mechanistic%22+as+if+there+was+no+other+way.+In+a+later+note+he+writes%3A%0D%0AAnd+now+we+are+back+at+our+old+dilemma.+Either+we+t" title="Digg this post : The source of  error (updated)" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F_amp_title=The+source+of++error+_28updated_29_amp_bodytext=Here_27s+Edsger+Dijkstra+discussing+the+birth+of+the+use+of+axiomatics+in+computer+science+-+the+start+of+_22formal+methods_22+research._C3_82_C2_A0+What_27s+striking+is+the+assumed+choice+between+_22axiomatic_22+and+_22mechanistic_22+as+if+there+was+no+other+way.+In+a+later+note+he+writes_3A_0D_0AAnd+now+we+are+back+at+our+old+dilemma.+Either+we+t&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F&amp;t=The+source+of++error+%28updated%29" title="Recommend this post : The source of  error (updated) on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F_amp_t=The+source+of++error+_28updated_29&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F&amp;title=The+source+of++error+%28updated%29&amp;&amp;summary=" title="Share this post : The source of  error (updated) on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F_amp_title=The+source+of++error+_28updated_29_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F&amp;title=The+source+of++error+%28updated%29" title="Share this post : The source of  error (updated) on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F_amp_title=The+source+of++error+_28updated_29&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Fthe-source-of-error%2F" title="Tweet this post : The source of  error (updated) on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Fthe-source-of-error_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/07/the-source-of-error/feed" title="Follow this post : The source of  error (updated) comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/07/the-source-of-error/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursion and state</title>
		<link>http://www.yodaiken.com/2009/07/recursion-and-state/</link>
		<comments>http://www.yodaiken.com/2009/07/recursion-and-state/#comments</comments>
		<pubDate>Thu, 02 Jul 2009 21:32:40 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[automata]]></category>
		<category><![CDATA[formal methods]]></category>
		<category><![CDATA[moore machines]]></category>
		<category><![CDATA[state machines]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=351</guid>
		<description><![CDATA[Despite some deep results, algebraic automata theory has fallen out of favor in theoretical computer science. Reasons include the disciplines failings such as a love of over-generality, weak mathematical background of people working on &#8220;formal methods&#8221;, and gap between theoreticians and engineers. But perhaps the key reason is that traditional state machine presentations in terms [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-medium wp-image-352" style="margin-left: 10px; margin-right: 10px;" title="automata 071" src="http://www.yodaiken.com/wp-content/uploads/2009/07/automata-071-225x300.jpg" alt="automata 071" width="183" height="243" /> Despite some deep results, algebraic automata theory has fallen out of favor in theoretical computer science. Reasons include the disciplines failings such as a love of over-generality, weak mathematical background of people working on &#8220;formal methods&#8221;, and gap between theoreticians and engineers. But perhaps the key reason is that traditional state machine presentations in terms of state sets and transition maps are awkward and carry too much irrelevant information.</p>
<p>The standard presentation of a Moore machine isÂ  M=(A,X,S,st,Î´,Î³)Â  whereÂ  &#8220;A&#8221; is the alphabet of events, &#8220;X&#8221; is the set of outputs, &#8220;st&#8221; is the start state,Â  Î´:S x Aâ†’ S is the transition function and Î³:S â†’ X is the output function.Â  ButÂ  we really don&#8217;t care about the state set in all but the simplest state machines. Interesting systems have ridiculously large numbers of states.Â  Names of states don&#8217;t matter.Â  Extra states don&#8217;t matter. Suppose &#8220;s&#8221; is an element of &#8220;S&#8221; that is unreachable &#8211; no sequence of inputs will drive M to &#8220;s&#8221; from &#8220;st&#8221;. In that case what difference does removing &#8220;s&#8221; from &#8220;S&#8221; make? Or suppose <em>s</em> and<em> s&#8217;</em> are both reachable but not only is <em>Î³(s)=Î³(s&#8217;) </em>but for any sequence of inputs that can drive the machine from <em>s</em> to a new state, the output of that new state is identical to the output of the state reached by following the same sequence of inputs from<em> s&#8217;</em>.Â  In that case, we could simplify S and Î´ by removing one of the duplicative states and merging paths.</p>
<p>What&#8217;s more interesting is to consider what output a Moore machine will produce from a sequence of inputs: thinking of the Moore machine as a map from input <strong>strings</strong> to outputs. This isÂ  a function that can be constructed by primitive recursion on strings.Â  First, extend Î´ to strings to define a new function Î”. TheÂ Â  empty string that has zero length doesn&#8217;t cause any state change Î”(s,empty)=sÂ Â  and if &#8220;w&#8221; is a string and &#8220;wa&#8221; is the string obtained by appending &#8220;a&#8221; to &#8220;w&#8221;, then Î”(s,wa)= Î´(Î”(s,w),a).Â  DefineÂ  M*(w) = Î³(Î”(st,w)). The idea is that M*(w) is the output produced by M in the state reached by following &#8220;w&#8221; from the initial state.Â  If you look at M* you see it contains all the interesting information in M -Â  because the names of states and unreachable states and duplicate states are not interesting. In fact in the 1950s Myhill and Nerode described how to generate a state machine (not necessarily a finite state one) from any function on the set of strings over an alphabet.<img class="alignright size-medium wp-image-360" title="milenr 001" src="http://www.yodaiken.com/wp-content/uploads/2009/07/milenr-001-300x230.png" alt="milenr 001" width="300" height="230" /></p>
<p>These functions are much more useful in describing complex state systems than are Moore machines &#8211; not least because they can be partially specified when we don&#8217;t know or care about all the possible behaviors of the system and because they can be composed in a way to represent any interconnection.</p>
<p>In the next post, I&#8217;m going to discuss composition of message passing processes and compare to the &#8220;formal methods&#8221; approach which is based on the incorrect assumption that automata need to be &#8220;enhanced&#8221; in some way and that replaces automata with things that have very little mathematical structure at all.</p>
<ul class="socialwrap size16 row">
<li class="iconOnly"><a rel="nofollow" target="_blank" class="delicious" href="http://delicious.com/post?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F&amp;title=Recursion+and+state" title="Bookmark this post : Recursion and state on Delicious" onclick="pageTracker._trackPageview('/outgoing/delicious.com/post?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F_amp_title=Recursion+and+state&amp;referer=');"><span class="head">Bookmark on Delicious</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="digg" href="http://digg.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F&amp;title=Recursion+and+state&amp;bodytext=+Despite+some+deep+results%2C+algebraic+automata+theory+has+fallen+out+of+favor+in+theoretical+computer+science.+Reasons+include+the+disciplines+failings+such+as+a+love+of+over-generality%2C+weak+mathematical+background+of+people+working+on+%22formal+methods%22%2C+and+gap+between+theoreticians+and+engineers.+But+perhaps+the+key+" title="Digg this post : Recursion and state" onclick="pageTracker._trackPageview('/outgoing/digg.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F_amp_title=Recursion+and+state_amp_bodytext=+Despite+some+deep+results_2C+algebraic+automata+theory+has+fallen+out+of+favor+in+theoretical+computer+science.+Reasons+include+the+disciplines+failings+such+as+a+love+of+over-generality_2C+weak+mathematical+background+of+people+working+on+_22formal+methods_22_2C+and+gap+between+theoreticians+and+engineers.+But+perhaps+the+key+&amp;referer=');"><span class="head">Digg this post</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="facebook" href="http://www.facebook.com/sharer.php?u=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F&amp;t=Recursion+and+state" title="Recommend this post : Recursion and state on Facebook" onclick="pageTracker._trackPageview('/outgoing/www.facebook.com/sharer.php?u=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F_amp_t=Recursion+and+state&amp;referer=');"><span class="head">Recommend on Facebook</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="linkedin" href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F&amp;title=Recursion+and+state&amp;&amp;summary=" title="Share this post : Recursion and state on Linkedin" onclick="pageTracker._trackPageview('/outgoing/www.linkedin.com/shareArticle?mini=true_amp_url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F_amp_title=Recursion+and+state_amp_amp_summary=&amp;referer=');"><span class="head">Share on Linkedin</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="reddit" href="http://www.reddit.com/submit?url=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F&amp;title=Recursion+and+state" title="Share this post : Recursion and state on Reddit" onclick="pageTracker._trackPageview('/outgoing/www.reddit.com/submit?url=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F_amp_title=Recursion+and+state&amp;referer=');"><span class="head">share via Reddit</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="twitter" href="http://twitter.com/home/?status=http%3A%2F%2Fwww.yodaiken.com%2F2009%2F07%2Frecursion-and-state%2F" title="Tweet this post : Recursion and state on Twitter" onclick="pageTracker._trackPageview('/outgoing/twitter.com/home/?status=http_3A_2F_2Fwww.yodaiken.com_2F2009_2F07_2Frecursion-and-state_2F&amp;referer=');"><span class="head">Tweet about it</span></a></li>
<li class="iconOnly"><a rel="nofollow" target="_blank" class="rss" href="http://www.yodaiken.com/2009/07/recursion-and-state/feed" title="Follow this post : Recursion and state comments"><span class="head">Subscribe to the comments on this post</span></a></li>
</ul>
<div class="clean"></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/07/recursion-and-state/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
