<?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; specification</title>
	<atom:link href="http://www.yodaiken.com/category/theory/specification/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.yodaiken.com</link>
	<description>Systems software technology and business</description>
	<lastBuildDate>Sun, 01 Jan 2012 18:30:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</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 &#8230; <a href="http://www.yodaiken.com/2010/05/process-algebra-reconsidered/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></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>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/05/process-algebra-reconsidered/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More state diagrams</title>
		<link>http://www.yodaiken.com/2010/04/more-state-diagrams/</link>
		<comments>http://www.yodaiken.com/2010/04/more-state-diagrams/#comments</comments>
		<pubDate>Mon, 19 Apr 2010 04:27:07 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[software engineering]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[state machine diagrams]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=940</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<div id="attachment_941" class="wp-caption alignleft" style="width: 310px"><a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q5twopi.png"><img class="size-medium wp-image-941" title="q5twopi" src="http://www.yodaiken.com/wp-content/uploads/2010/04/q5twopi-300x262.png" alt="" width="300" height="262" /></a><p class="wp-caption-text">Length 5 queue </p></div>
<p><a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q5scatter.png"><img class="alignright size-full wp-image-942" title="q5scatter" src="http://www.yodaiken.com/wp-content/uploads/2010/04/q5scatter.png" alt="" width="300" height="262" /></a></p>
<div id="attachment_944" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.yodaiken.com/wp-content/uploads/2010/04/andgate.png"><img class="size-medium wp-image-944" title="andgate" src="http://www.yodaiken.com/wp-content/uploads/2010/04/andgate-300x237.png" alt="" width="300" height="237" /></a><p class="wp-caption-text">An and-gate with 2 state delay</p></div>
<div id="attachment_948" class="wp-caption alignleft" style="width: 310px"><a href="http://www.yodaiken.com/wp-content/uploads/2010/04/and5twopi.png"><img class="size-medium wp-image-948" title="and5twopi" src="http://www.yodaiken.com/wp-content/uploads/2010/04/and5twopi-300x280.png" alt="" width="300" height="280" /></a><p class="wp-caption-text">and gate delay 5 ATT TwoPi rendering</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/04/more-state-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>limits of state diagrams</title>
		<link>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/</link>
		<comments>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 04:53:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[academics]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=927</guid>
		<description><![CDATA[Here&#8217;s a graph of a simple state machine of somewhat under 512 states that models  a dumb fifo queue. The initial state is &#8220;e&#8221; for empty. We can append 1,2 or 3 to this queue and can delete the first &#8230; <a href="http://www.yodaiken.com/2010/04/limits-of-state-diagrams/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a graph of a simple state machine of somewhat under 512 states that models  a dumb fifo queue. The initial state is &#8220;e&#8221; for empty. We can append 1,2 or 3 to this queue and can delete the first in. To simplify suppose the alphabet is {0,1,2,3} where 0 means &#8220;dequeue&#8221;  and the others mean to enq the designated number. Enqueue to a full queue has no effect on state. Ok, the diagram is completely unreadable &#8211; but click on the PDF to the right. It&#8217;s still unreadable. This diagram, generated with ATT&#8217;s &#8220;dot&#8221; program could undoubtedly be improved, but it shows why state diagrams are just not making it as descriptions of complex systems &#8211; this system is far from complex.<br />
<a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q4-circle.png"><img class="alignleft size-medium wp-image-936" title="q4 circle" src="http://www.yodaiken.com/wp-content/uploads/2010/04/q4-circle-300x288.png" alt="" width="300" height="288" /></a><br />
<a href="http://www.yodaiken.com/wp-content/uploads/2010/04/q4statemachine.pdf">q4statemachine</a></p>
<p>To see the structure hidden in this diagram we have to look at it through algebra and programs.</p>
<div style="clear:all">&nbsp;</div>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/04/limits-of-state-diagrams/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More computer science as humbug [updated with Brazil dream sequence]</title>
		<link>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/</link>
		<comments>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/#comments</comments>
		<pubDate>Mon, 15 Mar 2010 23:12:02 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[academics]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[cav2010]]></category>
		<category><![CDATA[digital circuits]]></category>
		<category><![CDATA[state machines]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=863</guid>
		<description><![CDATA[Continuing my experiments in academic papers, I sent a paper on automata and circuit verification to CAV2010 (here&#8217;s an updated version with some corrections and better references). I actually got one carefully written and well informed review. Sending a paper &#8230; <a href="http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Continuing my experiments in academic papers, I sent a <a title="CAV" href="http://www.yodaiken.com/papers/cav2010a.pdf" target="_blank">paper on automata and circuit verification </a>to CAV2010 (here&#8217;s an <a href="http://www.yodaiken.com/papers/circuits.pdf">updated version </a>with some corrections and better references). I actually got one carefully written and well informed review. Sending a paper to an academic conference with no references more recent than 20 years, was probably more of a deliberate provocation than needed, but I&#8217;m still amazed at the low quality of the reviewing. First, it&#8217;s absurd and frankly shameful that so-called academics can make an unsupported claim that something is well known in the literature. One of the reviewers at CAV2010, was kind enough to write:</p>
<blockquote><p>There is nothing wrong with the approach described but I fail to see  that there is anything novel here either. Circuits have been modeled as  state machines since the 60s (e.g. Booth 67), there is a wealth of  literature on the correspondence between state machines, automata and  strings, and so forth. All of this has been done before, and more  completely.</p>
<p>I am sure that one could look in most computer science curricula and  find almost all of this material being taught at the undergraduate  level.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">I&#8217;m really embarrassed for the entire profession here. Of course circuits have been modeled as state machines &#8211; well before 1967 in fact. Booth&#8217;s 1967 book is one of innumerable surveys.  The paper showed an alternative way of representing state machines and illustrated their use on the time sensitive behavior of combinational circuits where they are not usually employed because the number of states is so great as to overwhelm standard methods.  The specific methods used in this papers, as far as I know, are not used elsewhere in the literature &#8211; and I still don&#8217;t know any different because the CAV2010 reviewer was unable to <a href="http://www.yodaiken.com/wp-content/uploads/2010/01/humbug_350x387.gif"><img class="alignright size-medium wp-image-657" title="humbug_350x387" src="http://www.yodaiken.com/wp-content/uploads/2010/01/humbug_350x387-271x300.gif" alt="" width="157" height="174" /></a>provide a reference. To me, this is a mark of humbug. Look, if you are going to tell some poor author that their work is retelling some well known tale, you should at the very least be able to point to the well known explications. </span> <span style="color: #000000;">Creditably enough, CAV2010 offers a rebuttal period for reviews: but even given a second chance, and an explicit request for a reference, both the author of the review and the program committee failed.  An assertion is made that the material is covered in &#8220;most computer science curricula&#8221; and when challenged, the assertion is just left as is. No wonder so much of academic computer science is mired in stale repetition of old material when basic standards of scientific rigor are discarded by the people who are supposed to be enforcing the rules. </span></span></p>
<p><span style="color: #800000;"><span style="color: #000000;">I don&#8217;t want to seem entirely ungrateful for the work of the reviewers: one of whom gave a perfectly rational and solid reason for rejecting the paper.</span></span></p>
<blockquote><p>Conclusion: an elegant paper, but doomed for CAV by lack of any attempt at automation or convincing evidence that automation of the methods described would be a scientific advance.</p></blockquote>
<p>I can&#8217;t really argue with that. The paper does not either describe automation or attempt to make an argument of why automation would succeed &#8211; although I am in no doubt about the second question. Perhaps the paper is not suitable by reason of the focus of the conference. But of 4 reviews, this reviewer was the only one who appeared to understand the material. One of the other reviewers actually responded to the rebuttal with this:</p>
<blockquote><p><span style="color: #800000;">About the KR theorem and feedback, an ordinary finite state automaton &#8220;encodes&#8221; implicitly the feedback information of the underlying sequential circuit in its states, so I would be surprised that the theorem is not applicable to digital circuits with feedback</span></p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Ok. The KR (Krohn-Rhodes) theory is based on a decomposition called <strong>&#8220;loop free&#8221;. </strong>Let me type that again <strong><span style="color: #ff00ff;">LOOP FREE</span></strong>.  The theory is concerned with the decomposition of state machines into pipelines where components can be ordered so that the output of component <em>i </em>depends only on the input to the system and the outputs of components<em> j&lt;i</em> . What I show in the paper is how to describe one of the simplest and most beautiful achievements of Computer Engineering, a SR-latch via the interconnection of state machines that represent logic gates. The SR-latch is constructed with <strong>cross-coupled </strong>gates where the output of each gate feeds back into the input of the other gate. When the output of gate G1 feeds into the input of gate G2 and the output of G2 feeds into the input of G1, we have what is known in the technical literature as a &#8220;loop&#8221;. While the reviewer would not be surprised if a loop-free product could be used to describe a loop,  the comment makes me doubt his/her grasp on the basics of the material </span></span>(BTW: the  identity of this reviewer is known to me, but I&#8217;ll leave to him/her to  respond or not).</p>
<p>One of the other reviewers included (among others) two comments  that I noted were wrong, but were not modified or defended.</p>
<blockquote><p>2. The term &#8220;propagation delay&#8221;: It seems that you blend different   concepts into this single term, namely the duration that an input   has to be held stable in order to be sure that it will be reflected   by the output and the latency of a circuit in forwarding such a   sufficiently stable input to its outputs. While your model, by   lumping together the two into a single latency, is a conservative   approximation of more detailed models, you may want to make sure   that your terminology is in accordance with accepted terminology.   it.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Here the reviewer apparently does not understand the difference between latch time and propagation delay. Have those definitions changed since I last looked at a digital circuits book? &#8220;<em>The propagation delay t_p of a signal path is the amount of time that is takes for a change in the input signal to produce a change in the output signal</em>&#8221; (Wakerly, 1990, P 76).</span><br />
</span></p>
<blockquote><p>3. The abstraction of your latch leaves the case (set,reset): (0,0) -&gt;   (1,1) unspecified, which is fine. You may, however, want to mention   this detail in the accompanying text.</p></blockquote>
<p><span style="color: #800000;"><span style="color: #000000;">Ah well, the second week of Digital Electronics II is not for everyone. &#8220;<em>However if we negate both inputs simultaneously, the latch goes into an unpredictable next state and it may in fact oscillate or enter the metastable state.</em>&#8221; (Wakerly 1990 P355). See it&#8217;s really not so hard to provide a citation.</span></span></p>
<p>There&#8217;s actually a lot more to ridicule in these reviews &#8211; I&#8217;ll post more on request, but I do want to look at one more comment from Reviewer4.</p>
<blockquote><p>I still believe that this paper lacks motivation and new results for being accepted. As the author says himself, the paper is about a technique for specifying automata, and I am not convinced why not doing it directly with automata, using standard and well-studied techniques. For instance, given that the propagation delays of the gates are modeled using discrete time, why embedding them directly into the definition of gates (even underspecified), instead of modelling them directly with I/O finite state machines (or sequential circuits with feedback)?</p></blockquote>
<p>It&#8217;s not at all clear to me what  modeling a gate as a sequential circuit with feedback even means. In terms of digital circuit engineering, a gate is a combinational circuit, not a sequential circuit. The cool thing about a cross-coupled latch is that the feedback produces sequential properties from combinational circuits. So this comment is quite obscure. On the other hand, I/O automata (from Lynch/Tuttle) are a good example of the augmented automata that I&#8217;m deliberately avoiding because of their mathematical ugliness. You can take classical state machines and add all sorts of stuff to them: clocks, fairness conditions, oracles depending on the Axiom of Choice, steroids, flavor enhancers, and so on.  The &#8220;standard and well-studied techniques&#8221; Reviewer4 has in mind are almost certainly timed and hybrid automata which are types of augmented automata. But the argument made in my paper is that the austere flavor of classical automata theory is strong enough to model timing without additives. Rather than responding to this argument, the Reviewer asks why I don&#8217;t use the &#8220;standard&#8221; methods with additives.</p>
<p>It&#8217;s certainly possible that the work described in the paper lacks  interest to anyone but me ( the &#8220;crank&#8221; hypothesis). But lacking  credible reviews, it&#8217;s hard to make any conclusion at all.</p>
<p>A response.</p>
<blockquote><p>Hi Victor, good to hear from you.</p>
<p>About your CAV paper, don&#8217;t get pathetic. Each PC member has to review  in a short time numerous papers and he cannot afford the time needed to  give full feedback to the author of a paper which shows strict  disconnectedness with contemporary verification. Instead of thanking (or  even apologizing) to the PC members for the fact that they bothered to  read your paper and give you some feedback (one minute browsing was  sufficient to predict its rejection) you still complain and make useless  noise.</p>
<p>I will send you my rejected paper and its reviews, if you enjoy reading  such things.</p></blockquote>
<p>Pathetic! Ouch.</p>
<h3>In other matters</h3>
<p>For a variety of reasons, this reminds me of  a conference I attended in Salvador Brazil many years ago which was like something out of a Magical Realism<a href="http://www.yodaiken.com/wp-content/uploads/2010/03/antarctica-beer.jpg"><img class="alignright size-full  wp-image-885" title="antarctica-beer" src="http://www.yodaiken.com/wp-content/uploads/2010/03/antarctica-beer.jpg" alt="" width="66" height="87" /></a> novel involving lachrymose Argentines who longed to teach meringue, drum bands, unbearably tedious talks, dreamlike missed airplane sequences,  a moment when I was sure that Amir Pnueli, his wife, and myself were about to be assaulted while we were discussing the Israeli novel Blue Mountain which according to Pnueli,<a href="http://www.yodaiken.com/wp-content/uploads/2010/03/3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia.jpg"><img class="alignleft size-medium wp-image-881" title="3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia" src="http://www.yodaiken.com/wp-content/uploads/2010/03/3861701-Pelorinho_Salvador_da_Bahia-Salvador_da_Bahia-300x197.jpg" alt="" width="300" height="197" /></a> was set in his home town, random appearances of gigantic fashion models, an abandoned building in which rooster fighting was taking place,  the most delicious beer ever drunk in world history, a peculiar lecture on Fra Angelico and the relationship between New Mexico and Hassidism (&#8220;you must look at the white spaces between the words&#8221;) , a hero named Hercules, and much more. I returned from the trip to a faculty meeting chaired by <a href="http://www.kibazen.com/" onclick="pageTracker._trackPageview('/outgoing/www.kibazen.com/?referer=');">Jean Louis Lassez</a>.  Did any of it even really happen? The conference also provided me with an astounding article review: the reviewer explained that I had made an elementary error when I proved something about a set without taking into account the ordering of the set. Even the Baal Shem Tov would not be able to discern meaning in such a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/03/more-computer-science-as-humbug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>State machines and circuits</title>
		<link>http://www.yodaiken.com/2010/01/state-machines-and-circuits/</link>
		<comments>http://www.yodaiken.com/2010/01/state-machines-and-circuits/#comments</comments>
		<pubDate>Mon, 18 Jan 2010 03:13:23 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[state machines. digital circuit design]]></category>
		<category><![CDATA[verification]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=638</guid>
		<description><![CDATA[The cross coupled latch is one of the greatest inventions of the 20th century State machine models of timing and circuit design]]></description>
			<content:encoded><![CDATA[<p>The cross coupled latch is one of the greatest inventions of the 20th century</p>
<p><a title="CAV 2010 submission draft" href="http://www.yodaiken.com/papers/cav2010a.pdf" target="_blank">State machine models of timing and circuit design</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2010/01/state-machines-and-circuits/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Recursive transducers and products &#8211; pre-submit version</title>
		<link>http://www.yodaiken.com/2009/11/recursive-transducers-and-products-pre-submit-version/</link>
		<comments>http://www.yodaiken.com/2009/11/recursive-transducers-and-products-pre-submit-version/#comments</comments>
		<pubDate>Mon, 23 Nov 2009 03:22:45 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>
		<category><![CDATA[theoretical computer science]]></category>
		<category><![CDATA[automata products]]></category>
		<category><![CDATA[automata theory]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=582</guid>
		<description><![CDATA[Recursive transducers.]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.yodaiken.com/papers/recursivetransducer-sprfmt.pdf">Recursive transducers</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/11/recursive-transducers-and-products-pre-submit-version/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.]]></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>
]]></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>Primitive recursion and transducers</title>
		<link>http://www.yodaiken.com/2009/08/primitive-recursion-and-transducers/</link>
		<comments>http://www.yodaiken.com/2009/08/primitive-recursion-and-transducers/#comments</comments>
		<pubDate>Tue, 25 Aug 2009 20:21:20 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[specification]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=512</guid>
		<description><![CDATA[11/23/2009 please see the updated version: here. Yet another version of the recursion/transducer paper . The main result is that simultaneous primitive recursion on strings corresponds to general products of state machines. Primitive recursion on strings is analogous to primitive &#8230; <a href="http://www.yodaiken.com/2009/08/primitive-recursion-and-transducers/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><span style="color: #ff0000;">11/23/2009 please see the updated version:</span> <a title="11-23 update" href="http://www.yodaiken.com/papers/recursivetransducer-sprfmt.pdf" target="_blank">here.</a> <span style="text-decoration: line-through;">Yet another version of the <a href="http://www.yodaiken.com/papers/recursivetransducer.pdf" target="_blank">recursion/transducer pape</a>r</span> . The main result is that simultaneous primitive recursion on strings corresponds to general products of state machines.</p>
<div class="wp-caption alignleft" style="width: 162px"><img title="Rosza Peter" src="http://www.renyi.hu/conferences/2005/lh05/pic/pr2c.jpg" alt="RÃ³zsa PÃ©ter who developed much of recursive function theory" width="152" height="200" /><p class="wp-caption-text">RÃ³zsa PÃ©ter who developed much of recursive function theory (definitely smarter than Larry Summers)</p></div>
<p>Primitive recursion on strings is analogous to primitive recursion on integers where we define f(0) = constant and f(n+1) = g(f(n)). In strings the null string corresponds to 0 and appending a character corresponds to adding one so that &#8220;wa&#8221; is the string obtained by appending &#8220;a&#8221; to &#8220;w&#8221;. We can also easily define concatenation of strings: <em>concat(w,nullstring)=w</em> and <em>concat(w,ua)= concat(w,u)a </em>Primitive recursion is then:</p>
<p style="text-align: center;">f(nullstring)= x0</p>
<p style="text-align: center;">f(wa) = h(a,f(w))</p>
<p style="text-align: left;">You can produce a state machine from such a function trivially by associating each possible value of the function with a state: so there is a stateÂ  s= f(w) for each s in the image of f. Then the transition mapÂ  Next(s,a)=s&#8217; if and only if h(a,s)=s&#8217;.Â  Let&#8217;s make an output function Output(s)=s, so we can get a specific type of state machine &#8211; a transducer &#8211; or state machine with output. And x0 is the initial state. Call this state machine Transducer(f).Â  Now if Transducer(f) is defined and g(w) = h(f(w)) then Transducer(g) can be Transducer(f) with a new output function &#8211; and then we can throw out any duplicate and unreachable states. If the output function of Transducer(f) is Output_f(s)=x then the new output function Output_g(s)= h(Output_f(s)). And it should be clear that for any state machine, finite or not, there is a corresponding function that can be constructed by primitive recursion on strings and composition.</p>
<p style="text-align: left;">Simultaneous recursion on strings works by defining two functions F and F*<em> simultaneously </em>(big surprise). Suppose we have g_1 &#8230; g_n which are all primitive recursive string functions. Then we can make the following somewhat peculiar definition</p>
<ol>
<li>F(w,i) = g_i(F*(w,i))</li>
<li>F*(nullstring,i)= nullstring</li>
<li>F*(wa,i) = concat( F*(w,i) , h(a,i,F(w,1) &#8230;, F(w,n)))</li>
</ol>
<p>The idea is that F(w,i) is the output of component i when given the input F*(w,i) and also that h(a,i,F(w,1) &#8230;, F(w,n)) is the sequence (string) of events that happen to component i when &#8220;a&#8221; happens to the composite system in the state determined by &#8220;w&#8221;. This type of composition has a couple of nice properties.</p>
<ol>
<li>if G(w) = g(F(w,1) &#8230;, F(w,n)) then there is an H which can be constructed with just composition and ordinary primitive recursion on strings so that H(w)=G(w). In other words, simultaneous primitive recursion on strings doesn&#8217;t create any more state machines, it just tells us how to decompose (divide) state machines.</li>
<li>If each g_i corresponds to a finite state machine then G corresponds to a finite state machine.</li>
<li>F corresponds to a state machine that is the &#8220;general product&#8221; of the state machines corresponding to machines corresponding to g_i. I won&#8217;t go into details here, but the idea is that simultaneous primitive recursion is essentially a representation of a general automata product in the string function domain!Â  Read the paper if you want the details.</li>
<li>There are some immediate implications for the monoids induced by the state machines and the monoid products induced by composition.</li>
</ol>
<p>My main interest is in using this stuff to understand big state systems. But the coincidence of simultaneous primitive recursion on string functions corresponding to the general product of automata is good news in terms of validating that the mathematical basis has a structure and is not just a jury rigged construct held together by axioms and hope.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/08/primitive-recursion-and-transducers/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Deterministic multithreading</title>
		<link>http://www.yodaiken.com/2009/08/deterministic-multithreading/</link>
		<comments>http://www.yodaiken.com/2009/08/deterministic-multithreading/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 13:00:31 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[embedded systems]]></category>
		<category><![CDATA[operating systems]]></category>
		<category><![CDATA[software engineering]]></category>
		<category><![CDATA[software security]]></category>
		<category><![CDATA[specification]]></category>
		<category><![CDATA[controls]]></category>
		<category><![CDATA[determinism]]></category>
		<category><![CDATA[embedded]]></category>
		<category><![CDATA[non-determinism]]></category>
		<category><![CDATA[software]]></category>

		<guid isPermaLink="false">http://www.yodaiken.com/?p=505</guid>
		<description><![CDATA[An interesting paper appearing in ASPLOS proceedings provides a &#8220;deterministic&#8221; locking method Kendo enforces a deterministic interleaving of lock acquisitions and specially declared non-protected reads through a novel dynamically load-balanced deterministic scheduling algorithm. The algorithm tracks the progress of each &#8230; <a href="http://www.yodaiken.com/2009/08/deterministic-multithreading/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>An interesting paper appearing in ASPLOS proceedings provides a &#8220;deterministic&#8221; locking method</p>
<blockquote><p>Kendo enforces a deterministic interleaving of lock acquisitions and specially declared non-protected reads through a novel dynamically load-balanced deterministic scheduling algorithm. The algorithm tracks the progress of each thread using performance counters to construct a deterministic logical time that is used to compute an interleaving of shared data accesses that is both deterministic and provides good load balancing. Kendo can run on today&#8217;s commodity hardware while incurring only a modest performance cost ( <a href="http://www.gigascale.org/pubs/1883/asplos073-olszewski.pdf" target="_blank" onclick="pageTracker._trackPageview('/outgoing/www.gigascale.org/pubs/1883/asplos073-olszewski.pdf?referer=');">http://www.gigascale.org/pubs/1883/asplos073-olszewski.pdf</a>)</p></blockquote>
<p>There is similarly motivated work on Java going on at UIC: <a href="http://dpj.cs.uiuc.edu/DPJ/Home.html" target="_blank" onclick="pageTracker._trackPageview('/outgoing/dpj.cs.uiuc.edu/DPJ/Home.html?referer=');">http://dpj.cs.uiuc.edu/DPJ/Home.html</a></p>
<p>Both works refer to Lee&#8217;s paperwhich I discussed <a href="http://www.yodaiken.com/2009/02/are-threads-evil/" target="_self">earlier</a>. Nondeterministic threading is a  historical accident in computer engineering. Operating systems introduced time-sharing methods so single thread programs could be run in parallel during I/O delays and then so that multiple users could reasonably fairly share a processor and then so the OS and service programs could provide multiple services to a user at the price of slowing down user applications.  Exposing this system to users has been a mixed blessing. Certainly in the controls world, non-determinism is a dangerous fault.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/08/deterministic-multithreading/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 &#8230; <a href="http://www.yodaiken.com/2009/07/process-algebra/">Continue reading <span class="meta-nav">&#8594;</span></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>
]]></content:encoded>
			<wfw:commentRss>http://www.yodaiken.com/2009/07/process-algebra/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

