|
Формализация ООП: наследование типов данных
|
|||
---|---|---|---|
#18+
Формализация ООП: наследование типов данных (абстрактных и конкретных) при добавлении атрибута в запись (сомножителя в кортеж). Абстрактный тип данных: это неопределяемое множество + набор функций для работы с этим множеством. См.\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
Нравится:
Не нравится:
|
|||
25.08.2025, 16:15 |
|
|
start [/forum/topic.php?fid=71&gotolast=1&tid=2187291]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
36ms |
get tp. blocked users: |
2ms |
others: | 19ms |
total: | 137ms |
0 / 0 |