Проблема не с Машиной Тьюринга, это с "алгоритмом". Причина, почему Вы не можете предсказать, остановится ли алгоритм или не из-за этого:
function confusion()
{
if( halts( confusion ) )
{
while True:
no-op
}
else
return;
}
Любой язык, который не может сделать рекурсии или циклов, действительно не был бы "общего назначения".
Регулярные выражения и конечные автоматы являются тем же самым! Lexing и сопоставление строк являются тем же самым! Причина останов FSMs состоит в том потому что они никогда цикл; они просто передают входной символ символом и выход.
РЕДАКТИРОВАНИЕ:
Для многих алгоритмов, очевидно, остановились ли они.
, например:
function nonhalting()
{
while 1:
no-op
}
Эта функция ясно никогда не останавливается.
И, эта функция, очевидно, останавливается:
function simple_halting_function()
{
return 1;
}
Так нижняя строка: Вы гарантия CAN, что Ваш алгоритм останавливается, просто разработайте его так, чтобы он сделал.
, Если бы Вы не уверены, остановился ли алгоритм все время; тогда Вы, вероятно, не можете реализовать его ни на каком языке, который гарантирует "остановку".
ListView myList=(ListView)findViewById(android.R.id.list);
myList.setAdapter(adapter);