powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / SQL - полнота по тьюрингу
24 сообщений из 174, страница 7 из 7
SQL - полнота по тьюрингу
    #36372241
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nitro_JunkieP.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog...
Между тьюринг-полными нет. Семантику любого ЯП можно описать на лиспе. Если описания совпадут то языки эквивалентны
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372248
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nitro_JunkieЧем мощнее?
Параметризованные типы. Т.е. конструктор - это функция с параметрами. А ООП-наследование - простое копирование
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372258
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
web_foxКоллеги, я думаю вы через чур сильно накинулись на Nitro_Junkie, и всё чаще приводите ошибочные доводы. Идея Nitro_Junkie понятна и намерения только приветствуются. Лично я считаю, что текущие языки а-ля СИ слишком просто позволяют программисту делать ошибки, а как известно лучшая ИС та, что не позволяет пользователю ошибаться. Одна только слабая типизация сводит все преимущества, например, PHP, при написании приложений корпоративного уровня в хлам (да, звучит дико, но многие пишут корпоративные приложения на этом языке), получается типичный го.но-код. И выражения типа "кривые руки" здесь не канает.

Nitro_Junkie, посоветуйте, пожалуйста, ссылочку на ваш вкус, где можно ознакомиться более подробно либо с вашей концепцией более детально, либо с чужими аналогичными. Я вот понимаю, что декларативный SQL - всего лишь оператор преобразования, на вход подаёшь одно множество, на выходе - получаешь другое. Действительно, тут не нужно хранить никакие состояния и описывать алгоритм, - для оператора достаточно описать закон преобразования. Но вот как на одних операторах преобразования построить полностью бизнес-приложение пока представляю плохо.

Спасибо за понимание, а то начинает казаться что я что-то совсем не то говорю.

Ситуация в том, что проект длится около 2-х лет и только сейчас мы вышли на законченный вариант этой свойство-ориентированной платформы в базовой постановке (бета-версию можно сказать). Честно говоря не ожидал что получится настолько цельная парадигма разработки, но результат превзошел даже мои ожидания. Соответственно с месяц назад мы приступили к описанию парадигмы и сейчас оно готово процентов на 40. В него также войдут презентация, видео с процессом разработки и несколько примеров систем (от самого простого, до достаточно "навернутого")... По плану завершить это все через месяц полтора, на практике думаю все затянется до 2-3 месяцев. После этого начнем продвижение в том числе в нете с целью поиска партнеров, инвесторов, клиентов и т.п. На этот форум ессно ссылку тоже закину :)

На самом деле "выходить в свет" раньше окончания этого процесса изначально бесмысленно, и здесь эту тему я создал, чтобы уточнить конкретно интересующий вопрос по стандартам SQL... Потом правда решил повкидывать несколько общих идей, последить за реакцией с целью по другому может расставить акценты в описании, но как то все ушло слишком даже не в ту сторону.

Что касается аналогичных концепций, то к сожалению, а может и к счастью, то ничего близкого во всяком случае нам не встречалось (а рынок мы мониторили весьма тщательно). Я понимаю возможный (даже сказал бы неизбежный) скепсицизм относительно такого рода высказываний, но чем больше приходится общаться с разработчиками различного уровня, тем лучше я понимаю почему программирование существует в том виде, в котором оно есть сейчас.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372260
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Nitro_Junkie
P.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog...

Есть разница :) Первый не Тьюринг-полный

Вы начало темы читали? SQL-1999 как раз Тьюринг-полный...
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372299
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модNitro_JunkieЯ же вам привел уже пример - частично-рекурсивные функции. Это чистая объектная алгебра.
Как с помощью функций получить объект неописанного класса ?

Забыли про классы. Мы говорим про объектную алгебру.
В данной логике класс это производное понятие. Поясню на примере. То есть если у нас есть функция Объем_двигателя(объект1). То Объем_двигателя(Роза1) = undef. Соответственно Объем_двигателя(митсубиси4332) = объем4 . Класс Авто всего лишь обозначают что для всех объектов не этого класса, функция Объем_двигателя всегда будет давать undef (что впрочем не значит что для Авто она не будет undef). То есть объектную логику можно рассматривать в отрыве от классов, а последние рассматривать как просто характеристику функций.

ЗЫ: Если кому-нибудь не _моду, понятен принцип что я написал здесь и выше, напишите, реально интересно... а то мне это очевидно, но такое ощущение что мне одному :)
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372327
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieGluk (Kazan)Nitro_Junkie
P.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog...

Есть разница :) Первый не Тьюринг-полный

Вы начало темы читали? SQL-1999 как раз Тьюринг-полный...

А вот это еще стоит доказать
кстати, вику и надписи на заборах я тоже не читаю
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372342
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nitro_JunkieМы говорим про объектную алгебру.
Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372367
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модNitro_JunkieМы говорим про объектную алгебру.
Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон

Да нет никакой реляционной алгебры. То что описали - обычный язык запросов, тот же SQL.

PS: кстати в питоне есть оператор минимизации аргумента? И то что я описал это декларативный язык, а питон - императивный (по моему определению во всяком случае)...
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372376
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)А вот это еще стоит доказать
кстати, вику и надписи на заборах я тоже не читаю

На раз два доказывается :

функция выбора и следование - обычные выражения
оператор подстановки - операция Join
оператор примитивной рекурсии - рекурсивные CTE
оператор минимизации рекурсии- GROUP BY с аггрегирующей функцией MAX

Значит эквивалентно частично-рекурсивным функциям, значит SQL - тьюринг-полный.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372393
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модNitro_JunkieЧем мощнее?
Параметризованные типы. Т.е. конструктор - это функция с параметрами. А ООП-наследование - простое копирование

_мод, не поймите меня неправильно, но у меня от ваших постов мозги клинит. Вы как будто хотите не объяснить, а еще больше запутать.

То есть в вашем примере x это не обозначение ребра наследования, а типа generic'а в Java? Но толку наследоваться от generic'а если интерфейсов вы все равно не знаете.

Можно привести пример что можно сделать с параметризованными типами и нельзя сделать логикой наследования.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372396
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модNitro_JunkieP.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog...
Между тьюринг-полными нет. Семантику любого ЯП можно описать на лиспе. Если описания совпадут то языки эквивалентны

Железно. Можно и на асемблере, а еще круче на машине Тьюринга, назад к земле так сказать.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372399
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkie_модNitro_JunkieМы говорим про объектную алгебру.
Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон

Да нет никакой реляционной алгебры. То что описали - обычный язык запросов, тот же SQL.

PS: кстати в питоне есть оператор минимизации аргумента? И то что я описал это декларативный язык, а питон - императивный (по моему определению во всяком случае)...
А Вы можете объяснить чем операция SQL delete from SomeTable более декларативна чем допустим функция WinAPI DestroyWindow ?
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372401
web_fox
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkie,

тогда я вам советую не тратить здесь особо время, а всё-таки довести проект до контрольной точки ;)

авторЗЫ: Если кому-нибудь не _моду, понятен принцип что я написал здесь и выше, напишите, реально интересно... а то мне это очевидно, но такое ощущение что мне одному :)
Да всё тут понятно. Только трудно представить пользу. Если бы какой-то конкретный реальный пример в двух вариантах (1. как обычно программируют и 2. как предлагается), чтобы и отказоустойчивость такого подхода продемонcтрировать и юзабилити с точки зрения интуитивнопонятности.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372422
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
web_fox,

Вот это все будет, когда будут примеры с описанием... Но в общем да, что-то я многовато потратил на эти абстрактные споры, пора завязывать :) Так что думаю через какое-то время продолжим начатый разговор, но уже в другой теме...
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372887
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieGluk (Kazan)А вот это еще стоит доказать
кстати, вику и надписи на заборах я тоже не читаю

На раз два доказывается :

функция выбора и следование - обычные выражения
оператор подстановки - операция Join
оператор примитивной рекурсии - рекурсивные CTE
оператор минимизации рекурсии- GROUP BY с аггрегирующей функцией MAX

Значит эквивалентно частично-рекурсивным функциям, значит SQL - тьюринг-полный.

простите, но под доказательством я привык понимать нечто более формальное
Вы думаете , что SQL стал Тьюринг-полным, благодаря введению CTE
Я сомневаюсь в том что Вы правы. Развейте мои сомнения.

Кстати, даже если он стал Тьюринг-полным, это еще не значит, что на нем удобно программировать
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36372891
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_Junkie
Железно. Можно и на асемблере, а еще круче на машине Тьюринга, назад к земле так сказать.

Насколько я понял, Вы как раз к этому и призываете:

- SQL стал Тьюринг-полным (пусть даже так)
- давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ
- будет Щастье и мы победим

я что-то упустил ???
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373022
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nitro_JunkieМожно привести пример что можно сделать с параметризованными типами и нельзя сделать логикой наследования.
Я не силен в эйфории. Но параметризованный тип - это вычислимая функция - на наследование не похоже.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373028
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)- давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ
Кстати, хороший вопрос. Например PL/SQL достаточно, чтобы написать на нем ВСЕ (при условии, что GUI делается на IDE). Но PL/SQL далеко не идеален. А вот можно ли придумать идеальный язык, на котором можно написать ВСЕ, как на PL/SQL.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373068
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модGluk (Kazan)- давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ
Кстати, хороший вопрос. Например PL/SQL достаточно, чтобы написать на нем ВСЕ (при условии, что GUI делается на IDE). Но PL/SQL далеко не идеален. А вот можно ли придумать идеальный язык, на котором можно написать ВСЕ, как на PL/SQL.

Но он то хочет на SQL-е без всяких PL, вот в чем фикус пикус :(
С учетом того, что и более достойные кандидаты (LISP, Haskell) за продолжительное время не получили широкого распространения (не в узком кругу лиц), желание безусловно похвальное, но сомнительное.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373167
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan),

Вы передергиваете, я говорил про ВСЕ бизнес-решения (или информационные системы в общем случае). Про написание драйверов, игрушек и т.п. на SQL речи не шло. Впрочем речь шла не о чистом SQL (который во многом ущербен), а о его расширении.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373298
Фотография Gluk (Kazan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nitro_JunkieGluk (Kazan),

Вы передергиваете, я говорил про ВСЕ бизнес-решения (или информационные системы в общем случае). Про написание драйверов, игрушек и т.п. на SQL речи не шло. Впрочем речь шла не о чистом SQL (который во многом ущербен), а о его расширении.

Давай будем политкорректны я утрирую
но даже если речь идет исключительно о ВСЕХ бизнес-решениях, меня терзают смутные сомнения.

Декларативное программирование это очень хорошо (теоретически), но на практике приживается с трудом. Сие означает, что простым смертным пользоваться им неудобно . А пользователь всегда прав
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373343
Nitro_Junkie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gluk (Kazan)Декларативное программирование это очень хорошо (теоретически), но на практике приживается с трудом. Сие означает, что простым смертным пользоваться им неудобно . А пользователь всегда прав

Скажем так, простым пользователям (не программистам) пользоваться любой декларативной парадигмой проще чем связкой Java\C# + SQL. Во всяком случае ни одного такого пользователя не встречал, а в нашем проекте все приложение создают бизнес-аналитики (люди для которых программирование закончилось одним уроком информатики в 8 классе)
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36373347
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gluk (Kazan)Но он то хочет на SQL-е без всяких PL, вот в чем фикус пикус :(
Не, без PL не получится, плавали, знаем.
...
Рейтинг: 0 / 0
SQL - полнота по тьюрингу
    #36383126
RomanT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapNitro_JunkieВезде упоминается что SQL полон только With CTE и Windowing. При этом Windowing можно реализовать вложенными подзапросами . Соответственно кто ошибается, я или они?IMHO, не всегда. К примеру, если в таблице без PK имеются неотличимые строки,
попробуйте-ка их пронумеровать в стиле ROW_NUMBER()OVER() подзапросами.
Не уверен, правда, что я это всё корректно "по-Тьюрингу" написал.
Может, и не к месту...
Оно?

with t1 as
(
select *
from (values (1,'aaa'),(1,'bbb'),(1,'ccc')) a (f1, f2)
),
t11 as
(
select count(*) cnt
from t1
),
t2 as
(
select 1 id
union all
select t2.id + 1 from t2 where t2.id < (select cnt from t11)
)
select t2.id,
t13.f1,
t13.f2
from t2
cross apply
(
select top 1 f1, f2
from (select top (t2.id * 1) f1, f2
from t1 t11
order by f1 asc, f2 asc
) t12
order by f1 desc, f2 desc
) t13
...
Рейтинг: 0 / 0
24 сообщений из 174, страница 7 из 7
Форумы / Сравнение СУБД [игнор отключен] [закрыт для гостей] / SQL - полнота по тьюрингу
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]