ACSL (Ansi C Specification Language) - это спецификация для кода C, снабженная специальными комментариями, которая позволяет формально проверять код C.
Я не рассматривал это, но я полагаю, что формальные методы, используемые в верификаторах ACSL , будут похожи на Hoare Logic. Однако для чисто функциональных языков, таких как Haskell, я не представляю, какой формализм будет использоваться для формальной проверки.
Кто-нибудь сделал что-то похожее на ACSL , но для чисто функционального языка? Если нет, проводилось ли какое-либо исследование формальной проверки аннотируемого стиля для функциональных языков?
Я знаю, что есть зависимая типизация, которую поддерживают многие языки (Agda, Idris и т. Д.), Но в Хаскель-зависимой типизации сложно без некоторого (нечитаемого?) Волшебства типов. Имея это в виду, и поскольку Haskell имеет гораздо лучшую библиотечную поддержку, чем Agda и Idris, я считаю, что такая система для функциональной формальной проверки может быть полезной, но я не знаю, проводилось ли исследование по этому вопросу или нет.