<?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: Turing Machine in Bare Bones</title>
	<atom:link href="http://whats.all.this.brouhaha.com/2008/03/03/turing-machine-in-bare-bones/feed/" rel="self" type="application/rss+xml" />
	<link>http://whats.all.this.brouhaha.com/2008/03/03/turing-machine-in-bare-bones/</link>
	<description>miscellaneous musings and random rantings</description>
	<lastBuildDate>Tue, 31 Jan 2012 21:21:58 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
	<item>
		<title>By: Eric</title>
		<link>http://whats.all.this.brouhaha.com/2008/03/03/turing-machine-in-bare-bones/comment-page-1/#comment-4165</link>
		<dc:creator>Eric</dc:creator>
		<pubDate>Fri, 06 Nov 2009 20:19:10 +0000</pubDate>
		<guid isPermaLink="false">http://whats.all.this.brouhaha.com/?p=641#comment-4165</guid>
		<description>Hi Hanno!

That&#039;s a very good question.  I used to wonder how to construct non-trivial Turing Machine programs myself, as it is very difficult to do it directly, although it can be done.

I think the easiest way is to write the program in an easier-to-use language that can be automatically translated into a Turing Machine program.  For example, it should be possible, and not too difficult, to translate programs in Bare Bones (or a similar language) into equivalent Turing Machine programs.  Going one step further, it would be possible to translate programs in an even easier-to-use language into Bare Bones, which could then be translated into Turing Machine programs.

In general the way to write complex programs for a Turing Machine, or to compile other languages into Turing Machine programs, is to use a multiple tape Turing Machine.  This seems a bit like cheating, until one learns that any multiple-tape Turing Machine program can fairly easily be transformed into a single-tape Turing Machine program.  However, this translation (as with the others proposed above) results in a considerable loss of runtime efficiency.  (Of course, the point of a Turing Machine has never been efficiency.)

I found _Theory of Computation: Formal Languages, Automata, and Complexity_ by J. Glenn Brookshear to have better coverage of Turing Machines than I&#039;ve seen elsewhere.  It is the book in which Brookshear originally introduced the Bare Bones programming language.  In chapter 4 Brookshear presents the proofs that all Bare Bones programs are partial recursive, and that Bare Bones can compute all partial recursive functions, thereby showing that Bare Bones is equivalent to a Turing machine.

I hadn&#039;t seen Brookshear&#039;s proofs when I started my little project to transform Turing machine programs into Bare Bones programs; while Brookshear gives a more elegant proof of the equivalence, I give an existence proof.

Brookshear&#039;s book is out of print, but it&#039;s not too hard to find it in libraries, or used copies (e.g., on Amazon).

Best regards,
Eric</description>
		<content:encoded><![CDATA[<p>Hi Hanno!</p>
<p>That&#8217;s a very good question.  I used to wonder how to construct non-trivial Turing Machine programs myself, as it is very difficult to do it directly, although it can be done.</p>
<p>I think the easiest way is to write the program in an easier-to-use language that can be automatically translated into a Turing Machine program.  For example, it should be possible, and not too difficult, to translate programs in Bare Bones (or a similar language) into equivalent Turing Machine programs.  Going one step further, it would be possible to translate programs in an even easier-to-use language into Bare Bones, which could then be translated into Turing Machine programs.</p>
<p>In general the way to write complex programs for a Turing Machine, or to compile other languages into Turing Machine programs, is to use a multiple tape Turing Machine.  This seems a bit like cheating, until one learns that any multiple-tape Turing Machine program can fairly easily be transformed into a single-tape Turing Machine program.  However, this translation (as with the others proposed above) results in a considerable loss of runtime efficiency.  (Of course, the point of a Turing Machine has never been efficiency.)</p>
<p>I found _Theory of Computation: Formal Languages, Automata, and Complexity_ by J. Glenn Brookshear to have better coverage of Turing Machines than I&#8217;ve seen elsewhere.  It is the book in which Brookshear originally introduced the Bare Bones programming language.  In chapter 4 Brookshear presents the proofs that all Bare Bones programs are partial recursive, and that Bare Bones can compute all partial recursive functions, thereby showing that Bare Bones is equivalent to a Turing machine.</p>
<p>I hadn&#8217;t seen Brookshear&#8217;s proofs when I started my little project to transform Turing machine programs into Bare Bones programs; while Brookshear gives a more elegant proof of the equivalence, I give an existence proof.</p>
<p>Brookshear&#8217;s book is out of print, but it&#8217;s not too hard to find it in libraries, or used copies (e.g., on Amazon).</p>
<p>Best regards,<br />
Eric</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Hanno</title>
		<link>http://whats.all.this.brouhaha.com/2008/03/03/turing-machine-in-bare-bones/comment-page-1/#comment-4164</link>
		<dc:creator>Hanno</dc:creator>
		<pubDate>Fri, 06 Nov 2009 16:53:24 +0000</pubDate>
		<guid isPermaLink="false">http://whats.all.this.brouhaha.com/?p=641#comment-4164</guid>
		<description>Hello:

I hear the Turing Machine is &quot;universal&quot; - and it may be. 

But have you ever seen useful programs like BCD to Binary, addition, move, etc. More specifically, can I construct a family of commands at a little higher level? If so, is there a construction procedure, a strategy or a compiler of sorts? Or is the generation of programs for a TM something like a Rubik&#039;s cube with trial and errors or just even intuition?

Thanks, and regards

Hanno</description>
		<content:encoded><![CDATA[<p>Hello:</p>
<p>I hear the Turing Machine is &#8220;universal&#8221; &#8211; and it may be. </p>
<p>But have you ever seen useful programs like BCD to Binary, addition, move, etc. More specifically, can I construct a family of commands at a little higher level? If so, is there a construction procedure, a strategy or a compiler of sorts? Or is the generation of programs for a TM something like a Rubik&#8217;s cube with trial and errors or just even intuition?</p>
<p>Thanks, and regards</p>
<p>Hanno</p>
]]></content:encoded>
	</item>
</channel>
</rss>

