Four from Compiler Science: 1. Does a program ever access an uninitialized variable. 2. Do two context free grammars describe the same langauge. 3. Does it make a difference if parameters to a subroutine are passed by reference or by copy-result 4. Deadlock determination in parallel programs. Actually almost every question of the form "Does a program ever do X?" is equivalent to the halting probelm. So the above might be considered too close the the halting problem to be interesting answers ot this question.