| Deutsch English Français Italiano |
|
<efb3bbe803871e5892460a4596c64f5e1cedab03.camel@gmail.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: wij <wyniijj5@gmail.com> Newsgroups: comp.theory Subject: Re: How to write a self-referencial TM? Date: Thu, 15 May 2025 09:58:13 +0800 Organization: A noiseless patient Spider Lines: 88 Message-ID: <efb3bbe803871e5892460a4596c64f5e1cedab03.camel@gmail.com> References: <1e4f1a15826e67e7faf7a3c2104d09e9dadc6f06.camel@gmail.com> <1002akp$2i4bk$2@dont-email.me> <479eebef3bd93e82c8fe363908b254b11d15a799.camel@gmail.com> <1002j0r$2k04b$1@dont-email.me> <3b177909de383fcf209cfb9ff81fe2f118640578.camel@gmail.com> <1002l44$2k04b$3@dont-email.me> <8c7a8437e78a5b798cc23d77a8e1b6080e59ab0e.camel@gmail.com> <1002nvo$2k04b$5@dont-email.me> <87plgb9d4i.fsf@nosuchdomain.example.com> <1002tma$2k04c$5@dont-email.me> <1003bbu$2d57f$1@dont-email.me> <87zffe914z.fsf@nosuchdomain.example.com> <7d480ebd5935e07082c8f37d6c810a28974f7bca.camel@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Injection-Date: Thu, 15 May 2025 03:58:15 +0200 (CEST) Injection-Info: dont-email.me; posting-host="b7c2e7cb48bac1670f833664c84ad09e"; logging-data="2923279"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/OGL+OwtegU1IjJ/IXlmB0" User-Agent: Evolution 3.54.3 (3.54.3-1.fc41) Cancel-Lock: sha1:HUFmQYj9YBOZnmETdJQGOd1Dq/w= In-Reply-To: <7d480ebd5935e07082c8f37d6c810a28974f7bca.camel@gmail.com> On Thu, 2025-05-15 at 09:38 +0800, wij wrote: > On Wed, 2025-05-14 at 17:19 -0700, Keith Thompson wrote: > > Andy Walker <anw@cuboid.co.uk> writes: > > > On 14/05/2025 21:16, Richard Heathfield wrote: > > > > On 14/05/2025 21:00, Keith Thompson wrote: > > > > > I presume that one-way and two-way infinite tapes are computation= ally > > > > > equivalent, so the distinction doesn't matter all that much. > > >=20 > > > Indeed, there are lots of computationally equivalent versions: > > >=20 > > > =C2=A0-- two or more tapes [indeed, two-dimensional tapes] > > > =C2=A0-- one-way or two-way > > > =C2=A0-- "paper" tapes where you can punch holes to change the conten= t but not > > > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 stick the chad back in to "unpunch" th= e holes > > > =C2=A0-- two symbol, three symbol, ... > > > =C2=A0-- move two or more spaces at a time > > > =C2=A0-- others I've forgotten > >=20 > > Not to mention the very common variant where landing on Free Parking > > means you get all the money from the center of the board.=C2=A0 Or was = that > > something else? > >=20 > > [...] >=20 > // Manpage of class Spu > NAME > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Spu - Class of general purpose Soft-= CPU >=20 > SYNOPSIS > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Except POD types, C structures, all = types are declared in namespace Wy. >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 #include <CSCall/Sct.h> >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Spu=C2=A0 (Soft=C2=A0 CPU)=C2=A0 is= =C2=A0 a revised model of Turing Machine and a class that > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 acts like a general purpose CPU-base= d computing machine to=C2=A0 provide=C2=A0 se=E2=80=90 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 mantics for computing language and f= or remote program communication. >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The=C2=A0 main differences of Spu an= d general purpose CPU (or TM) is that Spu > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 has no =C2=B4register=C2=B4 nor =C2= =B4flag=C2=B4, Spu has only a tape. The tape is initially > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 empty. Every object (referred to as = tape variable) in the tape is=C2=A0 allo=E2=80=90 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 cated via instruction Alloc and iden= tified by a continuous index number. > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Tape variable can be any C++ type, i= ncluding Spu. >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 The=C2=A0 instruction=C2=A0 of Spu i= s application definable. Except necessary few, > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 about=C2=A0 >30=C2=A0 instructions= =C2=A0 are=C2=A0 defined=C2=A0 for=C2=A0 convenience,=C2=A0 see=C2=A0=C2= =A0 manpage > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Wy.Sct(3wy). >=20 > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Documentation following omits the sc= ope name Wy::Sct for each occurrence > =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 of Spu for clearity. >=20 > [cut] > ---------------------- >=20 > 1. In Spu, objects in the tape are allocated (constructed). > 2. Accessing the tape outside range will throw an error. > 3. Instructions in Spu are class members. 'instructions' can be considere= d=20 > =C2=A0=C2=A0 variable or stateful (useful in developing theory), because = data structure=C2=A0 > =C2=A0=C2=A0 related to instruction is considered part of the instruction= , simiar to the > =C2=A0=C2=A0 OO concept of C++ class. > 4. Multi-tasking can be modeled by multi-instances of Spu (or tape variab= le > =C2=A0=C2=A0 can be an Spu object) >=20 With the issue of TM's tape at least, I think Spu is more *realistic* than = TM.