F* ( Fスターと発音) は、ML、Caml、OCaml 言語に触発された、高水準のマルチパラダイム関数型オブジェクト指向プログラミング言語で、プログラム検証を目的としています。これは、 Microsoft Researchとフランス国立情報学研究所(Inria)の共同プロジェクトです。 [ 1 ]その型システムには、依存型、モナド効果、およびリファインメント型が含まれています。これにより、機能的正しさやセキュリティ特性を含む、プログラムの正確な仕様を表現できます。F* 型チェッカーは、充足可能性モジュロ理論(SMT) の解決と手動証明の組み合わせを使用して、プログラムが仕様を満たしていることを証明することを目指しています。実行のために、F* で書かれたプログラムは、OCaml、F#、C、WebAssembly (KaRaMeL ツール経由)、またはアセンブリ言語(Vale ツールチェーン経由) に変換できます。以前の F* バージョンはJavaScriptに変換することもできました。
バージョン 2022.03.24 までは、F* は F* とF#の共通サブセットで完全に記述されており、 OCamlと F#の両方でブートストラップをサポートしていました。これはバージョン 2022.04.02 から廃止されました。[ 5 ] [ 6 ]
F* は、、、、などの一般的な算術演算子をサポートしています。また、F *は、、、、、、などの関係演算子もサポートしています。[ 7 ]+-*/<<===!=>>=
F* の一般的な基本データ型boolは、、、、、およびです。[ 7 ]intfloatcharunit