「PlusCal」の版間の差分

出典: フリー百科事典『ウィキペディア(Wikipedia)』
削除された内容 追加された内容
m +stub
翻訳元より出典を追加(履歴継承不要) +孤立
1行目: 1行目:
{{孤立|date=2016年12月}}
'''PlusCal ('''旧称 '''+CAL''') は、 [[レスリー・ランポート|Leslie Lamppost]] により考案された形式仕様言語で TLA<sup>+</sup> に変換される.TLA<sup>+ </sup>のアクション志向が分散システムに重点を置いているのとは異なり PlusCalは逐次命令形のプログラミング言語と似ておりシーケンシャルアルゴリズムの記述により適している. PlusCalは  [[擬似コード]] を置き換えることを目的に設計されており,その簡潔性を維持する一方で形式的に定義され検証可能な言語を提供している.
'''PlusCal ('''旧称 '''+CAL''') は、 [[レスリー・ランポート|Leslie Lamppost]] により考案された形式仕様言語で TLA<sup>+</sup> に変換される。TLA<sup>+ </sup>のアクション志向が分散システムに重点を置いているのとは異なり PlusCalは逐次命令形のプログラミング言語と似ておりシーケンシャルアルゴリズムの記述により適している<ref name="hyperbook-pluscal">
例として,1ビットクロックはPlusCalでは次のようにかける<syntaxhighlight lang="Java">
{{cite book
| last = Lamport
| first = Leslie
| authorlink = Leslie Lamport
| date = 28 February 2015
| title = Principles and Specifications of Concurrent Systems
| url= http://research.microsoft.com/en-us/um/people/lamport/tla/hyperbook.html
| page= 7
| quote = "PlusCal is more convenient than TLA<sup>+</sup> for describing the flow of control in an algorithm. This generally makes it better for specifying sequential algorithms and shared-memory multiprocess algorithms."
| accessdate = 10 May 2015}}
</ref>。PlusCalは  [[擬似コード]] を置き換えることを目的に設計されており、その簡潔性を維持する一方で形式的に定義され検証可能な言語を提供している<ref name="pluscal-original">
{{cite journal
| last = Lamport
| first = Leslie
| authorlink = Leslie Lamport
| title = The PlusCal Algorithm Language
| journal = Lecture Notes in Computer Science
| volume = 5684
| issue = Theoretical Aspects of Computing - ICTAC 2009
| pages = 36–60
| publisher = Springer Berlin Heidelberg
| date = 2 January 2009
| url = http://research.microsoft.com/en-us/um/people/lamport/pubs/pluscal.pdf
| doi = 10.1007/978-3-642-03466-4_2
| accessdate = 10 May 2015 }}
</ref>。

例として、1ビットクロックはPlusCalでは次のようにかける<syntaxhighlight lang="Java">
-- fair algorithm OneBitClock {
-- fair algorithm OneBitClock {
variable clock \in {0, 1};
variable clock \in {0, 1};
14行目: 42行目:
</syntaxhighlight>PlusCalのツールとドキュメントは [http://research.microsoft.com/en-us/um/people/lamport/tla/pluscal.html PlusCalアルゴリズム言語のページ] から参照することができる.
</syntaxhighlight>PlusCalのツールとドキュメントは [http://research.microsoft.com/en-us/um/people/lamport/tla/pluscal.html PlusCalアルゴリズム言語のページ] から参照することができる.


== 参照 ==
== 関連項目 ==
* TLA<sup>+</sup>
* TLA<sup>+</sup>
* [[擬似コード|Pseudocode]]
* [[擬似コード|Pseudocode]]


== 参考文献 ==
== 脚注 ==
{{reflist}}


[[Category:形式手法]]
[[Category:形式手法]]

2016年12月3日 (土) 11:55時点における版

PlusCal (旧称 +CAL) は、 Leslie Lamppost により考案された形式仕様言語で、 TLA+ に変換される。TLA+ のアクション志向が分散システムに重点を置いているのとは異なり、 PlusCalは逐次命令形のプログラミング言語と似ており、シーケンシャルアルゴリズムの記述により適している[1]。PlusCalは  擬似コード を置き換えることを目的に設計されており、その簡潔性を維持する一方で形式的に定義され検証可能な言語を提供している[2]

例として、1ビットクロックはPlusCalでは次のようにかける。

-- fair algorithm OneBitClock {
  variable clock \in {0, 1};
  {
    while (TRUE) {
      if (b = 0)
        b := 1
      else 
        b := 0    
    }
  }
}

PlusCalのツールとドキュメントは PlusCalアルゴリズム言語のページ から参照することができる.

関連項目

脚注

  1. ^ Lamport, Leslie (28 February 2015). Principles and Specifications of Concurrent Systems. p. 7. http://research.microsoft.com/en-us/um/people/lamport/tla/hyperbook.html 2015年5月10日閲覧. ""PlusCal is more convenient than TLA+ for describing the flow of control in an algorithm. This generally makes it better for specifying sequential algorithms and shared-memory multiprocess algorithms."" 
  2. ^ Lamport, Leslie (2 January 2009). “The PlusCal Algorithm Language”. Lecture Notes in Computer Science (Springer Berlin Heidelberg) 5684 (Theoretical Aspects of Computing - ICTAC 2009): 36–60. doi:10.1007/978-3-642-03466-4_2. http://research.microsoft.com/en-us/um/people/lamport/pubs/pluscal.pdf 2015年5月10日閲覧。.