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

13

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

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

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

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

mrsteve
источник

Ответы:

6

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

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

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

Дэйв Кларк
источник
3

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

Антон Сетцер
источник
2

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

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

Франсуа Г
источник
2

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

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

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

gasche
источник
Это не ответ на вопрос. Это не дискуссионный форум.
Дэйв Кларк