Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

When have you come upon the halting problem in the field? [closed]

When have you ever personally come upon the halting problem in the field? This can be when a co-worker / boss suggested a solution which would violate the fundamental limits of computation, or when you realized yourself that a problem you were trying to solve was, in fact, impossible to solve.

The most recent time I came up with it was when studying type checkers. Our class realized that it would be impossible to write a perfect type checker (one that would accept all programs that would run without type errors, and reject all programs that would run with type errors) because this would, in fact, solve the halting problem. Another was when we realized, in the same class, that it would be impossible to determine whether a division would ever occur by zero, in the type-checking stage, because checking whether a number, at run-time, is zero, is also a version of the halting problem.

like image 970
Claudiu Avatar asked Oct 25 '08 06:10

Claudiu


People also ask

What would happen if we solved the halting problem?

A consequence of solving the halting problem would be that we'd immediately get answers to all mathematical theorems about existence of any finitely describable objects, such as this 3n+1 conjecture - because you can just write a program to generate them until the object of interest is found, and check if the program ...

What is an example of halting problem?

Example. ATM = {(M,w) | M is a TM and M halts at input w }. We can build a universal Turing machine which can simulate any Turing machine on any input. Suppose, if M goes into an infinite loop on input w, then the TM Recognize-ATM is going to run forever which means TM is only a recognizer, not a decider.

What is the halting problem and why is it important?

The halting problem is a decision problem about properties of computer programs on a fixed Turing-complete model of computation, i.e., all programs that can be written in some given programming language that is general enough to be equivalent to a Turing machine.

When was the halting problem solved?

In 1936, Alan Turing proved that the halting problem over Turing machines is undecidable using a Turing machine; that is, no Turing machine can decide correctly (terminate and produce the correct answer) for all possible program/input pairs.


2 Answers

I literally got assigned the halting problem, as in "write a monitor plugin to determine whether a host is permanently down". Seriously? OK, so I'll just give it a threshold. "No, because it might come back up afterward."

Much theoretical exposition ensued.

like image 119
Kirk Strauser Avatar answered Sep 23 '22 02:09

Kirk Strauser


Years ago, I remember reading a review (in Byte magazine, I believe) of a product called Basic Infinite Loop Finder or BILF. BILF was supposed to scan your Microsoft Basic source code and find any loops which didn't terminate. It claimed to be able any find any infinite loops in the code.

The reviewer was savvy enough to point out that for that program to work in all cases, it would have to solve the halting problem and went so far as to provide a mathematical proof of why it couldn't work in all cases.

In the next issue, they published a letter from a company representative explaining that the problem would be fixed in the next release.

Update: I ran across an image of the article on imgur. I remembered the wrong magazine. It was Creative Computing, not Byte. Otherwise, it's pretty much as I remembered it.

You can see a hi-res version of it on imgur.

enter image description hereenter image description here

like image 32
Ferruccio Avatar answered Sep 21 '22 02:09

Ferruccio