Click to See Complete Forum and Search --> : Is Halting Problem valid for P (the class of all Pascal programs)?


chits12345
April 26th, 2008, 05:27 PM
Hi All

I don't know that this is the right place for this post. If it isn't then I am sorry. but I couldn't find any related forum.

I was discussing halting halting problem with one of my friend yesterday. He asked me a good question. Here is the question:
"Let P be the class of all Pascal programs that don't use go to ,while and repeat statements, nor recursive procedure calls.Is Halting Problem Valid for P?"

Now the interesting thing is that halting problem is valid if it has infinite loop and a program can not contain a loop until it has a recursive procedure like goto, while and for loop etc. So I think we can not get halting problem for P (the class of all Pascal programs) that don't use recursive procedure.

But Still I have confusion in my mind. May be there exist a program which can contain infinite loop without using recursive procedure. I tried to find but I couldn't think any such program. So I want to know "Does anybody know any example in which halting problem is valid even if the program don't use loops and recursive procedure calls?"

OR if you don't know any example then tell me what do you think about this problem. Is Halting Problem valid for P? If yes, Why?

Zachm
April 26th, 2008, 11:45 PM
I'm don't really remember Pascal's syntax and rules but if you can manipulate the counter from within a for loop, then you can create an infinite loop, in which case, the halting problem is valid for P.

On the more theoretical side, if it is not possible to create infinite loops in some language L, then each program in L MUST halt at some point since it has a finite number of instructions, and each loop is performed for a finite number of times.

Regards,
Zachm

TheCPUWizard
April 26th, 2008, 11:57 PM
... until it has a recursive procedure like goto, while and for loop etc....

OF course not of them are Recursive....but I get your point.

MrViggy
April 28th, 2008, 11:27 AM
Well, you can create an infinite loop, without any loop structures, just by having two functions that make calls to each other.
Pseudo code:
func1()
{
call func2();
}

func2()
{
call func1();
}

main()
{
call func1();
}
Viggy

pm_kirkham
April 28th, 2008, 02:15 PM
Usually, mutual recursion is considered recursion.