• 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