Моделювання об'єктів (ООП) в теорії залежних типів


13

Мене цікавлять моделювання об'єктів, від об'єктно-орієнтованого програмування, до теорії залежних типів. Як можливий додаток, я хотів би створити модель, де я можу описати різні особливості імперативних мов програмування.

Я міг знайти лише одну статтю про моделювання об'єктів в теорії залежних типів, а саме:
Об'єктно-орієнтоване програмування в теорії залежних типів А. Сетцер (2006)

Чи є додаткові посилання на тему, яку я пропустив і, можливо, є новіші?

Чи існує реалізація (тобто доказ) для підтвердження теореми, як Coq чи Agda?

Відповіді:


6

Деяку ранню (?) Роботу, виконану в цій галузі, отримали Барт Джейкобс (Неймеген) та Маріке Хайсман. Їх робота заснована на інструменті PVS та спирається на вуглегебраїчне кодування класів (якщо я правильно пам’ятаю). Подивіться на сторінку публікації Марієк для публікацій у 2000 році та її докторську дисертацію в 2001 році. Також подивіться статті Барта Джейкобса, цитовані у згаданому вами документі A Setzer.

Ще в ті часи у них було щось, що називалося інструментом LOOP, але, здається, воно зникло з мереж.

Існує семінар семінарів, відомий як FTfJP (формальні методи для програм, подібних Java), який стосується формальної перевірки програм OO. Безперечно, деякі роботи використовують теорію залежного типу / логіку вищого порядку. Серія семінарів працює вже близько 14 років.


3

Існує істотно розширений наступний документ Andreas Abel, Stephan Adelsberger, Anton Setzer: Інтерактивне програмування в Agda - об'єкти та графічні інтерфейси користувача . Він містить бібліотеку Agda для запису об'єктних програм, включаючи графічні інтерфейси. Існує декілька подальших робіт зі Стефаном Адельсбергером щодо написання верифікованих графічних інтерфейсів у медичній галузі в Агда на основі об'єктно-орієнтованого програмування.


2

Я недостатньо добре розбираюся в цій темі, щоб дати гідний огляд, але я б радив проаналізувати бібліографію наприкінці 2010 р. Докторської дисертації Секхюнь Хань, перевірку програм Java в теорії типів із залежними типами записів та примусовим підтипом .

Деякі останні роботи з логіки розділення також здаються актуальними.


2

Чому ви дивитесь на теорію залежних типів, щоб представити OOP? Чи не можемо ми виконати моделювання OOP задовільно з незалежними розрахунками? У мене є неформальна модель того, як виглядає OOP, скажімо, при перекладі на System F (або Fω, якщо ви хочете підтримувати генеричні файли), і я не бачу, куди ввійде залежність типу-значення.

Наприклад, залежні типи можуть використовуватися, наприклад, для надання значень нижчого рівня алгебраїчним типам даних. Можливо, ви могли б зробити таке низькорівневе кодування функцій ОО, але я не впевнений, що це краще, ніж додати алгебраїчні типи даних до вашої мови моделювання.

Можливо, ви хочете надати більш точну статичну семантику конструкціям OOP, які в даний час не типовані, наприклад, instance_ofпісля яких a cast. Я можу бачити, що хакерство залежного типу є корисним для того, щоб статично міркувати про такі програми; але я не впевнений, що він "моделює" ті операції, які зосереджуються на динамічному куті, це щось більше.


Це не відповідь на запитання. Це не дискусійний форум.
Дейв Кларк
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.