История изменений
Исправление byko3y, (текущая версия) :
Судя по твоим словам, ты веришь в возможность реализации машины тьюринга(с бесконечной памятью). Приведи примеры таких реализаций
На шаблонах? Гуглится же:
#include <iostream>
template <int N> struct Factorial
{
enum { val = Factorial<N-1>::val * N };
};
template<>
struct Factorial<0>
{
enum { val = 1 };
};
int main()
{
// Note this value is generated at compile time.
// Also note that most compilers have a limit on the depth of the recursion available.
std::cout << Factorial<4>::val << "\n";
}
Но компиляторы режут глубину, как я уже писал.
Хорошо, только ты опять ничего конкретного про «угадывание» не сказал
Что непонятно в том примере? Компилятор не может определить смысл конструкции
S<TuringMachine<...>::output>::name * x;
пока не интерпретирует шаблон - а сложность интерпретации шаблона может быть бесконечна. А задача конечности алгоритма нерешаема на машине тьюринга.
Код у них почти одинаковый
Так одинаковый или нет?
Если брать значение слова одинаковый как «такой же, вполне сходный», то да, в крестовых проектах зачастую компилируют одинаковые модули тысячи раз при компиляции одного проекта.
Исходная версия byko3y, :
Судя по твоим словам, ты веришь в возможность реализации машины тьюринга(с бесконечной памятью). Приведи примеры таких реализаций
На шаблонах? Гуглится же:
#include <iostream>
template <int N> struct Factorial
{
enum { val = Factorial<N-1>::val * N };
};
template<>
struct Factorial<0>
{
enum { val = 1 };
};
int main()
{
// Note this value is generated at compile time.
// Also note that most compilers have a limit on the depth of the recursion available.
std::cout << Factorial<4>::val << "\n";
}
Но компиляторы режут глубину, как я уже писал.
Хорошо, только ты опять ничего конкретного про «угадывание» не сказал
Что непонятно в том примере? Компилятор не может определить смысл конструкции
S<TuringMachine<...>::output>::name * x;
пока не интерпретирует шаблон - а сложность интерпретации шаблона может быть бесконечна. А задача конечности алгоритма нерешаема на машине тьюринга.