Тьюринг-полные языки времени компиляции
Jan. 5th, 2010 05:20 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Что-то мне мозг гложет мысль. Если у нас язык шаблонов C++ или там система типов хаскеля тьюринг-полные - это же не означает что мы можем реализовать произвольные действия на них. Т.е. например описать две строки, конкатенировать их и вывести в виде одной строки. Собственно говоря, и машина тьюринга этого не умеет, в оригинале. Только если к ней прикрутить интерпретатор выходных значений, который бы умел выводить строки, тогда по идее можно такое сделать, в виде программы для нее.
no subject
Date: 2010-01-05 07:08 pm (UTC)no subject
Date: 2010-01-05 08:24 pm (UTC)no subject
Date: 2010-01-05 08:26 pm (UTC)no subject
Date: 2010-01-05 09:01 pm (UTC)Следовало читать: "любую вычислимую функцию".
no subject
Date: 2010-01-06 02:44 am (UTC)http://imgur.com/kXuFt.jpg
no subject
Date: 2010-01-06 07:03 am (UTC)no subject
Date: 2010-01-06 10:52 am (UTC)no subject
Date: 2010-01-06 10:58 am (UTC)И ещё я сомневаюсь, что хаскелевская система типов Тьюринг-полна, ибо что-то мне подсказывает, что вывод типов можно свести к задаче останова.
no subject
Date: 2010-01-09 09:38 am (UTC)> система типов хаскеля тьюринг-полные -
> это же не означает что мы можем
> реализовать произвольные действия на них
Ну, SKI-комбинаторы можем сделать.
А значит, любые вычисления.
Но практически этим пользоваться крайне неудобно,
либо даже невозможно -- компилятор загнётся.