<?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: It&#8217;s MetaTurtles, all the way down</title>
	<atom:link href="http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/</link>
	<description>Thoughts of a software engineer</description>
	<lastBuildDate>Sat, 19 Nov 2011 18:48:17 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.1</generator>
	<item>
		<title>By: Anthony Bailey</title>
		<link>http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/comment-page-1/#comment-40</link>
		<dc:creator>Anthony Bailey</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/#comment-40</guid>
		<description>&lt;blockquote&gt;&lt;em&gt;
Note that the &quot;operational semantics for Java&quot; sentence doesn&#039;t describe the meaning of a particular java program. It describes a /mapping/ from syntactically correct Java programs to programs which run on a &quot;hypothetical machine&quot;.
&lt;/em&gt;&lt;/blockquote&gt;

Hmmm. Douglas Hofstadter would &lt;a href=&quot;http://www.amazon.com/exec/obidos/ASIN/0465026567&quot;&gt;argue&lt;/a&gt; that structure-preserving mappings (isomorphisms) and meanings are basically the same thing. How do you see them as differing, Andy? You kind of accept that all useful semantics are translations yourself, but this statement seems to suggest you don&#039;t want to go the whole hog. What do you think the &quot;true meaning&quot; of a language could be?

&lt;blockquote&gt;&lt;em&gt;
you can actually use BNF to describe the syntax of BNF.&lt;br /&gt;
[...]&lt;br /&gt;
Can &quot;operational semantics&quot; be used to define the semantics of &quot;operational semantics&quot;?
&lt;/em&gt;&lt;/blockquote&gt;

I think you&#039;re maybe making a category error here - as phrased, the two questions do not quite seem analogous to me.

BNF is just &lt;em&gt;a&lt;/em&gt; language for describing the syntax of languages, it&#039;s not the only one. As you say, BNF can be used to describe the syntax of a large set of languages (i.e. all context-free grammars), including itself.

So, I think you are observing that there exist &lt;em&gt;certain&lt;/em&gt; context-free grammars, such as BNF, that can be used to represent the syntax of all context-free grammars.

In which case, the analogous question would seem to be: do there exist &lt;em&gt;certain&lt;/em&gt; systems of operations semantics that can be used to represent the semantics of all systems of operational semantics?

Then, if you then accept Hofstadter&#039;s &quot;isomorphisms induce meaning&quot; philosophy at least as far as using operational semantics goes - which you would seem to - and I understand correctly that we&#039;re talking about the operational semantics of Turing-complete languages here, then I &lt;em&gt;think&lt;/em&gt; that (qualms about the status of the &lt;a href=&quot;http://en.wikipedia.org/wiki/Church&#039;s_Conjecture&quot;&gt;Church-Turing thesis&lt;/a&gt; aside) the answer to this question is &quot;&lt;strong&gt;yes&lt;/strong&gt;, and the systems in question are such things as universal Turing machines.&quot; (Although my head is hurting a little now too.)</description>
		<content:encoded><![CDATA[<blockquote><p><em><br />
Note that the &#8220;operational semantics for Java&#8221; sentence doesn&#8217;t describe the meaning of a particular java program. It describes a /mapping/ from syntactically correct Java programs to programs which run on a &#8220;hypothetical machine&#8221;.<br />
</em></p></blockquote>
<p>Hmmm. Douglas Hofstadter would <a href="http://www.amazon.com/exec/obidos/ASIN/0465026567">argue</a> that structure-preserving mappings (isomorphisms) and meanings are basically the same thing. How do you see them as differing, Andy? You kind of accept that all useful semantics are translations yourself, but this statement seems to suggest you don&#8217;t want to go the whole hog. What do you think the &#8220;true meaning&#8221; of a language could be?</p>
<blockquote><p><em><br />
you can actually use BNF to describe the syntax of BNF.<br />
[...]<br />
Can &#8220;operational semantics&#8221; be used to define the semantics of &#8220;operational semantics&#8221;?<br />
</em></p></blockquote>
<p>I think you&#8217;re maybe making a category error here &#8211; as phrased, the two questions do not quite seem analogous to me.</p>
<p>BNF is just <em>a</em> language for describing the syntax of languages, it&#8217;s not the only one. As you say, BNF can be used to describe the syntax of a large set of languages (i.e. all context-free grammars), including itself.</p>
<p>So, I think you are observing that there exist <em>certain</em> context-free grammars, such as BNF, that can be used to represent the syntax of all context-free grammars.</p>
<p>In which case, the analogous question would seem to be: do there exist <em>certain</em> systems of operations semantics that can be used to represent the semantics of all systems of operational semantics?</p>
<p>Then, if you then accept Hofstadter&#8217;s &#8220;isomorphisms induce meaning&#8221; philosophy at least as far as using operational semantics goes &#8211; which you would seem to &#8211; and I understand correctly that we&#8217;re talking about the operational semantics of Turing-complete languages here, then I <em>think</em> that (qualms about the status of the <a href="http://en.wikipedia.org/wiki/Church's_Conjecture">Church-Turing thesis</a> aside) the answer to this question is &#8220;<strong>yes</strong>, and the systems in question are such things as universal Turing machines.&#8221; (Although my head is hurting a little now too.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew Birkett</title>
		<link>http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/comment-page-1/#comment-41</link>
		<dc:creator>Andrew Birkett</dc:creator>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.nobugs.org/blog/archives/2003/10/31/its-metaturtles-all-the-way-down/#comment-41</guid>
		<description>&lt;blockquote&gt;
You kind of accept that all useful semantics are translations yourself, but this statement seems to suggest you don&#039;t want to go the whole hog. What do you think the &quot;true meaning&quot; of a language could be?
&lt;/blockquote&gt;

Ah, no.  My intention with that sentence was just to remind myself which &quot;level&quot; I was discussing.  I spend a lot of time working with abstract syntax trees, and informally people usually say that they &quot;capture the meaning&quot; of a particular program - at least, independent of formatting and syntactic sugar.  So, I was reiterating the fact that a given operation semantics has the type &quot;java_program -&gt; abstract_machine_program&quot;.

I agree that semantics must just be isomorphisms, at least up until the point where you end up in a language which you just &quot;get&quot;, and then it starts getting tricky.

Thanks a lot for your comments.  I&#039;ll chew over them once I&#039;ve woken up more.  I find that I&#039;m very happy thinking about computer programs, fairly happy thinking about type systems and meta-programs, but really quite unused to thinking about formal semantics.  So I probably often make category errors and don&#039;t notice it.
</description>
		<content:encoded><![CDATA[<blockquote><p>
You kind of accept that all useful semantics are translations yourself, but this statement seems to suggest you don&#8217;t want to go the whole hog. What do you think the &#8220;true meaning&#8221; of a language could be?
</p></blockquote>
<p>Ah, no.  My intention with that sentence was just to remind myself which &#8220;level&#8221; I was discussing.  I spend a lot of time working with abstract syntax trees, and informally people usually say that they &#8220;capture the meaning&#8221; of a particular program &#8211; at least, independent of formatting and syntactic sugar.  So, I was reiterating the fact that a given operation semantics has the type &#8220;java_program -> abstract_machine_program&#8221;.</p>
<p>I agree that semantics must just be isomorphisms, at least up until the point where you end up in a language which you just &#8220;get&#8221;, and then it starts getting tricky.</p>
<p>Thanks a lot for your comments.  I&#8217;ll chew over them once I&#8217;ve woken up more.  I find that I&#8217;m very happy thinking about computer programs, fairly happy thinking about type systems and meta-programs, but really quite unused to thinking about formal semantics.  So I probably often make category errors and don&#8217;t notice it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

