Content deleted Content added
Jerryobject (talk | contribs) →External links: WP:CATEGORY add. |
→External links: destub |
||
(12 intermediate revisions by 8 users not shown) | |||
Line 5:
| logo = Fstar-official-logo-2015.png
| logo size = 128px
| logo caption = The official
| paradigm = [[Multi-paradigm programming language|Multi-paradigm]]: [[Functional programming|functional]], [[Imperative programming|imperative]]
| family = [[ML (programming language)|ML]]: [[Caml]]: [[OCaml]]
Line 11:
| 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 =
| latest release date = {{Start date and age|
| 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|
| file ext = .fst
| implementations =
| dialects =
| influenced by =
| influenced =
}}
'''F*''' (pronounced ''F star'') is a [[High-level programming language|high-level]], [[Comparison of multi-paradigm programming languages|multi-paradigm]], [[Functional programming|functional]] and [[Object-oriented programming|object-oriented]] [[programming language]] inspired by the languages [[ML (programming language)|ML]], [[Caml]], and [[OCaml]], and intended for [[program verification]]. It is a joint project of [[Microsoft Research]], and the [[French Institute for Research in Computer Science and Automation]] (Inria).<ref name="MS-Inria"/> Its [[type system]] includes [[dependent types]], [[Monad (functional programming)|monadic]] [[Side effect (computer science)|effects]], and [[refinement type]]s. 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 [[satisfiability modulo theories]] (SMT) solving and [[Proof assistant|manual proofs]]. For execution, programs written in F* can be translated to [[OCaml]], [[F Sharp (programming language)|F#]], [[C (programming language)|C]], [[WebAssembly]] (via KaRaMeL tool), or [[assembly language]] (via Vale toolchain). Prior F* versions could also be translated to [[JavaScript]].
It was introduced in 2011.<ref name="origin-paper">
Line 45:
|publisher=Association for Computing Machinery
|url=https://dl.acm.org/doi/10.1145/2034773.2034811
|access-date=17 April 2023|url-access=subscription
==History==
Line 54 ⟶ 55:
=== 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://
=== Data types ===
Common
==References==
Line 74 ⟶ 75:
|year=2017
|title=Dijkstra Monads for Free
|url=https://
|book-title=44nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
}}
Line 92 ⟶ 93:
|year=2016
|title=Dependent Types and Multi-Monadic Effects in F*
|url=https://
|book-title=43nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
}}
* Swamy, Nikhil; Martínez, Guido; Rastogi, Aseem (2024). ''[https://
==External links==
*{{Official website|
*{{GitHub|FStarLang}}
*[https://
{{ML programming}}
Line 108 ⟶ 109:
{{DEFAULTSORT:F star (programming language)}}
[[Category:High-level programming languages]]
[[Category:Functional languages]]
[[Category:OCaml programming language family]]
Line 121 ⟶ 123:
[[Category:Cross-platform free software]]
[[Category:Software using the Apache license]]
[[Category:Statically typed programming languages]]
|