<?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>Re-Cycled Air &#187; Limbo</title>
	<atom:link href="http://www.re-cycledair.com/tag/limbo/feed" rel="self" type="application/rss+xml" />
	<link>http://www.re-cycledair.com</link>
	<description>Jack Slingerland&#039;s Programming Adventures</description>
	<lastBuildDate>Tue, 17 Jan 2012 01:14:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Circular Queue</title>
		<link>http://www.re-cycledair.com/circular-queue</link>
		<comments>http://www.re-cycledair.com/circular-queue#comments</comments>
		<pubDate>Mon, 26 Oct 2009 15:34:47 +0000</pubDate>
		<dc:creator>Jack Slingerland</dc:creator>
				<category><![CDATA[Other]]></category>
		<category><![CDATA[Data Structures]]></category>
		<category><![CDATA[Limbo]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[Queue]]></category>

		<guid isPermaLink="false">http://71.10.25.227:8000/?p=162</guid>
		<description><![CDATA[If you float around Computer Science / Programming circles enough, it&#8217;s likely that you&#8217;ve come across the term &#8220;circular queue&#8221;.  A circular queue is a queue of &#60;something&#62; that is fixed in size, and when the end of the queue &#8230; <a href="http://www.re-cycledair.com/circular-queue">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you float around Computer Science / Programming circles enough, it&#8217;s likely that you&#8217;ve come across the term &#8220;circular queue&#8221;.  A circular queue is a queue of &lt;something&gt; that is fixed in size, and when the end of the queue has been reached, it circles back to the front and starts pushing items from there.  If the head catches up to the tail, the queue is said to be full.  In C style languages, circular queues can be implemented using pointers fairly easily.  In my case though, I don&#8217;t have pointers, so I&#8217;m just keeping two variables (head, tail) that tell me where the import parts are.</p>
<p>Some people might wonder &#8220;Why on earth are you implementing a queue by hand?&#8221;, which is valid question.  The answer is because there is now STL-type library in Limbo, so implementation of a queue falls into my lap.  I suppose this post doesn&#8217;t have much of point, except to say &#8220;Use the friggin&#8217; library if it&#8217;s available.&#8221;.  For one, it&#8217;s already been done, and two, it&#8217;s probably bug free.</p>
 <img src="http://www.re-cycledair.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=162" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.re-cycledair.com/circular-queue/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Functional Programming with Erlang</title>
		<link>http://www.re-cycledair.com/functional-programming-with-erlang</link>
		<comments>http://www.re-cycledair.com/functional-programming-with-erlang#comments</comments>
		<pubDate>Sat, 10 Oct 2009 13:54:47 +0000</pubDate>
		<dc:creator>Jack Slingerland</dc:creator>
				<category><![CDATA[Other Programming]]></category>
		<category><![CDATA[erlang]]></category>
		<category><![CDATA[functional language]]></category>
		<category><![CDATA[inferno]]></category>
		<category><![CDATA[Limbo]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://71.10.25.227:8000/?p=124</guid>
		<description><![CDATA[For the past 8 weeks in my graduate operating systems course, we&#8217;ve been dealing with the issues of inter-process communication in massively parallel situations.  For development of such applications, we&#8217;ve been using an operating system called Inferno (of Plan 9 &#8230; <a href="http://www.re-cycledair.com/functional-programming-with-erlang">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For the past 8 weeks in my graduate operating systems course, we&#8217;ve been dealing with the issues of inter-process communication in massively parallel situations.  For development of such applications, we&#8217;ve been using an operating system called Inferno (of Plan 9 origins) which has a built in language called Limbo.  Limbo is a great language for learning network programming and multi-threaded programming.  It has communication channels which are typed, so you can pass whatever you want along them without pre-processing the data.  However, you still have to manage all of those channels.  It also has a nice C + Pascal style syntax:</p>
<blockquote><p>message := &#8220;Hello World!&#8221;;<br />
sys-&gt;print(&#8220;%s\n&#8221;, message);</p></blockquote>
<p>While discussing languages that support massive concurrency with my professor, the subject of functional programming came up.  I mentioned to him that I wanted to learn a functional language, but wasn&#8217;t sure where to start.  He suggested Erlang due to it&#8217;s easy support for massive concurrency.  My question to my readers (if I have any left), is do you have any experience with programming multi-threaded and/or distributed programs with Erlang?  Is it worth the time to learn, or would my efforts be better off elsewhere?</p>
 <img src="http://www.re-cycledair.com/wp-content/plugins/wordpress-feed-statistics/feed-statistics.php?view=1&post_id=124" width="1" height="1" style="display: none;" />]]></content:encoded>
			<wfw:commentRss>http://www.re-cycledair.com/functional-programming-with-erlang/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/20 queries in 0.268 seconds using disk: basic
Object Caching 284/333 objects using disk: basic

Served from: www.re-cycledair.com @ 2012-02-08 00:16:48 -->
