Count C description as a TM.
From
wij@wyniijj5@gmail.com to
comp.theory on Tue Sep 9 20:19:51 2025
From Newsgroup: comp.theory
I collected comments from Mikko, Mike into this post to share my view
"What is needed to count a piece of C description as a TM"
We need to define:
Tape::= Read-writable working space + stack (may contain initial data)
Transition function::= Readonly program (machine codes)
Set of initial state::= User define
Set of final state::= User define
.thread/process: Not part of a TM. TM has no such capability. They may be
regarded as duplicating TM, maybe relates to NDTM. (except coopertive thread)
.Signal(interrupt): Not part of a TM. TM has no capability accessing
information not specifed.
.longjmp(..): Maybe OK
.exit(int): Depends. If TM means the whole executable, exit(int) may be fine.
...
.In general, all underlying function calls are part of the Transition function
and the Tape.
As an example, POO HHH has many problems as a TM:
DD is used both as data and program. If it is used as program, then
HHH embeding DD (equ. to put DD as part of the transition function) is not
a decider. HHH insides DD also causes the same problem because library function
calls are included....
Treating POO HHH as some abstract model also won't work because POOH deals with
assembly(machine codes).
More concrete, Halt7.c indicates HHH is the halt decider (a TM):
int DD() {
if(HHH(DD)) {/*...*/} // !!! oops
}
int main() {
Output("Input_Halts = ", HHH(DD)); // OK, HHH is a decider
}
Accessing the address of DD (string) as its 'input'. DD has to be data/string
in the tape. If not, 'DD' has to be part of Transition funcion. Both won't work
.
--- Synchronet 3.21a-Linux NewsLink 1.2