Loading article…
Irvine Dataflow ( Id ) は、汎用並列プログラミング言語であり、1975年にカリフォルニア大学アーバイン校で Arvind と KP Gostelow によって開発されました。[ 2 ] Arvindは 1990 年代までMITで Id の開発を続けました。
Id の主要なサブセットは、非厳密なセマンティクスを持つ純粋に関数型のプログラミング言語です。機能には、高階関数、オーバーロード、ユーザー定義型とパターン マッチング、プレフィックス演算子とインフィックス演算子を備えた Milner スタイルの静的型チェックされた多態型システムが含まれます。これは、 Haskellの並列方言である pH の開発につながりました。
Id プログラムは細分化された暗黙的な並列処理です。
HaskellのMVar同期変数抽象化はIdのM構造に基づいています。[3]
例
Id は、ML、Haskell、Miranda に似た 代数データ型をサポートしています。
bool 型 = False | True;
型はデフォルトで推論されますが、宣言で注釈を付けることもできます。型変数は、、などの
typeof構文を使用します。*0*1
id のタイプ = *0 -> *0; 定義 id x = x;
配列の理解を使用して最初のフィボナッチ数を計算する関数:
typeof fib_array = int -> (配列 int);
def fib_array n =
{ A = { 配列 (0,n) の
| [0] = 0
| [1] = 1
| [i] = A[i-1] + A[i-2] || i <- 2 から n }
A の場合 };
配列の再帰定義で非厳密な評価が使用されていることに注意してくださいA。
Id の寛容な評価戦略では、デフォルトで循環データ構造が許可されます。次のコードは、cons 演算子を使用して循環リストを作成します:。
def cycle x = { A = x : A In A };
ただし、真に無限の構造の非終了構築を回避するには、明示的な遅延を次のように注釈する必要があります#。
count_up_from x = x :# count_up_from (x + 1);
実装
- pH液
- pHluid システムは、Id プログラミング言語の研究実装であり、将来的には Digital の Cambridge Research Laboratory で実装された Haskell プログラミング言語の並列方言である pH のフロントエンドの計画があります。非営利目的の使用。標準の Unix ワークステーション ハードウェアを対象としています。
参考文献
- ^ Sharp, JA (1992). データフローコンピューティング: 理論と実践. Intellect, Limited. p. 125. ISBN 9780893919214. 2014年12月2日閲覧。
- ^ Arvind、Gostelow、Kim P.、Plouffe、Wil (1978)。「(予備的) Id レポート: 非同期プログラミング言語およびコンピューティング マシン (改訂版)」。技術レポート TR-114、カリフォルニア大学アーバイン校、情報およびコンピューター サイエンス学部。
- ^ 「Concurrent Haskell」。Peyton-Jones、Gordon、Finne。POPL 1996。
外部リンク
- ID 言語リファレンス マニュアル、Rishiyur S. Nikhil、1991 年。
- 「大規模マルチプロセッサマシン用の非同期プログラミング言語」、Arvind 他、TR114a、Dept ISC、UC Irvine、1978 年 12 月
