Content deleted Content added
No edit summary |
→External links: destub |
||
(43 intermediate revisions by 25 users not shown) | |||
Line 1:
{{
{{distinguish|F (programming language)|F# (programming language)}}
{{Infobox programming language
| name
| logo
| logo size = 128px
| logo caption = The official F* logo
| paradigm = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Imperative programming|imperative]]
| family = [[ML (programming language)|ML]]: [[Caml]]: [[OCaml]]
| designers = Nikhil Swamy, Juan Chen, Cédric Fournet, Pierre-Yves Strub, Karthikeyan Bhargavan, Jean Yang
| developers = [[Microsoft Research]],<br/>[[French Institute for Research in Computer Science and Automation|Inria]]<ref name="MS-Inria">{{cite web |url=https://www.microsoft.com/en-us/research/collaboration/inria-joint-centre/ |title=Microsoft Research Inria Joint Centre |website=MSR-INRIA}}</ref>
| released = {{Start date and age|2011}}
| latest release version = v2025.03.25<ref name="GitHubCode"/>
| latest release date = {{Start date and age|2025|03|26|df=y}}
| typing = [[Dependent types|dependent]], [[Type inference|inferred]], [[Static typing|static]], [[Strong and weak typing|strong]]
| programming language = F*
| operating system = [[Cross-platform software|Cross-platform]]: [[Linux]], [[macOS]], [[Windows]]
| license = [[Apache License 2.0|Apache 2.0]]
| website = {{URL|fstar-lang.org}}
| file ext = .fst
| implementations =
| dialects =
| influenced by = [[Dafny (programming language)|Dafny]], [[F Sharp (programming language)|F#]], [[Lean (proof assistant)|Lean]], [[OCaml]], [[Coq (software)|Rocq]], [[Standard ML]]
| influenced =
}}
'''F*
It was introduced in 2011.<ref name="origin-paper">
{{cite conference
|last1=Swamy |first1=Nikhil
|last2=Chen |first2=Juan
|last3=Fournet |first3=Cédric
|last4=Strub |first4=Pierre-Yves
|last5=Bhargavan |first5=Karthikeyan
|last6=Yang |first6=Jean
|date=September 2011
|title=Secure distributed programming with value-dependent types
|conference=ICFP '11: Proceedings of the 16th ACM SIGPLAN International Conference on Functional Programming
|volume=46
|issue=9
|pages=266–278
|___location=Tokyo, Japan
|doi=10.1145/2034574.2034811
|publisher=Association for Computing Machinery
|url=https://dl.acm.org/doi/10.1145/2034773.2034811
|access-date=17 April 2023|url-access=subscription
}}</ref><ref>{{cite web |url=https://www.microsoft.com/en-us/research/project/the-f-project/ |title=The F* Project |website=Microsoft |access-date=20 April 2023}}</ref> and is under active development on [[GitHub]].<ref name="GitHubCode">{{cite web |url=https://github.com/FStarLang/FStar |title=FStarLang/FStar |website=GitHub |access-date=18 May 2025}}</ref>
==History==
===Versions===
Until version 2022.03.24, F* was written entirely in a common subset of F* and [[F Sharp (programming language)|F#]] and supported bootstrapping in both [[OCaml]] and F#. This was dropped starting in version 2022.04.02.<ref>{{cite web |title=fstar.exe is no longer buildable in F# as a .NET executable #2512 |url=https://github.com/FStarLang/FStar/pull/2512 |website=Github |access-date=17 April 2023}}</ref><ref>{{cite web |title=Consider dropping requirement that F* code has to be valid F# #1737 |url=https://github.com/FStarLang/FStar/issues/1737 |website=Github |access-date=17 April 2023}}</ref>
== Overview ==
=== Operators ===
F* supports common arithmetic [[Operator (computer programming)|operators]] such as <code>+</code>, <code>-</code>, <code>*</code>, and <code>/</code>. Also, F* supports relational operators like <code><</code>, <code><=</code>, <code>==</code>, <code>!=</code>, <code>></code>, and <code>>=</code>.<ref name=":0">{{Cite book |last=Swamy |first=Nikhil |url=https://fstar-lang.org/tutorial/proof-oriented-programming-in-fstar.pdf |title=Proof-Oriented Programming in F* |last2=Martínez |first2=Guido |last3=Rastogi |first3=Aseem |date=Jan 14, 2024}}</ref>
=== Data types ===
Common primitive [[Primitive data type|data types]] in F* are <code>bool</code>, <code>int</code>, <code>float</code>, <code>char</code>, and <code>unit</code>.<ref name=":0" />
==References==
{{Reflist}}
===
* {{cite conference
|last2=Hriţcu |first2=Cătălin
|last3=Maillard |first3=Kenji
|last4=Martínez |first4=Guido
|last5=Plotkin |first5=Gordon
|last6=Protzenko |first6=Jonathan
|last7=Rastogi |first7=Aseem
|last8=Swamy |first8=Nikhil
|year=2017
|title=Dijkstra Monads for Free
|url=https://fstar-lang.org/papers/dm4free/
|book-title=44nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
}}
* {{cite conference
|last2=Hriţcu |first2=Cătălin
|last3=Keller |first3=Chantal
|last4=Rastogi |first4=Aseem
|last5=Delignat-Lavaud |first5=Antoine
|last6=Forest |first6=Simon
|last7=Bhargavan |first7=Karthikeyan
|last8=Fournet |first8=Cédric
|last9=Strub |first9=Pierre-Yves
|last10=Kohlweiss |first10=Markulf
|last11=Zinzindohoue |first11=Jean-Karim
|last12=Zanella-Béguelin |first12=Santiago
|year=2016
|title=Dependent Types and Multi-Monadic Effects in F*
|url=https://fstar-lang.org/papers/mumon/
|book-title=43nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
}}
* Swamy, Nikhil; Martínez, Guido; Rastogi, Aseem (2024). ''[https://fstar-lang.org/tutorial/proof-oriented-programming-in-fstar.pdf Proof-Orented Programming in F*].''
==External links==
*
*{{GitHub|FStarLang}}
*[https://
{{ML programming}}
{{Microsoft FOSS}}
{{Microsoft development tools}}
{{Microsoft Research}}
{{DEFAULTSORT:F star (programming language)}}
[[Category:High-level programming languages]]
[[Category:Functional languages]]
[[Category:
[[Category:.NET programming languages]]
[[Category:Microsoft programming languages]]
[[Category:Microsoft Research]]
[[Category:Microsoft free software]]
[[Category:Dependently typed languages]]
[[Category:Automated theorem proving]]
[[Category:Programming languages created in 2011]]
[[Category:Proof assistants]]
[[Category:2011 software]]
[[Category:Cross-platform free software]]
[[Category:Software using the Apache license]]
[[Category:Statically typed programming languages]]
|