「Picat」の版間の差分
削除された内容 追加された内容
新規作成 |
(相違点なし)
|
2017年7月26日 (水) 06:26時点における版
Picatは、論理プログラミングをベースとするマルチパラダイムの汎用プログラミング言語である。制約論理プログラミング言語であるen:B-Prologを発展させることによって開発された。
パラダイム | マルチパラダイム: 論理プログラミング、関数プログラミング、命令型プログラミング |
---|---|
登場時期 | 2013年 |
設計者 | 周能法(Neng-Fa Zhou)、Jonathan Fruhman |
型付け | 動的型付け |
影響を受けた言語 | Prolog |
ウェブサイト | http://www.picat-lang.org/ |
拡張子 | .pi |
概要
Picatは、周能法(Neng-Fa Zhou)およびJonathan Fruhmanによって設計された。2012年12月に仕様が公開され、2013年5月に処理系がリリースされた[1]。
Picatという名称は、次の単語の頭文字に由来する。
- Pattern-matching
- Imperative
- Constraints
- Actors
- Tabling
Picatのプログラムは、述語または関数の定義から構成される。述語または関数は、1個以上のルールによって定義される。
ルールにはバックトラックが可能なものとそうでないものとがあり、バックトラックが可能なルールを書くことによって、非決定的な述語を定義することができる。非決定的な関数は、定義することができない。
コード例
Hello worldは、次のように書くことができる。
main => println('Hello, World!').
次の例は、最大公約数を求めるgcm
という関数を定義するプログラムである。
gcm(N, 0) = N.
gcm(N, M) = G, M >= 1 => G = gcm(M, N mod M).
脚注
- ^ Kjellerstrand, Håkan. “My First Look At Picat as a Modeling Language for Constraint Solving and Planning” (PDF). 2017年7月11日閲覧。
参考文献
- Neng-Fa Zhou; Håkan Kjellerstr; Jonathan Fruhman (2015). Constraint Solving and Planning with Picat. Springer International Publishing. ISBN 978-3-319-25881-2