Моделирование объектов (ООП) в теории зависимых типов


13

Я заинтересован в моделировании объектов, от объектно-ориентированного программирования, в теории зависимых типов. В качестве возможного приложения я хотел бы иметь модель, в которой я могу описать различные функции императивных языков программирования.

Я мог найти только одну статью о моделировании объектов в теории зависимых типов, а именно:
объектно-ориентированное программирование в теории зависимых типов А. Сетцера (2006)

Есть ли дополнительные ссылки по теме, которые я пропустил, и, возможно, есть более свежие?

Возможно ли имеется реализация (то есть доказательство) для проверки теорем, как Coq или Agda?

Ответы:


6

Некоторая ранняя (?) Работа, проделанная в этой области, была выполнена Бартом Джейкобсом (Неймеген) и Марике Хуисман. Их работа основана на инструменте PVS и основана на коалгебраической кодировке классов (если я правильно помню). Посмотрите на странице публикации Марике статьи за 2000 год и ее докторскую диссертацию в 2001 году. Также посмотрите на статьи Барта Джейкобса, процитированные в статье А Сетцера, которую вы упоминаете.

В те времена у них было нечто, называемое инструментом LOOP, но оно, похоже, исчезло из интернета.

Существует серия семинаров, известных как FTfJP (Формальные методы для Java-подобных программ), посвященных формальной проверке ОО-программ. Несомненно, в некоторых работах используется теория зависимых типов / логика высшего порядка. Серия мастерских работает уже около 14 лет.


3

Существенно расширенная статья Андреаса Абеля, Стефана Адельсбергера, Антона Сетцера: Интерактивное программирование в Agda - объекты и графические интерфейсы пользователя . Он содержит библиотеку Agda для написания объектных программ, в том числе GUI. Со Стефаном Адельсбергером есть несколько последующих работ по написанию проверенных графических интерфейсов в медицинской области в Агде, основанных на объектно-ориентированном программировании.


2

Я недостаточно разбираюсь в этой теме, чтобы дать достойный обзор, но я бы посоветовал очистить библиографию кандидатской диссертации в конце 2010 года о Сохьюне Хане, Проверка программ Java в теории типов с зависимыми типами записей и принудительным подтипом» .

Некоторые недавние работы по логике разделения также кажутся актуальными.


2

Почему вы смотрите на зависимых теорию типов для представления ООП? Разве мы не можем моделировать ООП удовлетворительным образом с независимыми исчислениями? У меня есть неформальная модель того, как выглядит ООП, скажем, при переводе в System F (или Fω, если вы хотите поддерживать дженерики), и я не вижу, где зависимость типа-значения вступит в игру.

Зависимые типы могут использоваться, например, для придания низкоуровневого значения алгебраическим типам данных. Возможно, вы могли бы сделать такое низкоуровневое кодирование объектов ОО, но я не уверен, что это лучше, чем добавлять алгебраические типы данных в ваш язык моделирования.

Возможно, вы хотите придать более точную статическую семантику конструкциям ООП, которые в настоящее время нетипизированы, например, instance_ofпосле cast. Я вижу, как хакеры зависимых типов полезны для статического рассуждения о таких программах; но я не уверен, что это «смоделирует» те операции, которые концентрируются на динамическом угле, это нечто большее.


Это не ответ на вопрос. Это не дискуссионный форум.
Дэйв Кларк
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.