2010-12-03 3 views
3

プログラマが目立った違いなく、システムがプログラムを並列化するプログラミング言語はありますか?決定的に見える並列プログラミング言語?

つまり、プログラマは、追加のタグやメタデータなしで、線形で決定論的なプログラムを作成し、基礎となるシステムがすべての作業を並列化します。

+0

"リニア"とは具体的にはどういう意味ですか? –

+0

実行パターンに従えば、直線が得られます。 – blueberryfields

答えて

4

haskellにはparallelism and concurrency featuresのホストがあります。 STMは、haskellによって実装されて以来、広く普及し、議論されてきました。あなたはGoが好きかもしれませんが、それは興味のあるかもしれないchannel featureを持っています。

1

私はあなたが手順的であり、決定論的ではないと思います。 C#では、以前使っていた手続き型プログラミングアプローチをより詳細にモデル化する非同期プログラミングモデルを可能にするいくつかの作業が進行中です。 Jeffrey RichterのIAsyncResultとMicrosoftの新しいAsync CTPを参照してください。

F#およびその他の関数型言語は、しばらくの間、包括的な非同期モデルを持っていました。最終的には、独立性、不変性、および同期性(通常はリゾート順)など、並行性の考え方に従わなければなりません。上記のサイトでいくつかのホワイトペーパーを読むことをお勧めします。これは、Concurrencyが近いうちに(少なくともC#で)どのようにアクセス可能であるべきかを垣間見るためのものです。

+0

いいえ、私は具体的には、プログラマが線形で決定論的であるかのように読み込み、非決定論的な方法でコードを並列化して実行するコンポーネントを含むプログラムを書くことができるモデルを探しています。たとえば、(私は配列の中で){i blink red;};と書くことができます。 for(each in i array){私は一度緑色に点滅する};根底にあるシステムには、他のものの前に赤と緑が点滅していて、前に移動していて、まったくまばらに動かずに動かず、とにかくまったく動かないものもあります。 – blueberryfields

関連する問題