Lies, damn lies!

Billy Tanksley
Thu, 27 May 1999 12:31:51 -0700

The universal Turing machine accepts as its input a description of another
Turing machine and a program, remember?  Thus, in order to be universal, a
computing system has to be able to read and possibly modify the description
of an arbitrary computing system (including itself).

I hate Outlook.

Anyhow, You mentioned that Forth was the only standard universal language by
this definition.  In spite of my preference for Forth, I disagree -- Scheme,
Lisp, and Python can read arbitrary code in their own language and modify
it.  They don't have access to their own source code in the same way a Forth
program does, but that's not mentioned in the definition of a universal
Turing machine.

Rebol ( has full Forth-style access to its source, and it's a
syntactic language.  I'm very impressed with it.  In fact, I was thinking
that it might be tons of fun to write a Lojban module for it.  Check it out
and think about it.


> -----Original Message-----
> From:	Jecel Assumpcao Jr []
> Sent:	Thursday, May 27, 1999 9:31 AM
> To:	Laurent Martelli
> Cc:
> Subject:	Re: Lies, damn lies!
> Laurent Martelli wrote:
> >   Jecel> Now you got me really confused! Every explanation I have ever
> >   Jecel> seen of Turing Machines have always presented them with a
> >   Jecel> Harvard Architecture instead of a Von Neumann one: they store
> >   Jecel> their state in an infinite tape of symbols and their code in
> >   Jecel> a separate table representing a finite state machine. Only
> >   Jecel> the tape can be accessed and changed, not the table.
> > 
> > Code is data, and data is code. The data on the tape can be considered
> > a source to be interpreted by the state machine.
> I admitted that, but asked how is this different from simulating a
> Z80 computer running Forth in, for example, Pascal? Faré seemed to
> be rejecting the "interpreter" definition of universality, but in
> that case a Turin Machine is no longer universal as far as I can see.
> -- Jecel