<?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"
	>
<channel>
	<title>Comments on: Term Rewriting: Towards a more powerful macro language?</title>
	<atom:link href="http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/feed/" rel="self" type="application/rss+xml" />
	<link>http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/</link>
	<description>Christopher Diggins</description>
	<pubDate>Fri, 16 May 2008 04:46:50 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: cdiggins</title>
		<link>http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/#comment-226</link>
		<dc:creator>cdiggins</dc:creator>
		<pubDate>Tue, 27 Mar 2007 18:40:42 +0000</pubDate>
		<guid isPermaLink="false">http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/#comment-226</guid>
		<description>Hi Sciolizer,

Thanks for your comments. I have been referring to static code transforming macros. However, I want to go a step further, and eventually allow type manipulations within the macro language. 

The Cat specification (which will be rereleased in a couple of weeks) will specify several different levels of Cat, which are each easily transformed from one into another. So one level of Cat will have the term rewriting strategies embedded, while the most basic version won't. I've tried to clarify a bit more in a recent post at: http://cdiggins.com/2007/03/27/so-does-cat-have-names-or-not-and-does-it-have-rewriting-rules-or-not/</description>
		<content:encoded><![CDATA[<p>Hi Sciolizer,</p>
<p>Thanks for your comments. I have been referring to static code transforming macros. However, I want to go a step further, and eventually allow type manipulations within the macro language. </p>
<p>The Cat specification (which will be rereleased in a couple of weeks) will specify several different levels of Cat, which are each easily transformed from one into another. So one level of Cat will have the term rewriting strategies embedded, while the most basic version won&#8217;t. I&#8217;ve tried to clarify a bit more in a recent post at: <a href="http://cdiggins.com/2007/03/27/so-does-cat-have-names-or-not-and-does-it-have-rewriting-rules-or-not/" rel="nofollow">http://cdiggins.com/2007/03/27/so-does-cat-have-names-or-not-and-does-it-have-rewriting-rules-or-not/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sciolizer</title>
		<link>http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/#comment-223</link>
		<dc:creator>sciolizer</dc:creator>
		<pubDate>Tue, 27 Mar 2007 01:14:11 +0000</pubDate>
		<guid isPermaLink="false">http://cdiggins.com/2007/03/25/term-rewriting-towards-a-more-powerful-macro-language/#comment-223</guid>
		<description>When you say "term rewriting strategies", are you referring to code transforming macros (like in Lisp or Scheme), or are you referring to runtime term rewriting (like in Q lang)?

When I saw your presentation of the Cat language at the .NET languages conference in the summer of last year, I thought the most promising feature of Cat was the ability it gave the programmer to directly specify transformation rules within the language itself. (I have not looked at your most recent specification to see if this is still a feature; indeed, I've been disappointed that this point has seldom come up in your blog.) I talked to an engineer from Borland who saw the same presentation of Cat as I did. He agreed with me that the greatest feature of your language is the ability to embed transformation rules directly in the language. Working for Borland, the engineer often has to write transformation rules in the C++ compiler, but rather than having a special syntax and semantics, the transformation rules are hidden behind explicit C code and visitor patterns.

Looking back on it, I guess your transformation rules are nothing more than a macro language for Cat. However, if CLI and Cat can be converted into each other easily, then I think Cat could act as an excellent optimization tier.

You said this point is a brain-dump. Here's my contribution to the mess. :)</description>
		<content:encoded><![CDATA[<p>When you say &#8220;term rewriting strategies&#8221;, are you referring to code transforming macros (like in Lisp or Scheme), or are you referring to runtime term rewriting (like in Q lang)?</p>
<p>When I saw your presentation of the Cat language at the .NET languages conference in the summer of last year, I thought the most promising feature of Cat was the ability it gave the programmer to directly specify transformation rules within the language itself. (I have not looked at your most recent specification to see if this is still a feature; indeed, I&#8217;ve been disappointed that this point has seldom come up in your blog.) I talked to an engineer from Borland who saw the same presentation of Cat as I did. He agreed with me that the greatest feature of your language is the ability to embed transformation rules directly in the language. Working for Borland, the engineer often has to write transformation rules in the C++ compiler, but rather than having a special syntax and semantics, the transformation rules are hidden behind explicit C code and visitor patterns.</p>
<p>Looking back on it, I guess your transformation rules are nothing more than a macro language for Cat. However, if CLI and Cat can be converted into each other easily, then I think Cat could act as an excellent optimization tier.</p>
<p>You said this point is a brain-dump. Here&#8217;s my contribution to the mess. :)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
