<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress/2.1" -->
<rss version="0.92">
<channel>
	<title>patrick.lioi.net</title>
	<link>http://patrick.lioi.net</link>
	<description></description>
	<lastBuildDate>Sun, 29 Jul 2007 20:04:03 +0000</lastBuildDate>
	<docs>http://backend.userland.com/rss092</docs>
	<language>en</language>
	
	<item>
		<title>Adding Type Inference to Rook</title>
		<description><![CDATA[Earlier posts on Rook showed that it was a dynamically typed language: the type of an object was not declared, and was not known until the last moment at runtime.  Typing mistakes on the part of the programmer would be discovered at runtime.  Although I like the brevity of dynamic languages like Python, [...]]]></description>
		<link>http://patrick.lioi.net/2007/07/29/adding-type-inference-to-rook/</link>
			</item>
	<item>
		<title>Formalities</title>
		<description><![CDATA[I&#8217;ve added a new article on the Formalities page.  It&#8217;s a rewrite of some things I wrote shortly after college.  It&#8217;s a tad long, don&#8217;t say I didn&#8217;t warn you.
]]></description>
		<link>http://patrick.lioi.net/2007/03/19/formalities/</link>
			</item>
	<item>
		<title>Spaghetti Stack Attack!</title>
		<description><![CDATA[When I started writing Rook in January, I had a general idea of how things would work.  I&#8217;d start with a grammar, then I&#8217;d write a recursive descent parser to turn the input source code into an abstract syntax tree.  These steps aren&#8217;t trivial, but they&#8217;re also not as tough as they sound. [...]]]></description>
		<link>http://patrick.lioi.net/2007/03/10/spaghetti-stack-attack/</link>
			</item>
	<item>
		<title>(Re)Introducing Rook</title>
		<description><![CDATA[
For the past few weeks, I&#8217;ve been documenting my progress on the development of a new programming language.  It is mostly an experiment to see whether or not I could do it, rather than an attempt to actually gain widespread use.  Also, it&#8217;s giving me an opportunity to learn more about how functional [...]]]></description>
		<link>http://patrick.lioi.net/2007/03/05/reintroducing-rook/</link>
			</item>
	<item>
		<title>Turn it up to 11</title>
		<description><![CDATA[I started running into a little trouble with my TestFixture classes.  The glaring example was with the TokenizerTest fixture, which tested every nook and cranny of the Tokenizer class.  The tokenizer is responsible for advancing through the input source code, chopping it up into meaningful tokens, such as operators, keywords, identifiers, and the [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/26/turn-it-up-to-11/</link>
			</item>
	<item>
		<title>Grammar 4: Statements &#038; Function Calls</title>
		<description><![CDATA[This is part of a series of articles that started with Test-Driving a Compiler.
Grammar 3 introduced function definitions.  Since then, I&#8217;ve introduced some unary operators, statements, and function call expressions.  First, I added the unary-minus and unary-not operators with a higher priority than multiplication, using tests to confirm the basic parsing routines as [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/14/grammar-4-statements-function-calls/</link>
			</item>
	<item>
		<title>Big, Ugly, Naggingly Red 99s</title>
		<description><![CDATA[I&#8217;ve been using C# Express Edition so far to write my parser, and I&#8217;ve been running NUnit as a separate process.  I haven&#8217;t been running NCover at all, so far.  I like the idea of integrating NUnit and NCover into the IDE, but Express Edition doesn&#8217;t allow for plugins (as far as I [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/11/big-ugly-naggingly-red-99s/</link>
			</item>
	<item>
		<title>Grammar 3: Function Definitons</title>
		<description><![CDATA[This is part of a series of articles that started with Test-Driving a Compiler.
Grammar 3 introduces functions, identifiers, and programs composed of multiple function definitions.  Here&#8217;s the grammar, with changes from Grammar 2 in bold:
Program := Function*
Function := identifier &#39;(&#39; ParameterList &#39;)&#39; Expression
ParameterList := &#38;&#39;)&#39;
          [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/07/grammar-3-function-definitons/</link>
			</item>
	<item>
		<title>Grammar 2: Lost in New York</title>
		<description><![CDATA[This is part of a series of articles that started with Test-Driving a Compiler.
Some of the operators introduced in Grammar 1 have to do with boolean tests: ==, !=, &#60;, etc.  Further boolean support introduced in this article includes &#38;&#38; (and), &#124;&#124; (or), and if statements. Different languages deal with if statements in different [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/02/grammar-2-lost-in-new-york/</link>
			</item>
	<item>
		<title>Grammar 1: Basic Operators</title>
		<description><![CDATA[This is part of a series of articles that started with Test-Driving a Compiler.
Grammar 0 was silly.  We went to the trouble of creating a tokenizer and a recursive descent parser for a language where the only valid programs were integer constants.  With that silliness out of the way, we can start doing [...]]]></description>
		<link>http://patrick.lioi.net/2007/02/01/grammar-1-basic-operators/</link>
			</item>
</channel>
</rss>
