削除された内容 追加された内容
大黒学 (会話 | 投稿記録)
新規作成
(相違点なし)

2017年7月26日 (水) 06:26時点における版

Picatは、論理プログラミングをベースとするマルチパラダイムの汎用プログラミング言語である。制約論理プログラミング言語であるen:B-Prologを発展させることによって開発された。

Picat
パラダイム マルチパラダイム: 論理プログラミング関数プログラミング命令型プログラミング
登場時期 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).

脚注

  1. ^ 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 

外部リンク

関連項目