Google PlayストアでUnionpediaアプリを復元するために作業中です
出ていきます入ってきます
🌟ナビゲーションを改善するためにデザインを簡素化しました!
Instagram Facebook X LinkedIn
あなたのロゴとドメインを持つ独自のユニオンペディア、月額9.99 USDから
私のユニオンペディアを作成する

Picat

索引 Picat

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

目次

  1. 12 関係: マルチパラダイムプログラミング言語制約プログラミング制約充足問題制約論理プログラミング命令型プログラミング動的型付け論理プログラミング部分和問題関数型プログラミングHello worldProlog最大公約数

マルチパラダイムプログラミング言語

マルチパラダイムプログラミング言語 (マルチパラダイムプログラミングげんご、multiparadigm programming language)は、複数のプログラミングパラダイムに対応するプログラミング言語の総称である。「1つのプログラムは複数のプログラミングパラダイムを使う」とビャーネ・ストロヴストルップは述べている。マルチパラダイムプログラミング言語の設計目標は、問題解決に当たって最良の道具になることである。たとえばOzでは、論理型、関数型、オブジェクト指向、データフローコンカレントなど、多数のパラダイムを内包している。Ozは10年かけて従来のプログラミングパラダイムが調和するよう設計されたのである。

見る Picatとマルチパラダイムプログラミング言語

制約プログラミング

制約プログラミング(せいやくプログラミング、Constraint Programming)はプログラミングパラダイムの一つである。 制約プログラミングにおいては、変数間の関係を制約という形で記述することによりプログラムを記述する。制約が他のプログラミングパラダイムのプリミティブと異なっているのは、実行すべきステップではなく解の特性を記述するという点である。制約プログラミングにおける制約は様々である。制約充足問題での制約やシンプレックス法における制約などがある。制約は通常、プログラミング言語に埋め込まれているか別個のライブラリで提供される。 制約プログラミングは制約を論理プログラミングに埋め込んだ制約論理プログラミングが起源である。1987年、Jaffer と Lassez がProlog IIにある種の制約を取り入れたのが最初であった。制約論理プログラミング言語の実装としては、Prolog III、CLP(R)、CHIP がある。今日でも GNU Prolog などの制約論理プログラミングのインタプリタが存在している。

見る Picatと制約プログラミング

制約充足問題

制約充足問題(せいやくじゅうそくもんだい、Constraint satisfaction problem, CSP)は、複数の制約条件を満たすオブジェクトや状態を見つけるという数学の問題を指す。CSPは特に人工知能やオペレーションズ・リサーチで研究されている。多くのCSPでは、それなりの時間内に解くのにヒューリスティクスと組合せ最適化手法を組み合わせる必要がある。 制約充足問題の具体例。

見る Picatと制約充足問題

制約論理プログラミング

制約論理プログラミング(せいやくろんりプログラミング、constraint logic programming)は制約プログラミングの一種で、制約という問題表現・解決の考え方を導入することによって論理プログラミングを拡張したプログラミングパラダイムである。論理プログラミングの持っている宣言的な表現力に制約の考え方を導入し、より一般化したものとも言うことができる。

見る Picatと制約論理プログラミング

命令型プログラミング

命令型プログラミング(めいれいがたプログラミング、imperative programming)は、プログラムのを変化させるステートメントを基本文に用いる総称的なプログラミングパラダイムである。ステートメントではコマンド(命令文)が多用される。宣言型プログラミングと対をなしてのプログラミング言語の分類用語としても扱われている。宣言型の数学的性質に対して、命令型はノイマン型コンピュータ向けの計算機科学特有の性質である。このパラダイムは、手続き型、構造化、、オブジェクト指向などを包括している。 ステートメント上のコマンドで状態は変化され、変化した状態の参照でステートメントの動作も変化することは副作用と呼ばれる。コマンドと副作用の存在によって命令型プログラミングは、各オペレータを状態の遷移と照らし合わせて解釈することになる。このことから命令型はhow a program operates(どう処理するか)と形容される。

見る Picatと命令型プログラミング

動的型付け

動的型付け(どうてきかたづけ、Dynamic typing)とは、値やオブジェクトの型安全性を、実行時に検証するというコンピュータプログラミングの型システムの方法である。型の検査は実行時のプロセス上で行われて、ランタイムシステムの実行時型情報(RTTI)が照会されるなどして解析される。 動的な型チェックは、代入、束縛、関数適用、ダウンキャスト、ディスパッチ、バインディングといった所で行われる。なお、コンパイル時やインタプリタ開始時の最適化によってすでに型安全性が保証されている所は省略される。動的型付けの言語では、引数や返り値や変数宣言への型注釈が省略されやすくなる。 対義語は静的型付けであり、こちらでは値やオブジェクトの型安全性をコンパイル時に検証する。型の検査はソースコードの解析によって行われる。

見る Picatと動的型付け

論理プログラミング

論理プログラミング(Logic Programming)とは、数理論理学(記号論理学)を基礎にしたプログラミングパラダイム、または数理論理学のコンピュータプログラミングへの応用である。形式論理の論理式をソースコードの書式に投影することが基本になる。プログラミングに適用するための幅広い解釈が加えられており、研究対象としての論理プログラミングは非常に多様である。 より一般的に受け入れられている論理プログラミングは、述語論理を基礎にし、問題領域の事実と規則を論理式モデル書式で表現して(ロジック)非決定性の演繹の導出原理を用いる(コントロール)というものである。このアルゴリズムスタイルで最も普及した論理プログラミング言語は「Prolog」である。

見る Picatと論理プログラミング

部分和問題

部分和問題(ぶぶんわもんだい)は、計算複雑性理論・暗号理論における問題で、与えられた n 個の整数 a1,...,an から部分集合をうまく選んで、その集合内の数の和が与えられた数 N に等しくなるようにできるかどうかを判定する問題である。NP完全であることが知られている。 部分和問題は、分割問題 (Number Partitioning) の一般形でもある。分割問題とは、与えられた n 個の整数 a1,...,an を二つの集合に分け、各々の集合内の数の和がもう一方の集合内の数の和と等しくなるようにできるかどうかを判定する問題である。分割問題も、NP完全であることが示されている。 たとえば、「 の部分和で、和が 21 になるものは存在するか?」であれば存在する(である)、が答えである。また「 の部分和で、和が 19 になるものは存在するか?」であれば、存在しない(どんな部分和も偶数にしかならない)、が答えである。

見る Picatと部分和問題

関数型プログラミング

関数型プログラミング(かんすうがたプログラミング、functional programming)とは、数学的な意味での関数を主に使うプログラミングのスタイルである。 functional programming は、関数プログラミング(かんすうプログラミング)などと訳されることもある。 (functional programming language)とは、関数型プログラミングを推奨しているプログラミング言語である。略して関数型言語(functional language)ともいう。

見る Picatと関数型プログラミング

Hello world

Hello world(ハロー・ワールド)は、画面に「Hello, world!」やそれに類する文字列を表示するプログラムの通称である。多くのプログラミング言語において非常に単純なプログラムであり、プログラミング言語の入門書で、プログラムを動かすためのプログラミング言語の基本文法の解説例として提示される。

見る PicatとHello world

Prolog

Prolog(プロログ)は論理プログラミング言語の一つであり、該当分野で最もよく知られている論理型言語の代表格である。主に人工知能研究や計算言語学との関連性を持つ。定理証明、エキスパートシステム、自動計画、自然言語処理とも繋がりが深い。形式論理である一階述語論理を基礎にして、事実群と規則群の表現および関係の観点に立った宣言型パラダイムに準拠しており、その関係に則った質問によって計算が開始されるという性質を持つ。 Prologは、1972年にマルセイユ大学のアラン・カルメラウアーとフィリップ・ラッセルによって開発された。フランス語の「programmation en logique」がその名の由来である。Prologの誕生にはエディンバラ大学のロバート・コワルスキが考案したホーン節が大きく寄与している。カルメラウアーによる元祖版はマルセイユPrologと呼ばれている。その後、コワルスキの門弟のデヴィッド・ワーレンが1977年に改訂開発したエディンバラProlog(DEC-10 Prolog)が標準になってPrologは広く普及したRobert Kowalski.

見る PicatとProlog

最大公約数

最大公約数(さいだいこうやくすう、greatest common divisor)とは、すべての公約数を約数にもつ公約数である。特に正の整数では、最大公約数は通常の大小関係についての最大の公約数と一致し、その存在性はユークリッドの互除法により保証される。

見る Picatと最大公約数