Id(プログラミング言語)

Irvine Dataflow(Id )は汎用並列プログラミング言語であり、1975年にカリフォルニア大学アーバイン校でArvindとKP Gostelowによって開発されました。[2] Arvindは1990年代までMITIdの開発を続けまし

Idの主要なサブセットは、非厳密なセマンティクスを持つ純粋関数型プログラミング言語です。高階関数、ミルナースタイルの静的型チェック付き多態型システム(オーバーロード機能付き)、ユーザー定義型とパターンマッチング、プレフィックス演算子とインフィックス演算子などの機能を備えています。これは、 Haskellの並列方言であるpHの開発につながりました。

Id プログラムは細粒度の暗黙的並列です。

HaskellのMVar同期変数抽象化はIdのM構造に基づいています。[ 3 ]

Id は、ML、Haskell、Miranda に似た 代数データ型をサポートしています。

bool 型 = False | True; 

型はデフォルトで推論されますが、宣言によって注釈を付けることができます。型変数は、、などの typeof構文を使用します。*0*1

id のタイプ = *0 -> *0; 定義 id x = x; 

配列の理解を使用して最初のフィボナッチ数を計算する関数: n{\displaystyle n}

typeof fib_array = int -> (配列 int); 定義fib_array n = { A = { 配列 (0,n) の | [0] = 0 | [1] = 1 | [i] = A[i-1] + A[i-2] || i <- 2 から n } A の場合 }; 

配列の再帰定義では非厳密な評価が使用されていることに注意してくださいA

Idの寛容な評価戦略は、デフォルトで循環的なデータ構造を許可します。次のコードは、cons演算子を使用して循環リストを作成します:

定義サイクル x = { A = x : A In A }; 

ただし、真に無限の構造の非終了構築を回避するには、明示的な遅延を次のように注釈する必要があります#

def count_up_from x = x :# count_up_from (x + 1); 

実装

pH液
pHluidシステムは、Idプログラミング言語の研究実装であり、将来的にはDigitalのケンブリッジ研究所で実装されたHaskellプログラミング言語の並列方言であるpHのフロントエンドの実装も計画されています。非営利目的の使用も想定されています。標準的なUnixワークステーションハードウェアを対象としています。

参考文献

  1. ^ Sharp, JA (1992). 『データフローコンピューティング:理論と実践』 Intellect Limited. p. 125. ISBN 9780893919214. 2014年12月2日閲覧
  2. ^ Arvind; Gostelow, Kim P.; Plouffe, Wil (1978). 「(予備的)Id報告書:非同期プログラミング言語と計算機(改訂版)」技術報告書 TR-114、カリフォルニア大学アーバイン校情報・コンピュータサイエンス学部
  3. ^「Concurrent Haskell」. Peyton-Jones, Gordon, Finne. POPL 1996.
  • ID 言語リファレンス マニュアル、Rishiyur S. Nikhil、1991 年。
  • 「大規模マルチプロセッサマシン向け非同期プログラミング言語」、Arvind他、TR114a、Dept ISC、カリフォルニア大学アーバイン校、1978年12月