Подтвердить что ты не робот

ООП основана на любой отрасли математики?

Я знаю, что реляционные базы данных основаны на теории множеств, функциональное программирование основано на исчислении лямбда, логическое программирование основано на логике (конечно:):), и теперь, когда я думаю об этом; Я не уверен, что императивное и общее программирование основано на какой-либо отдельной области математики.

4b9b3361

Ответ 1

ООП не вытекает из какого-либо строгого формализма, но это действительно формализм. Был предпринят ряд попыток правильно определить этот формализм. Наиболее заметную работу выполняет Luca Cardelli: http://lucacardelli.name/indexPapers.html (см. Раздел "Объекты" )

Императивное программирование может быть основано на любом формализме, эквивалентном Тьюрингу, включая лямбда-исчисление, СК-логику, абстрактную машину Тьюринга, алгоритмы Маркова или любую другую аналогичную систему перезаписи времени (TRS). Общее программирование ничем не отличается, это термин переписывающей системы рода.

Итак, для наиболее распространенных математических оснований буквально все, что вам нужно, чтобы зарыться в системы перезаписи терминов.

Более поздняя работа - недавняя работа AbdelGawad в Университете Райса. Он создает математическую модель основного ООП (например, Java, С#, С++, Scala, X10 и т.д.), Называемую NOOP. Вот ссылка на его кандидатскую диссертацию http://scholarship.rice.edu/handle/1911/70199

Ответ 2

ООП берет свое начало в таких языках программирования, как Simula-67 и Smalltalk-80, а не в любой математической теории или формализме. Но я полагаю, что вы могли бы сказать, что концепции объектов ООП, класса и наследования основаны на наивных или здравых системах категорий и классификации; например таксономиями, разработанными Линнеем.