F*

Не следует путать с F# — язык программирования.
F*
Изображение логотипа
Класс языка
Автор Microsoft Research и INRIA[1]
Разработчик Microsoft Research[2] и INRIA
Выпуск
Система типов строгая, статическая, с выводом типов, с зависимыми типами
Испытал влияние Coq, Dafny[англ.], F#, Lean, OCaml, Standard ML
Лицензия Apache Software License
Сайт fstar-lang.org
ОС Кроссплатформенное программное обеспечение (Linux, macOS, Windows)

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

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

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


Литература

  • Ahman, Danel; Hriţcu, Cătălin; Maillard, Kenji; Martínez, Guido; Plotkin, Gordon; Protzenko, Jonathan; Rastogi, Aseem; Swamy, Nikhil (2017). "Dijkstra Monads for Free". 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). "Dependent Types and Multi-Monadic Effects in F*". 43nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.

Ссылки

  • Домашняя страница F*
  • Исходные коды F* на GitHub
  • Учебник F*
Перейти к шаблону «Microsoft Research»
Основные
проекты
Языки программирования и компиляторы
Распределённые вычисления/Грид
  • Bigtop
  • Gridline
  • BitVault
  • Orleans
Интернет и сети
Другое
Операционные системы
API
  • Joins
  • Accelerator
  • Dryad
  • SXM
Выпущено в качестве отдельного продукта
MSR Labs
Live Labs[англ.]
Актуальные
  • Pivot
  • Seadragon
    • Deep Zoom
    • DeepZoomPix
Прекращённые
  • Deepfish
  • Listas
  • Live Clipboard
  • Photosynth
  • Volta
FUSE Labs[англ.]
Другие подразделения
Категория Категория
Перейти к шаблону «Свободное и открытое программное обеспечение Microsoft»
Общая информация
Программное
обеспечение
Приложения
Игры
  • Allegiance[англ.]
Языки
программирования
Фреймворки и
средства разработки
Операционные
системы
Прочее
  • ChronoZoom
  • Project Mu
  • SILK
  • TLAPS
  • TPM 2.0 Reference Implementation
  • WikiBhasha
Лицензии
Связанные темы
  • .NET Foundation
  • F Sharp Software Foundation
  • Microsoft Open Specification Promise
  • Outercurve Foundation
Категория Категория


Примечания

  1. Microsoft Research Inria Joint Centre  (неопр.). MSR-INRIA. Дата обращения: 28 мая 2020. Архивировано 21 мая 2020 года.
  2. 1 2 https://www.fstar-lang.org/#people
  3. Release 0.9.6.0 — 2018.
  4. FStarLang/FStar  (неопр.). GitHub. Дата обращения: 28 мая 2020. Архивировано 10 июля 2020 года.