Это подошло сегодня в офисе. У меня нет планов делать такие вещи, но теоретически вы могли бы написать компилятор на SQL? На первый взгляд мне кажется, что он завершен, хотя и чрезвычайно громоздок для многих классов проблем.
Если он не завершен по Тьюрингу, что бы он потребовал, чтобы стать таким?
Примечание: у меня нет желания делать что-то вроде написания компилятора на SQL, я знаю, что это было бы глупо, поэтому, если мы сможем избежать этого обсуждения, я был бы признателен.
источник
TSQL завершен по Тьюрингу, потому что мы можем создать интерпретатор BrainFuck на TSQL.
Интерпретатор BrainFuck в SQL - GitHub
Предоставленный код работает в памяти и не изменяет базу данных.
источник
https://web.archive.org/web/20110807062050/http://channel9.msdn.com/forums/TechOff/431432-SQL-Turing-Completeness-question
Это обсуждение этой темы. Цитата:
источник
Строго говоря, SQL теперь является полным языком Тьюринга, потому что последний стандарт SQL включает в себя «Persistent Stored Modules» (PSM). Короче говоря, PSM - это стандартная версия языка PL / SQL в Oracle (и других подобных процедурных расширениях современных СУБД).
С включением этих PSM SQL завершился
источник
Оператор выбора ANSI, как первоначально определено в SQL-86, не завершается по тьюрингу, потому что он всегда завершается (за исключением рекурсивных CTE и только в том случае, если реализация поддерживает произвольно глубокую рекурсию). Поэтому невозможно моделировать любую другую машину Тьюринга. Хранимые процедуры завершаются, но это жульничество ;-)
источник
Oracle PLSQL и Microsoft TSQL оба завершены. Сам оператор выбора Oracle также завершен.
источник