<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" media="screen" href="/styles/xslt/rss.xslt"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:c9="http://channel9.msdn.com">
<channel>
	<title>Channel 9 Forums - Coffeehouse - Parallellized Functional Programming &amp; Multiple control flow paths of a binary`s execution</title>
	<atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/Forums/rss"></atom:link>
	<image>
		<url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url>
		<title>Channel 9 Forums - Coffeehouse - Parallellized Functional Programming &amp; Multiple control flow paths of a binary`s execution</title>
		<link>http://channel9.msdn.com/Forums</link>
	</image>
	<description>Channel 9 keeps you up to date with the latest news and behind the scenes info from Microsoft that developers love to keep up with. From LINQ to SilverLight – Watch videos and hear about all the cool technologies coming and the people behind them.</description>
	<link>http://channel9.msdn.com/Forums</link>
	<language>en</language>
	<pubDate>Sun, 19 May 2013 00:47:32 GMT</pubDate>
	<lastBuildDate>Sun, 19 May 2013 00:47:32 GMT</lastBuildDate>
	<generator>Rev9</generator>
	<c9:totalResults>3</c9:totalResults>
	<c9:pageCount>-3</c9:pageCount>
	<c9:pageSize>-1</c9:pageSize>
	<item>
		<title>Coffeehouse - Parallellized Functional Programming &amp; Multiple control flow paths of a binary`s execution</title>
		<description><![CDATA[<p>1) I'd like to state exactly WHY functional programming is far easier parallelized, it's not because of immutability per-se, immutability help in a way, but the reason is something slightly more subtle. C&#43;&#43; and other compilable languages get assembled into
 assembly instructions, that linear form is actually the problem. The instructions depend on instructions above other than the branch/jumps to find the final momentary code execution path. Functional languages on the other hand use LAMBDAS, which are self-contained
 packages of instructions which are independent of other lambdas. The ability for one lambda/anonymous function to not rely on the others in the program other than possible data dependency's, is why you can run a lambda function independent of the predecessor
 instructions or processor. Thus a lambda function's instructions are at a coarse enough grain that they aren't tied together by a built-in per-CPU hardware program counter like the imperative way of both a program`s structure and logic.<br>
<br>
<br>
2) The other thing I've not been able to understand is WHY today we are limited to a single main function!!! To me, if code entry execution point and exit points could be referenced or indexed like a function table at the beginning of the file, after the magic
 number and before the header meta-data, then the binary could/should be able to run different functions on different processing cores at the same time using hardware supported memory spaces per execution path for sharing memory.&nbsp; Instead of the one large traditional
 main function which must start at one point in the code/binary and end at specified exit/exception points.</p>
<p>This is an alternate way in my head I've been wondering as a different approach to the &quot;thread&quot; way of software engineering.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/532990#532990</link>
		<pubDate>Sun, 28 Feb 2010 12:42:46 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/532990#532990</guid>
		<dc:creator>Eric Aguiar</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/HeavensRevenge/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Parallellized Functional Programming &amp; Multiple control flow paths of a binary`s execution</title>
		<description><![CDATA[<p>I cannot think of any benefits to having multiple mains. It's not like a lot of work is done in it. &nbsp;It's there mostly for execution control flow purposes. &nbsp;The only place that I have seen something like multiple mains is in a computer virus. The basic idea
 behind those is to spawn another main(ok so, it's a proc, whatever) when something kills or suspends the other.</p>
<p>&nbsp;</p>
<p>Since net4 arrived in my dev-workflow, I have stopped using threads anyways. &nbsp;The Task Parallel Library&nbsp;works much better, by being more difficult to screw-up and more performant.</p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/9c0cee384bdb4f19b69e9deb00da1ba6#9c0cee384bdb4f19b69e9deb00da1ba6</link>
		<pubDate>Sun, 28 Feb 2010 16:19:47 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/9c0cee384bdb4f19b69e9deb00da1ba6#9c0cee384bdb4f19b69e9deb00da1ba6</guid>
		<dc:creator>Joshua Ross</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/Jsoh/Discussions/RSS</wfw:commentRss>
	</item>
	<item>
		<title>Coffeehouse - Parallellized Functional Programming &amp; Multiple control flow paths of a binary`s execution</title>
		<description><![CDATA[<p><blockquote><div class="quoteUser">JoshRoss said:</div><div class="quoteText">
<p>I cannot think of any benefits to having multiple mains. It's not like a lot of work is done in it. &nbsp;It's there mostly for execution control flow purposes. &nbsp;The only place that I have seen something like multiple mains is in a computer virus. The basic idea
 behind those is to spawn another main(ok so, it's a proc, whatever) when something kills or suspends the other.</p>
<p>&nbsp;</p>
<p>Since net4 arrived in my dev-workflow, I have stopped using threads anyways. &nbsp;The Task Parallel Library&nbsp;works much better, by being more difficult to screw-up and more performant.</p>
</div></blockquote>
<p>I'm sorry if it seemed like I specifically desired multiple &quot;main()&quot; functions, I was referring to what main actually does, as an execution entry point for the whole program to follow in its steed.
</p>
<p>I want a way for one core to start one part of a program whilst another core can execute a different path, working towards a common goal using the memory address the OS gives the program.</p>
<p>&nbsp;</p>
<p>lol and yes, the TPL would indeed be a much more sane way to go for the runtime to manage your thread pool's usage, I for one have only explored the&nbsp; PPL for usage of C&#43;&#43;0x features &amp; Lambda's along with interfacing with Intel's TBB for cross platform STL
 style code.</p>
<p>Rick Molloy&nbsp;is THE MAN along with Erik, they're both really inspiring.</p></p>]]></description>
		<link>http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/f4b6be4f8a88457f82a99deb00da1bd4#f4b6be4f8a88457f82a99deb00da1bd4</link>
		<pubDate>Sun, 28 Feb 2010 22:17:49 GMT</pubDate>
		<guid isPermaLink="false">http://channel9.msdn.com/Forums/Coffeehouse/532990-Parallellized-Functional-Programming--Multiple-control-flow-paths-of-a-binarys-execution/f4b6be4f8a88457f82a99deb00da1bd4#f4b6be4f8a88457f82a99deb00da1bd4</guid>
		<dc:creator>Eric Aguiar</dc:creator>
		<slash:comments>3</slash:comments>
		<wfw:commentRss>http://channel9.msdn.com/Niners/HeavensRevenge/Discussions/RSS</wfw:commentRss>
	</item>
</channel>
</rss>