|
|
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieP.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog... Между тьюринг-полными нет. Семантику любого ЯП можно описать на лиспе. Если описания совпадут то языки эквивалентны ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:30 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieЧем мощнее? Параметризованные типы. Т.е. конструктор - это функция с параметрами. А ООП-наследование - простое копирование ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:32 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
web_foxКоллеги, я думаю вы через чур сильно накинулись на Nitro_Junkie, и всё чаще приводите ошибочные доводы. Идея Nitro_Junkie понятна и намерения только приветствуются. Лично я считаю, что текущие языки а-ля СИ слишком просто позволяют программисту делать ошибки, а как известно лучшая ИС та, что не позволяет пользователю ошибаться. Одна только слабая типизация сводит все преимущества, например, PHP, при написании приложений корпоративного уровня в хлам (да, звучит дико, но многие пишут корпоративные приложения на этом языке), получается типичный го.но-код. И выражения типа "кривые руки" здесь не канает. Nitro_Junkie, посоветуйте, пожалуйста, ссылочку на ваш вкус, где можно ознакомиться более подробно либо с вашей концепцией более детально, либо с чужими аналогичными. Я вот понимаю, что декларативный SQL - всего лишь оператор преобразования, на вход подаёшь одно множество, на выходе - получаешь другое. Действительно, тут не нужно хранить никакие состояния и описывать алгоритм, - для оператора достаточно описать закон преобразования. Но вот как на одних операторах преобразования построить полностью бизнес-приложение пока представляю плохо. Спасибо за понимание, а то начинает казаться что я что-то совсем не то говорю. Ситуация в том, что проект длится около 2-х лет и только сейчас мы вышли на законченный вариант этой свойство-ориентированной платформы в базовой постановке (бета-версию можно сказать). Честно говоря не ожидал что получится настолько цельная парадигма разработки, но результат превзошел даже мои ожидания. Соответственно с месяц назад мы приступили к описанию парадигмы и сейчас оно готово процентов на 40. В него также войдут презентация, видео с процессом разработки и несколько примеров систем (от самого простого, до достаточно "навернутого")... По плану завершить это все через месяц полтора, на практике думаю все затянется до 2-3 месяцев. После этого начнем продвижение в том числе в нете с целью поиска партнеров, инвесторов, клиентов и т.п. На этот форум ессно ссылку тоже закину :) На самом деле "выходить в свет" раньше окончания этого процесса изначально бесмысленно, и здесь эту тему я создал, чтобы уточнить конкретно интересующий вопрос по стандартам SQL... Потом правда решил повкидывать несколько общих идей, последить за реакцией с целью по другому может расставить акценты в описании, но как то все ушло слишком даже не в ту сторону. Что касается аналогичных концепций, то к сожалению, а может и к счастью, то ничего близкого во всяком случае нам не встречалось (а рынок мы мониторили весьма тщательно). Я понимаю возможный (даже сказал бы неизбежный) скепсицизм относительно такого рода высказываний, но чем больше приходится общаться с разработчиками различного уровня, тем лучше я понимаю почему программирование существует в том виде, в котором оно есть сейчас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:34 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Nitro_Junkie P.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog... Есть разница :) Первый не Тьюринг-полный Вы начало темы читали? SQL-1999 как раз Тьюринг-полный... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:35 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieЯ же вам привел уже пример - частично-рекурсивные функции. Это чистая объектная алгебра. Как с помощью функций получить объект неописанного класса ? Забыли про классы. Мы говорим про объектную алгебру. В данной логике класс это производное понятие. Поясню на примере. То есть если у нас есть функция Объем_двигателя(объект1). То Объем_двигателя(Роза1) = undef. Соответственно Объем_двигателя(митсубиси4332) = объем4 . Класс Авто всего лишь обозначают что для всех объектов не этого класса, функция Объем_двигателя всегда будет давать undef (что впрочем не значит что для Авто она не будет undef). То есть объектную логику можно рассматривать в отрыве от классов, а последние рассматривать как просто характеристику функций. ЗЫ: Если кому-нибудь не _моду, понятен принцип что я написал здесь и выше, напишите, реально интересно... а то мне это очевидно, но такое ощущение что мне одному :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:46 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieGluk (Kazan)Nitro_Junkie P.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog... Есть разница :) Первый не Тьюринг-полный Вы начало темы читали? SQL-1999 как раз Тьюринг-полный... А вот это еще стоит доказать кстати, вику и надписи на заборах я тоже не читаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 17:55 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieМы говорим про объектную алгебру. Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:00 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieМы говорим про объектную алгебру. Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон Да нет никакой реляционной алгебры. То что описали - обычный язык запросов, тот же SQL. PS: кстати в питоне есть оператор минимизации аргумента? И то что я описал это декларативный язык, а питон - императивный (по моему определению во всяком случае)... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:11 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)А вот это еще стоит доказать кстати, вику и надписи на заборах я тоже не читаю На раз два доказывается : функция выбора и следование - обычные выражения оператор подстановки - операция Join оператор примитивной рекурсии - рекурсивные CTE оператор минимизации рекурсии- GROUP BY с аггрегирующей функцией MAX Значит эквивалентно частично-рекурсивным функциям, значит SQL - тьюринг-полный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:16 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieЧем мощнее? Параметризованные типы. Т.е. конструктор - это функция с параметрами. А ООП-наследование - простое копирование _мод, не поймите меня неправильно, но у меня от ваших постов мозги клинит. Вы как будто хотите не объяснить, а еще больше запутать. То есть в вашем примере x это не обозначение ребра наследования, а типа generic'а в Java? Но толку наследоваться от generic'а если интерфейсов вы все равно не знаете. Можно привести пример что можно сделать с параметризованными типами и нельзя сделать логикой наследования. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:22 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieP.S.: Следуя вашей логике, нет никакой разницы между SQL, C++ и Prolog... Между тьюринг-полными нет. Семантику любого ЯП можно описать на лиспе. Если описания совпадут то языки эквивалентны Железно. Можно и на асемблере, а еще круче на машине Тьюринга, назад к земле так сказать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:24 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie_модNitro_JunkieМы говорим про объектную алгебру. Да нет никакой объектной алгебры. То что описали - обычный язык без контроля типов, тот же питон Да нет никакой реляционной алгебры. То что описали - обычный язык запросов, тот же SQL. PS: кстати в питоне есть оператор минимизации аргумента? И то что я описал это декларативный язык, а питон - императивный (по моему определению во всяком случае)... А Вы можете объяснить чем операция SQL delete from SomeTable более декларативна чем допустим функция WinAPI DestroyWindow ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:26 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie, тогда я вам советую не тратить здесь особо время, а всё-таки довести проект до контрольной точки ;) авторЗЫ: Если кому-нибудь не _моду, понятен принцип что я написал здесь и выше, напишите, реально интересно... а то мне это очевидно, но такое ощущение что мне одному :) Да всё тут понятно. Только трудно представить пользу. Если бы какой-то конкретный реальный пример в двух вариантах (1. как обычно программируют и 2. как предлагается), чтобы и отказоустойчивость такого подхода продемонcтрировать и юзабилити с точки зрения интуитивнопонятности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:27 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
web_fox, Вот это все будет, когда будут примеры с описанием... Но в общем да, что-то я многовато потратил на эти абстрактные споры, пора завязывать :) Так что думаю через какое-то время продолжим начатый разговор, но уже в другой теме... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 18:38 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieGluk (Kazan)А вот это еще стоит доказать кстати, вику и надписи на заборах я тоже не читаю На раз два доказывается : функция выбора и следование - обычные выражения оператор подстановки - операция Join оператор примитивной рекурсии - рекурсивные CTE оператор минимизации рекурсии- GROUP BY с аггрегирующей функцией MAX Значит эквивалентно частично-рекурсивным функциям, значит SQL - тьюринг-полный. простите, но под доказательством я привык понимать нечто более формальное Вы думаете , что SQL стал Тьюринг-полным, благодаря введению CTE Я сомневаюсь в том что Вы правы. Развейте мои сомнения. Кстати, даже если он стал Тьюринг-полным, это еще не значит, что на нем удобно программировать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 08:08 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie Железно. Можно и на асемблере, а еще круче на машине Тьюринга, назад к земле так сказать. Насколько я понял, Вы как раз к этому и призываете: - SQL стал Тьюринг-полным (пусть даже так) - давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ - будет Щастье и мы победим я что-то упустил ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 08:14 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieМожно привести пример что можно сделать с параметризованными типами и нельзя сделать логикой наследования. Я не силен в эйфории. Но параметризованный тип - это вычислимая функция - на наследование не похоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 09:59 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)- давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ Кстати, хороший вопрос. Например PL/SQL достаточно, чтобы написать на нем ВСЕ (при условии, что GUI делается на IDE). Но PL/SQL далеко не идеален. А вот можно ли придумать идеальный язык, на котором можно написать ВСЕ, как на PL/SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 10:03 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модGluk (Kazan)- давайте на нем (или на чем то похожем чего Вы не озвучили) программировать ВСЕ Кстати, хороший вопрос. Например PL/SQL достаточно, чтобы написать на нем ВСЕ (при условии, что GUI делается на IDE). Но PL/SQL далеко не идеален. А вот можно ли придумать идеальный язык, на котором можно написать ВСЕ, как на PL/SQL. Но он то хочет на SQL-е без всяких PL, вот в чем фикус пикус :( С учетом того, что и более достойные кандидаты (LISP, Haskell) за продолжительное время не получили широкого распространения (не в узком кругу лиц), желание безусловно похвальное, но сомнительное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 10:21 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan), Вы передергиваете, я говорил про ВСЕ бизнес-решения (или информационные системы в общем случае). Про написание драйверов, игрушек и т.п. на SQL речи не шло. Впрочем речь шла не о чистом SQL (который во многом ущербен), а о его расширении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 10:51 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieGluk (Kazan), Вы передергиваете, я говорил про ВСЕ бизнес-решения (или информационные системы в общем случае). Про написание драйверов, игрушек и т.п. на SQL речи не шло. Впрочем речь шла не о чистом SQL (который во многом ущербен), а о его расширении. Давай будем политкорректны я утрирую но даже если речь идет исключительно о ВСЕХ бизнес-решениях, меня терзают смутные сомнения. Декларативное программирование это очень хорошо (теоретически), но на практике приживается с трудом. Сие означает, что простым смертным пользоваться им неудобно . А пользователь всегда прав ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 11:30 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Декларативное программирование это очень хорошо (теоретически), но на практике приживается с трудом. Сие означает, что простым смертным пользоваться им неудобно . А пользователь всегда прав Скажем так, простым пользователям (не программистам) пользоваться любой декларативной парадигмой проще чем связкой Java\C# + SQL. Во всяком случае ни одного такого пользователя не встречал, а в нашем проекте все приложение создают бизнес-аналитики (люди для которых программирование закончилось одним уроком информатики в 8 классе) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 11:46 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Gluk (Kazan)Но он то хочет на SQL-е без всяких PL, вот в чем фикус пикус :( Не, без PL не получится, плавали, знаем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.12.2009, 11:47 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
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 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.12.2009, 19:15 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36373343&tid=1552855]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
47ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
| others: | 247ms |
| total: | 397ms |

| 0 / 0 |
