Strand (programming language)とは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > 百科事典 > Strand (programming language)の意味・解説 

Strand

(Strand (programming language) から転送)

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/08/26 13:32 UTC 版)

ナビゲーションに移動 検索に移動
Strand
パラダイム 並行論理プログラミング
登場時期 1989年
設計者 Ian Foster 他
型付け 動的型付け
主な処理系 Strand88
影響を受けた言語 Prolog、Relational Language、Concurrent PrologPARLOGGuarded Horn Clauses
影響を与えた言語 PCN
テンプレートを表示

Strandは、1989年に発表された商用ベースの並行論理プログラミング言語である。Ian FosterとStephen Taylorにより、設計された。開発はArtificial Intelligence Limitedで行われ、1989年のBritish Computer Society Awardを受賞した[1]。販売はStrand Software Technologies Inc.から行われた。

この言語はErlang開発初期にベース言語としても使われた[2]

概要

Strandは並行プログラミングのためのプログラミング言語で、論理変数を介して通信を行う複数の軽量プロセスのネットワークとしてプログラムを記述する。言語仕様や考え方はそれ以前に開発されたPARLOG第五世代コンピュータプロジェクトで開発されたGuarded Horn Clausesと非常によく似ている。

Strandではホーン節ガードを導入した以下のような規則の集まりでプログラムを記述する。

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

HeadとG1, ..., Gnはプロセス書き換えのための条件、B1, ..., Bmは書き換え後のプロセスを表す。生成されたプロセスは全て並行に実行される。プロセス間の通信にはプロセスで共有する論理変数を使用する。書き換え規則の適用に十分な情報がなければ書き換えを中断し、判断に必要な情報が得られるまで待つことで、プロセス間の同期が行われる。ストリームは論理変数を含んだリストとして表現する。論理変数を共有するプロセスの数に制限はないため、ストリーム通信は1対1だけではなく1対Nのブロードキャストなど、様々な形態が可能である。

StrandはFortranやC言語とのインタフェースを持ち、また個々のプロセスを実行するプロセッサーを指定するためのプラグマを持っていた。

プログラム例

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

関連項目


「Strand (programming language)」の例文・使い方・用例・文例

Weblio日本語例文用例辞書はプログラムで機械的に例文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「Strand (programming language)」の関連用語

Strand (programming language)のお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



Strand (programming language)のページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのStrand (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
Tanaka Corpusのコンテンツは、特に明示されている場合を除いて、次のライセンスに従います:
 Creative Commons Attribution (CC-BY) 2.0 France.
この対訳データはCreative Commons Attribution 3.0 Unportedでライセンスされています。
浜島書店 Catch a Wave
Copyright © 1995-2025 Hamajima Shoten, Publishers. All rights reserved.
株式会社ベネッセコーポレーション株式会社ベネッセコーポレーション
Copyright © Benesse Holdings, Inc. All rights reserved.
研究社研究社
Copyright (c) 1995-2025 Kenkyusha Co., Ltd. All rights reserved.
日本語WordNet日本語WordNet
日本語ワードネット1.1版 (C) 情報通信研究機構, 2009-2010 License All rights reserved.
WordNet 3.0 Copyright 2006 by Princeton University. All rights reserved. License
日外アソシエーツ株式会社日外アソシエーツ株式会社
Copyright (C) 1994- Nichigai Associates, Inc., All rights reserved.
「斎藤和英大辞典」斎藤秀三郎著、日外アソシエーツ辞書編集部編
EDRDGEDRDG
This page uses the JMdict dictionary files. These files are the property of the Electronic Dictionary Research and Development Group, and are used in conformance with the Group's licence.

©2025 GRAS Group, Inc.RSS