From Cantor to Turing
Why no analyser can tell for every program whether it will hang
In the table the rows are programs, the columns are input numbers, and a cell says whether the program stops on that input or runs forever. The program "Opposite" looks at the diagonal and does the reverse: on input k it stops if program k runs forever on input k, and loops if that one stops. So "Opposite" differs from every program in the table on at least one input, like Cantor's string.
Now suppose someone wrote a checker that correctly says, for any program on any input, whether it will stop. Then "Opposite" could be written as an ordinary program: ask the checker and do the reverse. But all programs can be numbered, like guests, and "Opposite" would have its own number k. On input k it would have to both stop and not stop. So no such checker exists. This idea, taught today as the halting problem, goes back to Alan Turing's 1936 paper.
In practice it means that compilers, code analysers and antivirus tools always miss something: they either let some hangs through, sometimes raise false alarms, or set a time limit. A perfect checker is impossible not for lack of speed but because of logic.