<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	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/"
		>
<channel>
	<title>Comments for StateWORKS Blog</title>
	<atom:link href="http://www.stateworks.net/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stateworks.net</link>
	<description>StateWORKS blog about software engineering using virtual finite state machines</description>
	<lastBuildDate>Wed, 15 Sep 2010 17:51:43 +0200</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on What is a state machine? by Joe</title>
		<link>http://www.stateworks.net/2008/03/what-is-a-state-machine/comment-page-1/#comment-2816</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Wed, 15 Sep 2010 17:51:43 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2008/03/what-is-a-state-machine/#comment-2816</guid>
		<description>It&#039;s been two years since first time I left a comment here. Recently, I happened to trace complete event-driven system programs. Suddenly I had the sense that why you do not like event driven stuff. Event itself is not a problem but software nowadays handles it using call backs. One call back tries to trigger another call back, or tries to communicate with another call back. System control logic is distributed among call backs. In some way, it&#039;s like system control logic is distributed among threads. Quite complex.

    After two years, I finally understood some things. I found sequential logic is simpler than concurrent logic. Use sequential and centralized logic whenever possible and  use concurrent logic only when necessary. 

    Another difficulty I found: sometimes same data must be handled by different actions(or different sorts of &#039;clients&#039;) and each action has different timings. Then making concurrent asynchronous access mechanism for the data may be a good thing, or the chaining actions for the data may become quite complex.</description>
		<content:encoded><![CDATA[<p>It&#8217;s been two years since first time I left a comment here. Recently, I happened to trace complete event-driven system programs. Suddenly I had the sense that why you do not like event driven stuff. Event itself is not a problem but software nowadays handles it using call backs. One call back tries to trigger another call back, or tries to communicate with another call back. System control logic is distributed among call backs. In some way, it&#8217;s like system control logic is distributed among threads. Quite complex.</p>
<p>    After two years, I finally understood some things. I found sequential logic is simpler than concurrent logic. Use sequential and centralized logic whenever possible and  use concurrent logic only when necessary. </p>
<p>    Another difficulty I found: sometimes same data must be handled by different actions(or different sorts of &#8216;clients&#8217;) and each action has different timings. Then making concurrent asynchronous access mechanism for the data may be a good thing, or the chaining actions for the data may become quite complex.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Calculator by Gordon Morrison</title>
		<link>http://www.stateworks.net/2009/08/calculator/comment-page-1/#comment-2116</link>
		<dc:creator>Gordon Morrison</dc:creator>
		<pubDate>Fri, 30 Jul 2010 15:08:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.stateworks.net/?p=25#comment-2116</guid>
		<description>Using my COSA state machine I have developed a 5-function calculator that uses only 28 logical tests.  I can perform the following calculation -3.14159 - -2.14159 in 28 logical tests. That&#039;s 18 entries in 28 logical steps or 64% efficient counting every test; &quot;if/case/?/etc.&quot;. Miro Samek takes 96 logical tests 20% efficiency and Ken Pugh takes 75 logical tests 24% efficiency.  If you want to prove you are indeed in the silver bullet category take my challenge and publish your results.  I will add your company to my challenge list at www.vsmerlot.com. My book is Breaking the Time Barrier-The Temporal Engineering of Software.</description>
		<content:encoded><![CDATA[<p>Using my COSA state machine I have developed a 5-function calculator that uses only 28 logical tests.  I can perform the following calculation -3.14159 &#8211; -2.14159 in 28 logical tests. That&#8217;s 18 entries in 28 logical steps or 64% efficient counting every test; &#8220;if/case/?/etc.&#8221;. Miro Samek takes 96 logical tests 20% efficiency and Ken Pugh takes 75 logical tests 24% efficiency.  If you want to prove you are indeed in the silver bullet category take my challenge and publish your results.  I will add your company to my challenge list at <a href="http://www.vsmerlot.com" rel="nofollow">http://www.vsmerlot.com</a>. My book is Breaking the Time Barrier-The Temporal Engineering of Software.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is a state machine? by admin</title>
		<link>http://www.stateworks.net/2008/03/what-is-a-state-machine/comment-page-1/#comment-2083</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Sun, 25 Jul 2010 07:31:38 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2008/03/what-is-a-state-machine/#comment-2083</guid>
		<description>You are right. A network of communicating state machines each in its own thread without a clear logical structure is a nightmare and must end in a disaster. In the VFSM concept and its StateWORKS implementation we try to show  that the proper way of designing a system of state machines is the hierarchical structure. It is less a problem of having the state machines in one or more threads but the the logical design plays a decisive role. In the StateWORKS implementation all state machines are per definition in one thread anyway.</description>
		<content:encoded><![CDATA[<p>You are right. A network of communicating state machines each in its own thread without a clear logical structure is a nightmare and must end in a disaster. In the VFSM concept and its StateWORKS implementation we try to show  that the proper way of designing a system of state machines is the hierarchical structure. It is less a problem of having the state machines in one or more threads but the the logical design plays a decisive role. In the StateWORKS implementation all state machines are per definition in one thread anyway.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on What is a state machine? by Toronto Condo Staging</title>
		<link>http://www.stateworks.net/2008/03/what-is-a-state-machine/comment-page-1/#comment-2077</link>
		<dc:creator>Toronto Condo Staging</dc:creator>
		<pubDate>Sat, 24 Jul 2010 15:57:35 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2008/03/what-is-a-state-machine/#comment-2077</guid>
		<description>If we design a set of state machines each solving a partial problem without having in mind from the beginning the entire logical structure we may end in a difficult fight with deadlocks and nondeterministic behavior by implementation.
Keeping state machines in one thread simplifies a lot.</description>
		<content:encoded><![CDATA[<p>If we design a set of state machines each solving a partial problem without having in mind from the beginning the entire logical structure we may end in a difficult fight with deadlocks and nondeterministic behavior by implementation.<br />
Keeping state machines in one thread simplifies a lot.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1454</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Tue, 30 Mar 2010 04:48:21 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1454</guid>
		<description>I see what you mean about increasingly diminished comprehensibility.  (I have enough trouble remembering the scenario of a controller watching a panel of instruments and taking actions iteratively and in a possibly non-linear / sequential manner.  The &#039;sequential programmer&#039; nature runs deep!)  A changeable execution engine would be unworkable!

To move to a Moore model, an input condition of the Mealy (mixed?) model would be tested in a transition condition and if True the to-state entry actions would execute the input actions?  I&#039;ll take a look at it - thanks.</description>
		<content:encoded><![CDATA[<p>I see what you mean about increasingly diminished comprehensibility.  (I have enough trouble remembering the scenario of a controller watching a panel of instruments and taking actions iteratively and in a possibly non-linear / sequential manner.  The &#8217;sequential programmer&#8217; nature runs deep!)  A changeable execution engine would be unworkable!</p>
<p>To move to a Moore model, an input condition of the Mealy (mixed?) model would be tested in a transition condition and if True the to-state entry actions would execute the input actions?  I&#8217;ll take a look at it &#8211; thanks.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1415</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Sun, 28 Mar 2010 08:50:59 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1415</guid>
		<description>The present VFSM execution model is a result of several years of discussion and practical experiences. Your ideas could be implemented but there is one basic difficulty: the comprehensibility, especially if the model could be changed at any time. We allow it with the break state but we use it with care. Imagine that you have several possibilities to change the model according to problems you presented. The state machine will become as difficult to read as a coded implementation.
I believe you should just use a simple model like a a Moore one to solve your problem. It will increase the number of states but you will understand what you are doing. The combination of Moore and Mealy model seems to be attractive but all experiences show that the design becomes complicated in spite of less states.</description>
		<content:encoded><![CDATA[<p>The present VFSM execution model is a result of several years of discussion and practical experiences. Your ideas could be implemented but there is one basic difficulty: the comprehensibility, especially if the model could be changed at any time. We allow it with the break state but we use it with care. Imagine that you have several possibilities to change the model according to problems you presented. The state machine will become as difficult to read as a coded implementation.<br />
I believe you should just use a simple model like a a Moore one to solve your problem. It will increase the number of states but you will understand what you are doing. The combination of Moore and Mealy model seems to be attractive but all experiences show that the design becomes complicated in spite of less states.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-1364</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Thu, 25 Mar 2010 06:19:18 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-1364</guid>
		<description>Technical Note 25 re &quot;break states&quot; looks very useful!   I am wondering whether the idea could be applied to each transition rather than all the transitions from the _B_ tagged state?

Anyway, how about the similar idea of a state change that executes the input actions of the to- state rather than the entry actions - or maybe the entry actions then immediately the input actions before the transitions?  

I&#039;m trying handle 2 disjoint sets of logic via a &quot;switch state&quot; - rather than have a single state and pre-fix every condition expression with either &quot;LogicSwitch_HIGH&quot; or &quot;LogicSwitch_LOW&quot;.   So the switcher state has only transitions to either a LogicHigh or LogicLow state.  

Now the &#039;real&#039; stuff in those 2 states is in input condition /actions but to execute those I need to make some kind of &quot;change VI just to get input actions to execute&quot; entry action .... and also make sure none of the LogicXxxx state transitions trigger until I want them to (ie after the input actions have executed).

Some kind of &quot;let transition to- state handle the latest VI change&quot; transition would make life easier .... or is there another better way to handle this?</description>
		<content:encoded><![CDATA[<p>Technical Note 25 re &#8220;break states&#8221; looks very useful!   I am wondering whether the idea could be applied to each transition rather than all the transitions from the _B_ tagged state?</p>
<p>Anyway, how about the similar idea of a state change that executes the input actions of the to- state rather than the entry actions &#8211; or maybe the entry actions then immediately the input actions before the transitions?  </p>
<p>I&#8217;m trying handle 2 disjoint sets of logic via a &#8220;switch state&#8221; &#8211; rather than have a single state and pre-fix every condition expression with either &#8220;LogicSwitch_HIGH&#8221; or &#8220;LogicSwitch_LOW&#8221;.   So the switcher state has only transitions to either a LogicHigh or LogicLow state.  </p>
<p>Now the &#8216;real&#8217; stuff in those 2 states is in input condition /actions but to execute those I need to make some kind of &#8220;change VI just to get input actions to execute&#8221; entry action &#8230;. and also make sure none of the LogicXxxx state transitions trigger until I want them to (ie after the input actions have executed).</p>
<p>Some kind of &#8220;let transition to- state handle the latest VI change&#8221; transition would make life easier &#8230;. or is there another better way to handle this?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-933</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Mon, 15 Feb 2010 08:02:50 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-933</guid>
		<description>Exactly. The changes of the virtual input can be done by the I/O Handler and by the outputs of the executed state machine.</description>
		<content:encoded><![CDATA[<p>Exactly. The changes of the virtual input can be done by the I/O Handler and by the outputs of the executed state machine.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by John M</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-930</link>
		<dc:creator>John M</dc:creator>
		<pubDate>Mon, 15 Feb 2010 03:37:54 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-930</guid>
		<description>Thanks - must confess I was thinking single state machine only.  I suppose in any case one needs to be aware of the principle of *continuous* monitoring of inputs?  The input values to even a single state machine could change in the middle of control logic execution - yes?</description>
		<content:encoded><![CDATA[<p>Thanks &#8211; must confess I was thinking single state machine only.  I suppose in any case one needs to be aware of the principle of *continuous* monitoring of inputs?  The input values to even a single state machine could change in the middle of control logic execution &#8211; yes?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Introducing &#8220;Questions&#8221; by ferdinand</title>
		<link>http://www.stateworks.net/2009/03/introducing-questions/comment-page-1/#comment-888</link>
		<dc:creator>ferdinand</dc:creator>
		<pubDate>Wed, 10 Feb 2010 12:54:56 +0000</pubDate>
		<guid isPermaLink="false">http://stateworksnet.cmarc.net/2009/03/introducing-questions/#comment-888</guid>
		<description>John,
Yes, there is a reason for this solution. While the Executor is processing a state machine the virtual input of this state machine may change. Thus this state machine will be put into Executor queue. If the Executor uses the virtual input (and not the copy) the situation will be ambiguous. For a single state machine it is irrelevant. For a system of a state machine we get a different behavior.
Thank you for a comment to this quite sophisticated issue.</description>
		<content:encoded><![CDATA[<p>John,<br />
Yes, there is a reason for this solution. While the Executor is processing a state machine the virtual input of this state machine may change. Thus this state machine will be put into Executor queue. If the Executor uses the virtual input (and not the copy) the situation will be ambiguous. For a single state machine it is irrelevant. For a system of a state machine we get a different behavior.<br />
Thank you for a comment to this quite sophisticated issue.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

