F* (programming language)

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Avicenno (talk | contribs) at 18:13, 5 September 2018 (→‎External links: clean up + adding portal). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

F*
Paradigmmulti-paradigm: functional, imperative, formal verification
Designed byMicrosoft Research, MSR-Inria,[1] and Inria
Stable release
Typing disciplinestatic, strong, inferred, dependent types, formal verification
OSCross-platform
(Windows, macOS, and Linux)
LicenseApache 2.0 License
Websitewww.fstar-lang.org
Influenced by
F#, OCaml, Standard ML, Fine, F7, F5, FX, HTT, Trellys, Zombie, Dafny

F* (pronounced F star) is a functional programming language inspired by ML and aimed at program verification. Its type system includes dependent types, monadic effects, and refinement types. This allows expressing precise specifications for programs, including functional correctness and security properties. The F* type-checker aims to prove that programs meet their specifications using a combination of SMT solving and manual proofs. Programs written in F* can be translated to OCaml, F#, and C for execution. Previous versions of F* could also be translated to JavaScript.

The latest version of F* is written entirely in a common subset of F* and F#, and bootstraps in OCaml and F#. It is open source (under the Apache 2.0 License) and is under active development on GitHub.[2]

References

  1. ^ "Microsoft Research Inria Joint Centre". MSR-INRIA.
  2. ^ "FStarLang/FStar". GitHub.

General

  • 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. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)
  • 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. {{cite conference}}: Unknown parameter |booktitle= ignored (|book-title= suggested) (help)

External links