Size: a a a

Типы в языках программирования, моделирования, представления знаний и жизни

2019 August 25

KV

Kirill Valyavin in Типы в языках программирования, моделирования, представления знаний и жизни
Христофор 🇺🇦 Тюлькин
А нужно ли это встраивать в зав-типы? семантика классов ООП существует давно в "параллельной" реальности. Можно отобразить классы на тайп-классы, например.
Да может и не нужно. Трудно сказать что-то определённое
источник

ХТ

Христофор 🇺🇦 Тюлькин in Типы в языках программирования, моделирования, представления знаний и жизни
кстати, еще в древние Смоллтоко-ЛИСПовские времена, когда ООП относилось к экспериментальной теме, которую обкатывали академические сотрудники, были придуманы метаклассы с метаобъектами, как высшее проявление ООП-шности. но там всё рантаймовое, как в нынешней Джулии. а встречал ли кто-нибудь настоящий денотационный вариант семантики метаклассов? http://ldbeth.sdf.org/The_Art_of_the_Metaobject_Protocol.pdf
источник

AN

Alexey Neznanov in Типы в языках программирования, моделирования, представления знаний и жизни
Христофор 🇺🇦 Тюлькин
кстати, еще в древние Смоллтоко-ЛИСПовские времена, когда ООП относилось к экспериментальной теме, которую обкатывали академические сотрудники, были придуманы метаклассы с метаобъектами, как высшее проявление ООП-шности. но там всё рантаймовое, как в нынешней Джулии. а встречал ли кто-нибудь настоящий денотационный вариант семантики метаклассов? http://ldbeth.sdf.org/The_Art_of_the_Metaobject_Protocol.pdf
источник

AN

Alexey Neznanov in Типы в языках программирования, моделирования, представления знаний и жизни
Понятно, что не полный вариант семантики, но идея эта?
источник

AZ

Alexey Zakhlestin in Типы в языках программирования, моделирования, представления знаний и жизни
Alexey Neznanov
Понятно, что не полный вариант семантики, но идея эта?
ну да. это оно. похожие механизмы есть в Ruby/Python. но там тоже динамика 🙂
источник

ХТ

Христофор 🇺🇦 Тюлькин in Типы в языках программирования, моделирования, представления знаний и жизни
Alexey Neznanov
Понятно, что не полный вариант семантики, но идея эта?
о, это хоть что-то. (так вот он какой - Qt...) конечно, спрашивая про семантику, имелось в виду, чтобы язык был с логикой, но и из С++ можно что-то вытащить. спасибо.
источник

AT

Alexander Tchitchigin in Типы в языках программирования, моделирования, представления знаний и жизни
Так там никакой семантики/логики для метаклассов не определено. Это просто механизм семантику писать руками - какую хочешь/можешь без ограничений (и смысла, если не повезло).
источник

AT

Alexander Tchitchigin in Типы в языках программирования, моделирования, представления знаний и жизни
Поскольку у C++ самого толком формальной семантики нет, на его основе трудно что-то вменяемое сконструировать...
источник
2019 August 26

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Anatoly Levenchuk
Книжка BORO в своей первой части как раз посвящена подробному и нудному разбору этих ситуаций. Так что за примерами — сразу туда.
Ok, я потратил на чтение максимум времени, который я могу потратить на такое мутное чтиво, не нашёл *ни одного* примера. Так что если у вас есть примеры, надеюсь, что вас не затруднит. Иначе так и запишем, "не смог привести ни одного примера, подтверждающего claim" :)
источник

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Igor Katrichek
Да те же самые ножницы. Сначала про in-the-small. Например, сломалась ручка ножниц. Берём отпиливаем (одну) ручку от других ножниц, и привариваем к этим. Даже если в БД заведены таблицы как для самих ножниц, так и для их половинок и винтиков, и даже для функциональных блоков "ручки" и "ножи", то такие нестандартные ситуации непонятно как учитывать. А когда in-the-large, то всё ещё хуже, когда ножницы есть в БД проектного института, БД завода-изготовителя, БД транспортной компании, БД склада, БД швейной фабрики, БД ремонтной матерской, БД бухгалтера на подряде, и т.д. И первичные ключи вроде одних и тех же ножниц не соотносятся между собой один-к-одному. Интеграционные сценарии спасают положение, но не универсально, а только для ножниц именно в этом "бизнес-процессе".
БД же не делаются просто так, "потому что время свободное было". Любая БД всегда делается с какой-то целью. А именно, поддержки определённых бизнес-процессов, в широком понимании слова бизнес. И если процессы, которые надо поддержать, включают отпиливание ручки, то БД это поддержит. А если нет, то не поддержит. Где проблема-то?
источник

IK

Igor Katrichek in Типы в языках программирования, моделирования, представления знаний и жизни
Konstantin , in-the-small проблема заключается в необходимости пересматривать всю схему БД при каких-либо изменениях предметной области, ибо столбец в таблицу добавить гораздо сложнее, чем строку (в богатых системах типов ожидается, что изменения будут локальны). In-the-large проблема в федерировании независимых БД.
источник

IK

Igor Katrichek in Типы в языках программирования, моделирования, представления знаний и жизни
Реляционные БД хорошо подходят для хранения и обработки данных с одной точки зрения на предмет, но плохо подходят для одновременного учёта множества точек зрения независимых деятелей на один и тот же предмет (см. выше формулировку @pavetok).
источник

IK

Igor Katrichek in Типы в языках программирования, моделирования, представления знаний и жизни
Я слышал, что в системах SAP является нормой не использовать ограничения целостности РСУБД, вплоть до несоздания первичных ключей, а все проверки выносить на уровень бизнес-логики. Я так понимаю обсуждаемую здесь проблему, чтобы такие проверки реализовать через зависимые типы, и продолжать не пользоваться "реляционной теорией" при работе с реляционной БД.
источник

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Igor Katrichek
Konstantin , in-the-small проблема заключается в необходимости пересматривать всю схему БД при каких-либо изменениях предметной области, ибо столбец в таблицу добавить гораздо сложнее, чем строку (в богатых системах типов ожидается, что изменения будут локальны). In-the-large проблема в федерировании независимых БД.
Я не очень понимаю, что значит "в богатых системах типов изменения локальны", пример бы помог понять. В чём проблема в добавлении столбца при изменении предметной области, и как без этого? Раз предметная область поменялась, то метаданные, её описывающие, должны тоже поменяться, не так ли? А добавление столбца к таблице  - это вообще самое минимальное изменение, которое можно себе представить.
источник

PV

Pavel Vetokhin in Типы в языках программирования, моделирования, представления знаний и жизни
Да, мне кажется, что проще и полезнее начать с примеров про разность взглядов независимых агентов. Причем для простоты отбросить пока и самих агентов. Мне интересно, как можно такое описывать в типах? При помощи того, что одно значение может населять несколько типов (как в NuPRL)? Или при помощи некой изоморфности типов? Path-типы или какие-то более общие конструкции?
источник

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Igor Katrichek
Konstantin , in-the-small проблема заключается в необходимости пересматривать всю схему БД при каких-либо изменениях предметной области, ибо столбец в таблицу добавить гораздо сложнее, чем строку (в богатых системах типов ожидается, что изменения будут локальны). In-the-large проблема в федерировании независимых БД.
Как я уже сказал, БД делается с целью. Разные БД делаются с разными целями. Поэтому, прежде чем федерировать, надо сделать третью базу, структура которой, в общем случае, отличается и от первой, и от второй базы. Теперь пишем ETL, сливаем из первой и второй в третью, и вот она федерация. Альтернатива – делать transformation on the fly, но это обычно приносит больше геморроя in the long run. Потому что это попытка использовать 1 и 2 не с той целью, с которой они проектировались.
источник

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Igor Katrichek
Реляционные БД хорошо подходят для хранения и обработки данных с одной точки зрения на предмет, но плохо подходят для одновременного учёта множества точек зрения независимых деятелей на один и тот же предмет (см. выше формулировку @pavetok).
Базу можно спроектировать с любым количеством точек зрения на предмет, если они известны заранее. Вот чего делать не нужно, это проектировать базу в попытке учесть заранее неизвестные "точки зрения" ака requirements. В результате всегда получается overengineered crap.
источник

KS

Konstantin Surkov in Типы в языках программирования, моделирования, представления знаний и жизни
Anatoly Levenchuk
Вот это место и болит. Нужно, чтобы его не было. Есть же красивые системы типов, а люди с табличками возятся. Грубо говоря, волшебной палочкой делают деревянные палочки, а потом работают деревянными палочками. А можно сразу волшебной палочкой — чтобы деревянные по пути не создавать?! Программируют-то не на SQL, хоть он тьюринг-полный! Программируют на нормальных языках. А систему типов и хранение данных этих типов делают в табличках, а не в нормальных структурах данных.

Нужно понять, в чём проблема (она ж не в legacy, хотя и в этом тоже — СУБД многие создавались, когда круче Паскаля/Дельфи ничего не было) и исправить ситуацию!
Проблема в смешном – в скорости. Много задач, требующих быстрого компьютинга над существенными объёмами данных. Часто даже традиционные базы, типа mssql, в которых 90% кода – это всякие performance optimizations, не тянут. На помощь приходят распределённые системы, в которых моделирование упрощено ещё больше – потому что это не главное для этих систем.
источник

PV

Pavel Vetokhin in Типы в языках программирования, моделирования, представления знаний и жизни
Konstantin Surkov
Базу можно спроектировать с любым количеством точек зрения на предмет, если они известны заранее. Вот чего делать не нужно, это проектировать базу в попытке учесть заранее неизвестные "точки зрения" ака requirements. В результате всегда получается overengineered crap.
Однажды Воеводский выбрал теорию типов (ни теорию множеств, ни даже теорию категорий), чтобы "пофиксить" математику. Вопрос, по мотивам которого и был создан данный чат, может ли теория типов "пофиксить" ещё заодно и онтологизацию? Просто в идеальном мире математики у нас теперь всё будет хорошо. Вроде как можно переходить ко второму этапу и выходить в мир реальный.
Это к вопросу о том, почему не подходят реляционные или какие-либо другие существующие БД. Ровно по той же причине, по которой Воеводскому не подошли множества - слишком низкоуровнево, а значит запредельные издержки на понимание на требуемых масштабах.
источник

E

Eugene in Типы в языках программирования, моделирования, представления знаний и жизни
Anatoly Levenchuk
Вопрос к тому, как такое выражать на языке программирования. В том числе в ситуации, когда ручки и ножевой блок используются в программе управления требованиями в конструкторском бюро, а две половинки ножниц и винтик даны в САПР в том же бюро, и нужно как-то состыковать их: чтобы требования относились к тому, что проектируется в САПР.
а аспектно-ориентированное программирование не из этой области?
источник