2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 02:37 
Друзья, как вы считаете является ли корректной теоретико-множественная (в смысле наивной ТМ) интерпретация понятий объектно-ориентированного программирования? Например, допустимо ли интерпретировать класс (понятие ООП) как множество, а объект как элемент множества? Если нет, то почему. И вообще, каковы пределы теоретико-множественной интерпретации понятий ООП? Возможна ли теоретико-категорная интерпретация понятий ООП? Где об этом можно почитать?

 
 
 
 Re: Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 03:19 
Интересно было бы взглянуть на пересечение множеств в терминах ООП: объекты, принадлежащие одновременно двум классам (имеющие более одного родителя)?! Может я что-то пропустил, но разве в ООП не строгая иерархия наследования, без всяких пересечений? Множества в этом смысле богаче.

 
 
 
 Re: Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 03:52 
Категорная интерпретация подходит лучше. Причем в Бурбаковском смысле: категория (class в ООП) описывается аксиомам, которым объект (class instance) должен удовлетворять. Факторизации - это отношения супер классов и подклассов. Подобъект - это class member. Морфизмы общего вида - это преобразования типов в программах. Понимание Бурбаковский теории и соотнесение с ООП помогает принимать правильные дизайнерские решения. Но на практике эти решения гораздо проще выводить из ответа на вопрос - в каком отношении находятся сущности A и B? Является ли А родственником B или же его частью? Собственно, этим исчерпывается 90% категорной мысли в практическом программировании.

 
 
 
 Re: Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 06:13 
Dmitriy40 в сообщении #1276234 писал(а):
разве в ООП не строгая иерархия наследования
В научной ООП — возможно, а вот в языках и реализациях... Множественное наследование, виртуальные родители — чорт ногу сломит. И всё ведь нужно, полезно и крайне соблазнительно...
shmogin в сообщении #1276228 писал(а):
является ли корректной теоретико-множественная (в смысле наивной ТМ) интерпретация понятий объектно-ориентированного программирования?
Является ли корректным рассмотрение человеческого общества как муравейника? Таки иногда является, если не забывать, что оное общество устроено куда сложнее. Так и по вашему вопросу, только вот теория множеств — максимально упрощённая теория. Ну обзовём мы класс множеством, а дальше-то что из этого обзывательства следует?

 
 
 
 Re: Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 07:44 
shmogin в сообщении #1276228 писал(а):
Друзья,

shmogin в сообщении #1276228 писал(а):
Где об этом можно почитать?

Друг, ты в интернете смотрел? Или сразу решил создать тему на форуме под впечатлением от идеи?
Цитата:
A Semantics of Multiple Inheritance Luca Cardelli, (Семантика Множественного Наследования);
An Imperative Object Calculus Martin Abadi And Luca Cardelli, (Императивное Исчисление Объектов);
An Interpretation of Objects and Objects Types Martin Abadi, Luca Cardelli, Ramesh Viswanathan (Интерпретация Объектов и их Типов);
Object - Oriented Programming in Explicit Mathematics: Towards The Mathematics of Objects, Thomas Studer von Werthenstein (Объектно Ориентированное Программирование в Явной Математике: К Математике Объектов);
Towards Object - Oriented Refinement Calculus, Jamie Shield (К Объектно Ориентированному Исчислению Детализации);
Unifying Theories of Objects, Michael Anthony Smith and Jeremy Gibbons (Объединяя Теории Объектов);
rCOS: A Refinement Calculus for Object Systems, He Jifeng, Xiaoshan Li and Zhiming Liu (rCOS: Исчисления Детализации для Объектных Систем);
An Object-Oriented Approach to Formal Specification, Graeme Paul Smith (Объектно - Ориентированный подход к Формальным Спецификациям);
The Quarks of Object- Oriented Development, Deborach J. Armstrong (Кварки Объектно Ориентированной Разработки);
Формализация Парадигмы Объектно - Ориентированного Программирования, Пискунов А.Г.;
Формализация парадигмы ООП: Насделование Абстрактных Автоматов, Пискунов А.Г.;
(www.ict.edu.ru/ft/005130//index.html) Современные языки программирования и .NET. Основы объектно-ориентированного подхода. Курс лекций Зыков С.
(www.exponenta.ru/educat/systemat/kolesov/index.asp) Объектно-ориентированное моделирование сложных динамических систем Ю.Б. Колесов

 
 
 
 Re: Классы, объекты и т.д. сквозь призму теории множеств
Сообщение19.12.2017, 09:07 
shmogin в сообщении #1276228 писал(а):
Например, допустимо ли интерпретировать класс (понятие ООП) как множество, а объект как элемент множества?
Тогда тут ничего специфически объектно-ориентированного нет: можно вообще любой тип интерпретировать как множество его значений. Ну и категорно тоже, как выше писали.

(Следующее частично дубль, но оставлю.)
Dmitriy40 в сообщении #1276234 писал(а):
Может я что-то пропустил, но разве в ООП не строгая иерархия наследования, без всяких пересечений?
ООП сейчас — это довольно абстрактный набор принципов, конкретные реализации которого весьма различаются. В языках, где есть классы и интерфейсы, как правило класс наследует один класс и реализует любое число интерфейсов, при этом бывают интерфейсы-примеси, имеющие своё поведение (которое в подинтерфейсах тоже можно бывает переопределять), и в итоге отличаются они от классов лишь отсутствием логики инициализации. А в паре языков программирования пересекать и объединять типы можно (в том смысле, что не где-то в уме или на бумаге, а получать представимый в таком языке тип и делать там что-то с ним).

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group