Interested Article - F*

F * (произносится как F star) — функциональный язык программирования , основанный на ML и ориентированный на формальную верификацию разрабатываемых на нём программ.

Его система типов включает в себя зависимые типы , монадические эффекты и . Этих выразительных средств достаточно, чтобы задавать точные спецификации для программ, включая описания функциональной корректности и свойств безопасности. Механизм проверки типов в F* позволяет доказывать, что программы соответствуют их спецификациям. Это делается с использованием комбинации SMT-решателя и ручных доказательств . Программы, написанные на F*, могут быть странслированы в OCaml , F# и C для дальнейшей компиляции и выполнения. Предыдущие версии F* также можно было транслировать в JavaScript .

Последняя версия F* написана полностью на общем подмножестве F* и F# и может быть запущена как с использованием OCaml, так и с использованием F#. Исходный код языка открыт под лицензией Apache 2.0 и активно разрабатывается на GitHub .


Литература

  • Ahman, Danel; Hriţcu, Cătălin; Maillard, Kenji; Martínez, Guido; Plotkin, Gordon; Protzenko, Jonathan; Rastogi, Aseem; Swamy, Nikhil (2017). . 44nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages .
  • Swamy, Nikhil; Hriţcu, Cătălin; Keller, Chantal; Rastogi, Aseem; Delignat-Lavaud, Antoine; Forest, Simon; Bhargavan, Karthikeyan; Fournet, Cédric; Strub, Pierre-Yves; Kohlweiss, Markulf; Zinzindohoue, Jean-Karim; Zanella-Béguelin, Santiago (2016). . 43nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages .

Ссылки


Примечания

  1. (неопр.) . MSR-INRIA . Дата обращения: 28 мая 2020. 21 мая 2020 года.
  2. — 2018.
  3. (неопр.) . GitHub . Дата обращения: 28 мая 2020. 10 июля 2020 года.

Same as F*