The Early History of F#
2021-09-25 00:00:21
DON SYME, Microsoft, United Kingdom
推敲: Philip Wadler, University of Edinburgh, UK
本稿は、F# プログラミング言語の起源と初期の歴史について説明します。 まず、1970年代、80年代、90年代の強く型付けされた関数型プログラミング(FP)の起源から始めます。 同時期にMicrosoftが設立され、成長してソフトウェア業界を支配しました。 1997年に、Javaへの応答として、Microsoftは内部プロジェクトを開始しました。これは最終的に.NETプログラミングフレームワークおよびC# 言語になりました。 1997年から、ケンブリッジのMicrosoft Researchで学術的な関数型プログラミングと産業界が結合しました。
研究者たちは、Project 7、つまり.NETに複数の言語を取り入れるための最初の取り組みを介して同社と関わりを持ち、そして1998年に.NET Genericsを、2002年にF# を発表しました。 F# は、強く型付けされた関数型プログラミングの提唱者たちによる、1990年代半ばの「オブジェクト指向の津波」に対する回答の1つでした。 F# のコア機能の開発は2004年から2007年にかけて行われました。本稿は、2007年から2010年にかけてMicrosoftによるF# の「製品化」とF# 2.0のリリースをもたらした、意思決定プロセスについて説明します。 また、オブジェクトプログラミング、クォート、静的に解決された型パラメーター、アクティブパターン、コンピュテーション式、非同期、測定単位、型プロバイダーなど、F# の特徴的な機能の起源についても説明します。 そして、F# 3.0~4.5を含む2010年以降のF# の主要な開発、および、F# が複数の配信チャネルを持つオープンソースのクロスプラットフォーム言語として進化したことについて説明します。 最後に、F# のいくつかの使用法と、F# がこれまでに他の言語に与えた影響を調べます。
CCS 分類カテゴリー:
- Software and its engineering → General programming languages
- Social and professional topics → History of programming languages
キーワード&キーフレーズ: Programming Languages, Functional Programming, Object-oriented Programming, Pattern Matching, Asynchronous Programming, Type Providers, Units of Measure, Dimensions, F#
ACM 参考文献フォーマット:
- Don Syme. 2020. The Early History of F#. Proc. ACM Program. Lang. 4, HOPL, Article 75 (June 2020), 58 pages. https://doi.org/10.1145/3386325
目次
- 1 序章
- 2 2020年のF# とは
- 3 背景:言語、Microsoftでのプログラム可能性、そして.NETの創造
- 4 背景:1990年代における強く型付けされた関数型プログラミング – Calculi、Miranda、OCaml、Haskell、Pizza
- 5 Project 7 と .NETのジェネリクス
- 6 F# を作成する決定
- 7 草創期のF# – 2002~2003
- 8 草創期のF# – リリース
- 9 F# 1.0, 2004~2006 – 概要
- 9.1 F# 1.0 – パイプライン
- 9.2 F# 1.0 – オブジェクトプログラミングの取り組み
- 9.3 F# 1.0 – 機能コアの改善:初期化グラフ
- 9.4 F# 1.0 – 機能コアの改善:オーバーロードされた演算
- 9.5 F# 1.0 – 機能コアの改善:アクティブパターン
- 9.6 F# 1.0 – 機能コアの改善:ファーストクラスのイベント
- 9.7 F# 1.0 – 機能コアの改善:async/await
- 9.8 F# 1.0 – 機能コアの改善:コンピュテーション式
- 9.9 F# 1.0 – メタプログラミング
- 9.10 F# 1.0 – 機能コアの改善:字下げを認識する構文
- 9.11 F# 1.0 – IDEツール
- 10 金融業界と関数型:Microsoft、2007年にF# にコミット
- 11 F# 2.0 – 2007~2010
- 12 F# 2.0 – 測定単位
- 13 型プロバイダーとF# 3.0
- 14 .NET、F# 、そしてクラウドおよびモバイルコンピューティングへの移行
- 15 F# 、C# 、.NETの新しい黎明期:ついにオープンソース化&クロスプラットフォーム化!
- 16 F# コンパイラーのコンポーネント化
- 17 コミュニティとF# ソフトウェア財団
- 18 .NET Core:MicrosoftがC# 、F# 、.NETをクロスプラットフォームに
- 19 モバイル用途のF#
- 20 F# 、JavaScript、そしてフルスタックプログラミング
- 21 ふりかえり
- 22 結論
- 謝辞
- 参考文献