<?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: Runtime code generation</title>
	<atom:link href="http://www.snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/</link>
	<description>Sarah and Alaric Snell-Pym living in interesting times</description>
	<pubDate>Tue, 06 Jan 2009 15:37:29 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.7</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: alaric</title>
		<link>http://www.snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/comment-page-1/#comment-21</link>
		<dc:creator>alaric</dc:creator>
		<pubDate>Fri, 01 Oct 2004 08:25:53 +0000</pubDate>
		<guid isPermaLink="false">http://snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/#comment-21</guid>
		<description>&lt;p&gt;I was always impressed by &lt;a href="http://en.wikipedia.org/wiki/Self_programming_language"&gt;Self&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The runtime system (amongst other optimisations) would dynamically generate method invocation code that used a cache of common method implementations it would end up dispatching to. So wherever "foo.someMethod()" is called, the generated machine code goes "is foo an instance of Car? If so, jump to this address. Is it an instance of Lorry? If so, jump to this address. ... Otherwise, call the generic inheritance-graph-walker, which also happens to gather statistics on how often it is called in order to decide if a cached invocation somewhere needs recompiling"&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I was always impressed by <a href="http://en.wikipedia.org/wiki/Self_programming_language">Self</a>.</p>

<p>The runtime system (amongst other optimisations) would dynamically generate method invocation code that used a cache of common method implementations it would end up dispatching to. So wherever "foo.someMethod()" is called, the generated machine code goes "is foo an instance of Car? If so, jump to this address. Is it an instance of Lorry? If so, jump to this address. ... Otherwise, call the generic inheritance-graph-walker, which also happens to gather statistics on how often it is called in order to decide if a cached invocation somewhere needs recompiling"</p>]]></content:encoded>
	</item>
	<item>
		<title>By: Derek</title>
		<link>http://www.snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/comment-page-1/#comment-18</link>
		<dc:creator>Derek</dc:creator>
		<pubDate>Fri, 01 Oct 2004 08:06:03 +0000</pubDate>
		<guid isPermaLink="false">http://snell-pym.org.uk/archives/2004/09/26/runtime-code-generation/#comment-18</guid>
		<description>&lt;p&gt;I think this is the difference between commercial smalltalk environments and free ones, the commercial ones have specialization and optimization of execution.  I think this kind of thing shows up in some Lisp engines as well.&lt;/p&gt;
</description>
		<content:encoded><![CDATA[<p>I think this is the difference between commercial smalltalk environments and free ones, the commercial ones have specialization and optimization of execution.  I think this kind of thing shows up in some Lisp engines as well.</p>]]></content:encoded>
	</item>
</channel>
</rss>
