powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Публикации участников форума [игнор отключен] [закрыт для гостей] / Формализация ООП: наследование типов данных
1 сообщений из 1, страница 1 из 1
Формализация ООП: наследование типов данных
    #40141398
Фотография tchingiz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Формализация ООП: наследование типов данных (абстрактных и конкретных)
при добавлении атрибута в запись (сомножителя в кортеж).

Абстрактный тип данных: это неопределяемое множество
+ набор функций для работы с этим множеством. См.\cite{Bertran10,Bertran1}.
Традиционный пример -- это стек.
Над этим пример подшучивал Дейкстра:
---
Надо сказать, что стеки присутствуют в дидактических представлениях
абстрактных типов данных в таком большом количестве,
что Э. Дейкстра как-то остроумно заметил, что "абстрактные типы данных являются прекрасной теорией,
целью которой является описание стеков".
---
Но тут он, ээээ, несколько погорячился, ибо именно так вводили сложение
и умножение на заре компьютерной техники. Что говорит об универсальности
приема. Об этом можно почитать у Арнольда \cite{ARNOLD:ARIF}
про теоретическую арифметику.
И эта спецификация была реализована в \cite{AGP:PNARITH}

При этом каждый класс -- это реализованный в некотором языке программирования АТД (по утверждению Б.Мейера).
А при уточнении АТД к классу неопределяемое множество может постепенно
становиться более определяемым, вплоть до полностью определенного.
Тогда получится конкретный тип данных.
Между АТД - КТД и классом есть определенная связь.
В случае категоричного атд (то есть такого, который не допускает
неизоморфных реализаций \cite[стр.97]{STEPANOV:M2P})
это практически взаимооднозначное соответствие.
Тогда, раз на классах есть операция наследования,
то на типах данных должна быть похожая операция.
Только, всвязи с множествами и функциями, она должна иметь математическое
определение.
Её удается построить при помощи набора из частично - рекурсивных функций
Черча. В изложени Манина \cite{MANIN1},
так как большую роль играет диагональное произведение.
Его нет в других аналогичных изложениях частично - рекурсивных функций
Черча.

Наследование типов данных описано в "Наследование абстрактных автоматов"
https://www.researchgate.net/publication/349098038,
англ.версия:
"Inheritance of abstract automata"
https://www.researchgate.net/publication/348234288

"Диагональное произведение и наследование функций спецификации родительского класса"
https://www.researchgate.net/publication/334362890

Ссылки:
@BOOK{Bertran10,
AUTHOR = "{Мейер Б.}",
YEAR = "2016",
NUMPAGES = "970",
ADDRESS = "",
PUBLISHER = "М.:Национальный Открытый Университет ИНТУИТ",
language = "russian",
TITLE = "{Основы объектно-ориентированного программирования. 2-е издание}"
}
@BOOK{Bertran10:En,
AUTHOR = "Meyer B.",
YEAR = "2000",
PUBLISHER = "Santa Barbara :ISE Inc, USA, p. 1284 ",
TITLE = "{Object - oriented Software Construction. 2-nd edition}",

}
@MISC{Bertran1,
AUTHOR = "{Мейер Б.}",
TITLE = "{Основы объектно-ориентированного программирования. Абстрактные типы данных (АТД)}",
NOTE = "\url{https://intuit.ru/studies/courses/71/71/lecture/2122}"
}

@BOOK{ARNOLD:ARIF,
ADDRES = "Москва",
AUTHOR = "Арнольд И.В.",
TITLE = "Теоретическая арифметика",
JOURNAL= "",
PUBLISHER = "УЧПЕДГИЗ",
YEAR = "1938",
NUMBER = "",
PAGES = "480",
ISBN = {978-5-458-26209-5},
NOTE = "\url{https://math.ru/lib/book/djvu/klassik/teor_arifm.djvu}"
}

@BOOKLET{AGP:PNARITH,
author = "{Пискунов А.Г.}",
year = "2022",
month = "12",
pages = {45},
title = {Арифметика Пеано: от спецификации к классу / А.Г.Пискунов, В.И.Рудык, И.А.Петренко //},
language = "russian",
NOTE = "Интернет ресурс: \url{https://www.researchgate.net/publication/365979331}"
}

@book{STEPANOV:M2P,
author = "{Степанов А.А.}",
year = {2015},
pages = {264},
title = {От математики к обобщенному программированию / А.А.Степанов, Д.Э.Роуз // пер. с англ. А.А.Слинкина},
PUBLISHER = "М.: ДМК Пресс"
}
@book{STEPANOV:M2PE,
author = {Stepanov, Alexander A. and Rose, Daniel E.},
title = {From Mathematics to Generic Programming},
year = {2014},
publisher = {Addison-Wesley / Pearson},
address = {Upper Saddle River, NJ},
isbn = {978-0321942043},
url = {https://www.fm2gp.com/},
note = {Includes foundational abstract algebra and number theory for generic programming}
}

@BOOK{MANIN1,
ADDRES = "Москва",
AUTHOR = "{Манин Ю.И.}",
TITLE = "Вычислимое и невычислимое",
JOURNAL= "",
PUBLISHER = "Советское радио",
YEAR = "1980",
NUMBER = "",
PAGES = "128",
NOTE = "\url{https://obuchalka.org/2012030563851/vichislimoe-i-nevichislimoe-manin-u-i-1980.html}"
}
...
Изменено: 25.08.2025, 16:16 - tchingiz
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / Публикации участников форума [игнор отключен] [закрыт для гостей] / Формализация ООП: наследование типов данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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