|
|
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_Junkieв задачах нужны именно объекты и свойства, а не таблицы и строки). Или вы про 2-ю НФ не согласны? Согласен, но таблицы нужны для применения к ним рел. алгебры. У объектов никакой алгебры нет, поэтому никаких серьезных задач на них решать нельзя. Это вопрос что вы под алгеброй понимаете... в любом случае все то что до 2 НФ в SQL'е избыточно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 15:17 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модЧистые функции - хороший стиль программирования. Если надо чего-то менять - исп. процедуры. Объект - это набор св-в, методы нужны только для изменения этих св-в. Узнать значение св-ва можно без всяких методов. Ваши примеры - это использование терминологии ООП там, где оно вообще не применимо (типа притянуто за уши). Что-то я запутался. Вы сначала говорили что такого понятия как функции\процедуры в ООП нету, что там есть только классы, объекты, поля и методы... Теперь даже есть чистые функции и соответственно исп. процедуры - или это вы про структурное программирование? В любом случае допустим если я пишу на Java и мне нужно реализовать описанный мной функционал (про Query), мне с точки зрения ООП как его надо оформлять? _модЭто одно и тоже. Но вы мне так и не ответили на вопрос, можно ли наследовать типы данных в C. То есть сказать что тип данных A находится в каком-то отношении с типом B, что все поля типа B по определению есть в A. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 15:23 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieЭто вопрос что вы под алгеброй понимаете набор операций над отношениями, реализованные сначала Коддом в алфе а потом в SQL. Такого набора для объектов не существует, т.е. алгебры объектов нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 16:42 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieТеперь даже есть чистые функции и соответственно исп. процедуры - или это вы про структурное программирование? Просто программирование. Nitro_Junkieмне с точки зрения ООП как его надо оформлять? с точки зрения ООП далеко не все можно реализовать (формально оформить можно только зачем ?) Nitro_Junkie что все поля типа B по определению есть в A. можно - по построению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 16:45 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieЭто вопрос что вы под алгеброй понимаете набор операций над отношениями, реализованные сначала Коддом в алфе а потом в SQL. Такого набора для объектов не существует, т.е. алгебры объектов нет. Вполне отлично существуют, например частично-рекурсивные функции... Которые появились задолго до SQL. Там есть 5 операторов при помощи которых можно задать любую вычислимую функцию. Оперирует объектами (если ассоциировать любой объект с числом, предполагая что мн-во объектов счетно). Отлично подходит под ваше определение алгебры. И кстати можно считать были прообразом для реляционной алгебры - операторы подстановки как Join'ы, операторы примитивной рекурсии - рекурсивные CTE, группировки как операции минимизации аргумента... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 16:50 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_мод, Видимо мы про какие-то разные ООП говорим... Лично я говорю о классическом, который лежит в основе Java, C# и иже с ними... Где есть классы с полями и методами (как функциями принадлежащему одному объекту\классу к которому можно обращаться через this), есть static методы как функции (но для них принадлежность одному классу выглядит еще более дебильно), которые вообще противоречят ООП... Процедуры соответственно являются частным случаем функций, которые ничего не возвращает, то есть отдельно не рассматривается. Касательно mutability в ООП вообще ничего не сказано . Ну и плюс сверху области видимости, чисто как безопасность. Могу накидать кучу ссылок из википедии, бутча и иже с ними где все что я сказал подтверждается... Может все-таки поделитесь своим представлением об ООП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 17:00 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_мод, И программирование - это очень абстрактное понятие, в которое и SQL и логическое программирование (как базы знаний) и чего только туда не входит. Так что про функции и процедуры, что они входят в программирование это все же перебор.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2009, 17:04 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie, Мне симпатична идея, озвученная _мод, что метод должны менять только свойства обьектов. Что-то в этом есть. Примерно как в Оракле нельзя дмл в селекте делать. Порядок появляется что-ли, предсказуемость. Само собой, что чем более технология программирования ближе к реальному миру в которым мы существуем, тем легче/интуитивнее на ней будет релизовывать модели этого же мира. Поэтому SQL и стал популярным - он ближе к нашему пониманию. Вот идею о чистых функциях пытаюсь себе смоделировать. Сижу смотрю сейчас на блок музыкального центра (объект). Вот я ему вызвал метод Повернуть_ручку_звука (по_часовой_стрелке, 10_градусов). А как я звук услышу? Получить через return или должен прочитать его свойство? Инициатива исходит от меня? - нет, инициатива исходит от музыкального центра, именно он воздействует на меня звуком. Т.о. есть "воздействие", "обьект воздействия" и "характер воздействия" - метод, объект и параметры метода. Я воздействую на него, а он воздействует на меня. Причём я оказываю воздействие адресно, а он безадресно. Мы взаимодействуем. Наверное, в идеальном языке программирования должно быть что-то типа такого - взаимных воздействий - поддержка эвентов на уровне языка. Чтобы задача моделирования, например, человека и музыкального центра программировалась as is. А потом на этом же языке нужно как-то сделать воздействие на СУБД, хм. Можно ли это всё смоделировать на полностью декларативной парадигме? В UML есть разные типы диаграмм: описание статики, динамики, состояний... Гда та одна универсальная UML-диаграмма, одна универсальная парадигма? [Спокойной ночи] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 00:55 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
ммм, а это не Objective-C случайно? 8) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 01:09 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieВполне отлично существуют, например частично-рекурсивные функции... ???? таблица3=таблица1 операция таблица2 - так можно объект3=объект1 операция объект2 - а так низзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:27 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie Лично я говорю о классическом, который лежит в основе Java, C# и иже с ними... которые вообще противоречят ООП... Точнее не скажешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:29 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieИ программирование - это очень абстрактное понятие У Дейкстры есть книжка "Дисциплина программирования" - я об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:31 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
web_foxМожно ли это всё смоделировать на полностью декларативной парадигме? Может и можно, вот только зачем ? Воздействие предполагает императивность. Например, программа управления роботом д.б. набором команд. Ну и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:36 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieМожет все-таки поделитесь своим представлением об ООП? Дейкстра сказал, что эта парадигма была придумана исключительно для разработки оконного интерфейса. Такая одноразовая штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 09:41 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
web_fox, _мод Immutable объекты гораздо более предсказуемы чем mutable объекты... Для них можно делать Lazy Evaluation, их можно безопасно передавать другим объектам, и те не будут боятся что переданный объект вдруг без их ведома неожиданно изменится. Но как правило не стоит выбор что делать класс Immutable или Mutable, это определяется задачей\архитектурой. Например в текущем проекте все классы не связанные с хранением текущей информации от пользователя (пример такой информации является тот же музыкальный центр) Immutable а их 90%. Получается что им вообще не место в ООП, что же мы тогда, прости господи, используем за программирование в нашем проекте? Забавно что оказывается достаточно много людей которые считают что ООП хоть что-то говорит о mutability объектов. ООП это просто надстройка над структурным программированием (о котором писал Дейкстра), в котором добавлена возможность наследования, необходимость запихивать функции в классы и область видимости. А уж особенно противопоставлять его структурному программированию это в стиле акции пчелы против меда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 10:13 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_мод таблица3=таблица1 операция таблица2 - так можно объект3=объект1 операция объект2 - а так низзя Вот ваше определение алгебры : набор операций над отношениями. Так вот в случае частично-рекурсивных функций, отношения это функции, операции - операторы создающие новые функции. И даже для вашего примера вполне обычное структурное программирование подходит: andWhere = and(where1,where2); если предположить что класс Where immutable ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 10:16 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модweb_foxМожно ли это всё смоделировать на полностью декларативной парадигме? Может и можно, вот только зачем ? Воздействие предполагает императивность. Например, программа управления роботом д.б. набором команд. Ну и т.д. Я уже писал: Безотносительно нашего проекта, можно узнать почему? Я понимаю что у любого расширения должны быть императивные черты, чтобы реагировать на события, но если их формализовать в виде например ввода свойства или изменения класса объекта, а все остальное рассматривать как следствие декларативных правил, то почему нет. И надо это затем что декларативное программирование по всем нефункциональным требования значительно превосходит императивное. Особенно это касается расширяемости, скорости разработки, надежности и т.д. В нем нету последействий, они более высокоуровневые как следствие их прозрачно проще оптимизировать, правила гораздо более "портабельны" чем императивные алгоритмы и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 10:22 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieМожет все-таки поделитесь своим представлением об ООП? Дейкстра сказал, что эта парадигма была придумана исключительно для разработки оконного интерфейса. Такая одноразовая штука. Мало ли чего он сказал... Если он не понимает ценности наследования, то архитектор из него нулевой. Хотя как алгоритмист он может и впереди многих... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 10:24 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_Junkie_модNitro_JunkieМожет все-таки поделитесь своим представлением об ООП? Дейкстра сказал, что эта парадигма была придумана исключительно для разработки оконного интерфейса. Такая одноразовая штука. Мало ли чего он сказал... Если он не понимает ценности наследования, то архитектор из него нулевой. Хотя как алгоритмист он может и впереди многих...а вот тут люди не менее уверенно утверждали что наследование и не нужно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 11:05 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
SergSuper, А че мелочится, тогда уже циклы и функции не нужны, условные и безусловные переходы рулят... Если людям не надо наследование, то это характеризует не его ценность, а самих людей, их уровня как разработчиков. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:13 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieТак вот в случае частично-рекурсивных функций, отношения это функции, операции - операторы создающие новые функции. Таблицы, функции - это одно множество один тип данных. А объекты все разного типа - видите разницу ? Над элементами одного типа можно строить алгебру, а на элементах разных типов - нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:31 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieИ надо это затем что декларативное программирование по всем нефункциональным требования значительно превосходит императивное. Схоластика. Набор команд - это тоже декларация. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:33 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieSergSuper, А че мелочится, тогда уже циклы и функции не нужны, условные и безусловные переходы рулят... Если людям не надо наследование, то это характеризует не его ценность, а самих людей, их уровня как разработчиков.не, ну Вы почитайте, там у людей аргументы были ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:34 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
Nitro_JunkieЕсли людям не надо наследование, то это характеризует не его ценность, а самих людей, их уровня как разработчиков. Людям надо и они его давно используют, но только правильно, как конструктор новых типов данных. Посмотрите хотя бы эйфорию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:39 |
|
||
|
SQL - полнота по тьюрингу
|
|||
|---|---|---|---|
|
#18+
_модNitro_JunkieТак вот в случае частично-рекурсивных функций, отношения это функции, операции - операторы создающие новые функции. Таблицы, функции - это одно множество один тип данных. А объекты все разного типа - видите разницу ? Над элементами одного типа можно строить алгебру, а на элементах разных типов - нет. Объекты как раз все одного типа - мы ассоциируем их с номерами, то есть просто натуральными числами (забыли про наследование, оно в построении алгебры роли не играет). Функции соответственно интерфейсы объектов (множественные). То есть никакой разницы... ЗЫ. Функции в частично рекурсивных функциях могут иметь значение undef (null по русски). То есть с точки зрения классических типов данных (программирования), если функции передается объект не того типа, то она просто возвращает undef. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2009, 12:46 |
|
||
|
|

start [/forum/topic.php?fid=35&msg=36371260&tid=1552855]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 131ms |

| 0 / 0 |
