<?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 on: Code Contracts #5: Method purity</title>
	<atom:link href="http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/feed" rel="self" type="application/rss+xml" />
	<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity</link>
	<description>Matthias Jauernig -- .NET technology, architecture and design</description>
	<lastBuildDate>Thu, 02 Feb 2012 06:42:23 +0100</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
	<item>
		<title>By: Bent Rasmussen</title>
		<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/comment-page-1#comment-5223</link>
		<dc:creator>Bent Rasmussen</dc:creator>
		<pubDate>Tue, 02 Mar 2010 06:00:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.leading-edge-dev.de/?p=358#comment-5223</guid>
		<description>I more pressing question for me is: what about LINQ to Objects. Are iterators impure? -- they use IDisposable so I guess yes. That&#039;s a bit of a shame though as they are quite useful for specifications too even if only applied in run-time checks in debug mode.</description>
		<content:encoded><![CDATA[<p>I more pressing question for me is: what about LINQ to Objects. Are iterators impure? &#8212; they use IDisposable so I guess yes. That&#8217;s a bit of a shame though as they are quite useful for specifications too even if only applied in run-time checks in debug mode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Janzen</title>
		<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/comment-page-1#comment-3596</link>
		<dc:creator>Robert Janzen</dc:creator>
		<pubDate>Sun, 16 Aug 2009 14:02:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.leading-edge-dev.de/?p=358#comment-3596</guid>
		<description>Hi Matthias,

thank your for this good discussion. It is a great example for demonstration how [Pure()] works. I have a small annotation. I think you don&#039;t need decorate the property getters. Code Contract tools assume the property getters are pure.

Robert</description>
		<content:encoded><![CDATA[<p>Hi Matthias,</p>
<p>thank your for this good discussion. It is a great example for demonstration how [Pure()] works. I have a small annotation. I think you don&#8217;t need decorate the property getters. Code Contract tools assume the property getters are pure.</p>
<p>Robert</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Code Contracts #6: Modelling constraints and state &#124; .NET ... out of the dark</title>
		<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/comment-page-1#comment-1439</link>
		<dc:creator>Code Contracts #6: Modelling constraints and state &#124; .NET ... out of the dark</dc:creator>
		<pubDate>Sun, 10 May 2009 08:21:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.leading-edge-dev.de/?p=358#comment-1439</guid>
		<description>[...] automatically. Code Contracts can help us in this case very well by the use of object invariants. One more time making things explicit helps you as programmer and other programmers that use or extend your [...]</description>
		<content:encoded><![CDATA[<p>[...] automatically. Code Contracts can help us in this case very well by the use of object invariants. One more time making things explicit helps you as programmer and other programmers that use or extend your [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthias Jauernig</title>
		<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/comment-page-1#comment-1253</link>
		<dc:creator>Matthias Jauernig</dc:creator>
		<pubDate>Mon, 04 May 2009 06:06:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.leading-edge-dev.de/?p=358#comment-1253</guid>
		<description>Hi AJ,

I didn&#039;t want to dismiss purity as quality completely from the parallelism topic, so perhaps I have failed to express myself very well. What I wanted to say was, that while I see purity as important characteristic, I don&#039;t see &lt;em&gt;direct&lt;/em&gt; implications to the topic of auto-parallelism because of this &quot;one side of the medal&quot; thing: A pure method is like &quot;I don&#039;t write shared state, but I can read it&quot;. So I didn&#039;t want to dismiss the relationship in general, but just wanted to say: there is no &lt;em&gt;direct&lt;/em&gt; implication, that means an implication that brings auto-parallelism directly to life. If you couldn&#039;t agree again, please let me know. Your opinion is appreciated everytime.

Thanks, Matthias</description>
		<content:encoded><![CDATA[<p>Hi AJ,</p>
<p>I didn&#8217;t want to dismiss purity as quality completely from the parallelism topic, so perhaps I have failed to express myself very well. What I wanted to say was, that while I see purity as important characteristic, I don&#8217;t see <em>direct</em> implications to the topic of auto-parallelism because of this &#8220;one side of the medal&#8221; thing: A pure method is like &#8220;I don&#8217;t write shared state, but I can read it&#8221;. So I didn&#8217;t want to dismiss the relationship in general, but just wanted to say: there is no <em>direct</em> implication, that means an implication that brings auto-parallelism directly to life. If you couldn&#8217;t agree again, please let me know. Your opinion is appreciated everytime.</p>
<p>Thanks, Matthias</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: AJ.NET</title>
		<link>http://www.minddriven.de/index.php/technology/dot-net/code-contracts/code-contracts-method-purity/comment-page-1#comment-1228</link>
		<dc:creator>AJ.NET</dc:creator>
		<pubDate>Sun, 03 May 2009 12:10:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.leading-edge-dev.de/?p=358#comment-1228</guid>
		<description>&quot;Are there any direct implications to parallelism? The answer is: no. ...  one could think, that method purity brings automatic parallelism of calls to such methods to life. But that’s not true.&quot; 
I guess I cannot agree with you here. Actually purity is a very important characteristic in the (research) area of  automatic parallelization, i.e. letting the compiler or runtime figure out how to parallelize your code. 
If you have three calls to pure functions in a sequence, some automat may decide to run them in parallel and without locks. Of course purity is neither sufficient to automating parallelism (e.g. if one method depends on the result of another), nor is parallelism the only end to purity (call rearranging may be done for different reasons). Anyway, dismissing the relationship is like saying &quot;streets are not made for cars&quot; just because streets may also be used by moter cycles and car can drive off-road...</description>
		<content:encoded><![CDATA[<p>&#8220;Are there any direct implications to parallelism? The answer is: no. &#8230;  one could think, that method purity brings automatic parallelism of calls to such methods to life. But that’s not true.&#8221;<br />
I guess I cannot agree with you here. Actually purity is a very important characteristic in the (research) area of  automatic parallelization, i.e. letting the compiler or runtime figure out how to parallelize your code.<br />
If you have three calls to pure functions in a sequence, some automat may decide to run them in parallel and without locks. Of course purity is neither sufficient to automating parallelism (e.g. if one method depends on the result of another), nor is parallelism the only end to purity (call rearranging may be done for different reasons). Anyway, dismissing the relationship is like saying &#8220;streets are not made for cars&#8221; just because streets may also be used by moter cycles and car can drive off-road&#8230;</p>
]]></content:encoded>
	</item>
</channel>
</rss>

