F*: A Proof-Oriented Programming Language
Developed by Microsoft and Inria, F* is a new tool for functional programming and theorem proving.
1What is F*?
F* is a programming language that combines the expressive power of dependent types with SMT-based automated proving and interactive theorem proving techniques. It supports both purely functional and effectful programming. By default, F* code compiles to OCaml but can also be transformed to F#, C, or Wasm using the KaRaMeL tool. The language itself is written in F* and bootstrapped using OCaml.
2Technical Features
F* can be compiled to assembly code using the Vale toolchain. Distributed under the Apache 2.0 license, the project regularly releases binaries for Windows, Linux, and macOS. Installation is possible via OPAM, Docker, or Nix, and it can also be built from source. Actively developed on GitHub, F* is supported by Microsoft Research, Inria, and the open-source community.
3Learning Resources
An online book titled 'Proof-oriented Programming In F*' is currently being written, featuring examples and exercises that can be tried directly in a browser. There's also a dedicated tutorial for Low*, a low-level subset of F* that can be compiled to C via KaRaMeL. The book receives regular updates with new content.
4Academic Use
F* is taught as a course at seasonal schools like the Oregon Programming Language Summer School (2021) and ECI 2019. Lecture notes, slides, and code samples are available online. Courses such as 'Program Verification with F*' from the 2018 EUTypes Summer School provide comprehensive resources on the language's academic applications.
5Community Support
F* users can ask questions and follow announcements via GitHub Discussions. Previously conducted on Slack, community interactions have now moved to a Zulip-based forum. The monthly F* PoP Up Seminar serves as a meeting point for users and developers. A low-traffic mailing list is also available for updates.
6Industrial Applications
F* is used in both academic and industrial projects. Beyond Microsoft Research and Inria, various organizations have adopted the language. Users are encouraged to share their implementation examples by writing to the fstar-mailing-list, helping to grow the ecosystem of practical applications.
7Development Ecosystem
The F* ecosystem is expanding with tools like KaRaMeL and the Vale toolchain. Its interoperability with languages such as OCaml, F#, and C enhances integration potential. Being open-source allows developers to contribute to the core language structure. GitHub releases are updated regularly with new features and fixes.
8Future Potential
F* has significant potential for security-critical software and projects requiring formal verification. Its support for dependent types and automated theorem proving increases its popularity in academic circles. Active development and a growing community indicate that F* will see broader adoption in future projects across various domains.
Original article: Hacker News: Front Page — F*: Kanıt Odaklı Programlama Dili