コンテンツにスキップ

Strand

出典: フリー百科事典『ウィキペディア(Wikipedia)』
Strand
パラダイム 並行論理プログラミング
登場時期 1989年
設計者 Ian Foster 他
型付け 動的型付け
主な処理系 Strand88
影響を受けた言語 PrologRelational LanguageConcurrent PrologPARLOGGuarded Horn Clauses
影響を与えた言語 PCN
テンプレートを表示

Strand1989Ian FosterStephen TaylorArtificial Intelligence Limited1989British Computer Society Award[1]Strand Software Technologies Inc.

Erlang使[2]

概要

[編集]

StrandPARLOGGuarded Horn Clauses

Strand
Head :- G1, ..., Gn| B1, ..., Bm.  (n,m≧0)

HeadG1, ..., GnB1, ..., Bm使111N

StrandFortranC

プログラム例

[編集]

2本のストリームをマージして1本のストリームにするStrandプログラムの例を以下に示す。Prologと同様、A や Xs など英大文字で始まる項は変数を表す。

merge([A|Xs],Ys,Zs0) :- true | Zs0:=[A|Zs], merge(Xs,Ys,Zs).
merge(Xs,[A|Ys],Zs0) :- true | Zs0:=[A|Zs], merge(Xs,Ys,Zs).
merge([],Ys,Zs) :- true | Zs:=Ys.
merge(Xs,[],Zs) :- true | Zs:=Xs.

例えば、上記プログラムの最初の節では、最初の引数が[A|Xs]のようなリストの形になっていない場合は中断し、他のプロセスにより[A|Xs]の形に具体化された(具体的に値が決まった)場合に実行を再開する。この時点でXs自体は具体化されていなくても構わないため、リストの先頭からインクリメンタルに具体化されるストリームを素直に処理できる。

出典

[編集]
  1. ^ BCS IT Awards: 1973 - 1999. 2010年1月22日検索
  2. ^ Foster, I.,and Tayler, S.(ed) Strand: New Concepts in Parallel Programming. p.288-304

参考文献

[編集]
  • Foster, I.,and Tayler, S.(ed) Strand: New Concepts in Parallel Programming. Prentice Hall 1990, ISBN 978-0138505875

関連項目

[編集]