今日、Microsoft による新しい並列プログラミング言語を発表するスラッシュドットでこの記事を読みました。
この新しいプログラミング言語とは何ですか? 並列プログラミングと書いてあります。しかし、MPI、PVM、OpenMP、および同様の並列ライブラリ/フレームワークの代替/代替になるのでしょうか?
何かご意見は?
今日、Microsoft による新しい並列プログラミング言語を発表するスラッシュドットでこの記事を読みました。
この新しいプログラミング言語とは何ですか? 並列プログラミングと書いてあります。しかし、MPI、PVM、OpenMP、および同様の並列ライブラリ/フレームワークの代替/代替になるのでしょうか?
何かご意見は?
Axum は、安全でパフォーマンスの高い並行プログラミングをより簡単にするように構造化された言語です。lock
言語によってモデル化された概念により、 (C# で) Monitor
、、、ReaderWriterLockSlim
などを使用してスレッド同期を明示的にする必要がなくなります。
Axum 内のアイデアの多くは、1986 年以来、Erlang プログラミング言語にあったと言えます。この言語は、スウェーデンで働く研究者がエリクソンのために電話交換機で動作するように設計した言語です。したがって、高度な同時負荷下での大量のスループットのサポートは非常に重要でした。本質的にそれは言語に設計されました。Axum のアイデアの多くは新しいものではありませんが、(少なくとも言語レベルでは) .NET と CLR にとっては確かに新しいものです。
これらのアイデアの一部を含む既存の .NET ライブラリは次のとおりです。
Erlang と同様に、メッセージ パッシングは Axum の中心的な概念です。Erlang と同様に、Axum は、メッセージの受信者がインプロセスにいるかリモートにいるかについてほとんど無関心です。Axum は現在、WCF との統合を提供しています。
Axum は、ライブラリを使用するだけでなく、言語レベルでこれらの概念をサポートするという点で、上記のライブラリとは異なります。Axum コンパイラは、Axum 言語だけでなく、C# 言語自体の実験的な拡張機能も扱います。つまり、isolated
andreadonly
キーワードです。
言語に新しい機能を追加することは、軽視すべきことではありません。 Spec#は、 MSRで開発された別の C# スーパーセット言語です(同時実行とは関係ありません)。.NET 4.0 でのコード コントラクトのサポートに見られるように、Microsoft は、新しい言語拡張よりも新しい API の追加を優先することを決定しました (これは、CLR のすべての言語のユーザーに利益をもたらします)。ただし、Axum の場合、十分ではありません。 C# 3.0 言語の豊富な機能により、真に安全な並行プログラミングのために型とそのメンバーに必要な種類の不変性制約を表現できます。
Erlang に手を出して見たものが気に入ったので、Axum が私たちをどこへ連れて行ってくれるのかとても楽しみです。チームによって提案された C# 言語の拡張機能の一部は、通常の C# プロジェクトにも役立ちます。
最後に、Erlang には優れた同時実行モデルだけではないことを指摘したいと思います。Erlang は厳密な関数型プログラミング言語です。ホットスワップ可能なコードをサポートしているため、システムを停止することなくシステムをアップグレードできます (電話交換機やその他の 24 時間 365 日システムの望ましい機能です)。英国の大手電気通信会社から、交換機を 1 年間運用し、その間に 4 つの通話しかルーティングできなかったという報告を聞きました。Erlang には、リモート例外処理などの他の特徴もあります。
あなたの質問で頭に釘を打ったように私には見えます。あなたが言及した言語/フレームワークのいくつかに代わるMicrosoft.NETのように見えます。こちらのプログラマーズ ガイドをご覧ください。
残りの .NET Framework とうまく連携するはずです。いくつかの興味深い C#/F#/Axum 相互作用が開かれる可能性があります...
Axum は、Microsoft の「Maestro」言語の新しい名前です。この言語は、もともとは並列プログラミングの研究用言語でしたが、最近、一流の言語に「昇格」されました。
チャンネル 9 の詳細については、こちらをご覧ください。
Maestro: 並行プログラミング用のマネージド ドメイン固有言語
...公式の Axum チーム ブログ.
Axumの状態に関する最新情報は次のとおりです。明らかに、同時実行機能の一部は C#/VB.Net の一部ではなくなります。
...安全な並列処理とエージェント ベースのプログラミングに関する概念は、現在 C# や VB などの言語で採用するには、主流からかけ離れていると多くの人が見なしていました。Axum のアイデアは、これらの概念を汎用言語に強制しないことでした。