• Farooq
    link
    fedilink
    arrow-up
    1
    ·
    9 hours ago

    Hey. The number of problems which can are decidable are infinite as are those which are not. But as soon as there is a backward jump in your code, a Turing machine most likely won’t be able to decide if it’ll halt or not. The while(true) is an exception. In the real world we have a great number of programs whose loops cannot be decided by a Turing machine. But the programmer who has written the code knows when the loop will terminate.

    If we see the machine code, if there is a conditional backward jump(unlike while(true) which is unconditional), in the general case it’s undecidable.

    • wicked@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      4 minutes ago

      Backwards jumps are equally decidable for turing machines as for humans. Compiler and static code linters can trace through very complicated code and know that it will or will not halt, and optimize or warn based on the result.

      I believe there’s nothing special about human computation abilities. Anything that is decidable by a human will be also decidable by a computer.

      Please prove me wrong by showing a counter example.