削除された内容 追加された内容
FLOPS と型理論について追記
編集の要約なし
1行目:
{{otheruses|プログラミング言語|その他の用法|プロローグ}}
{{複数の問題
| 独自研究 = 2016年2月
| 大言壮語 = 2016年2月
| 言葉を濁さない = 2016年2月
| 出典の明記 = 2016年2月
}}
19 ⟶ 16行目:
}}
{{プログラミング言語}}
{{lang|en|'''Prolog'''}}(プロログ)は[[論理プログラミング|論理プログラミング言語]]の一つであり、該当分野で最もよく知られている論理型言語の代表格である。主に[[人工知能]]研究や[[計算言語学]]との関連性を持つ。[[定理証明系|定理証明]]、[[エキスパートシステム]]、[[自動計画]]、[[自然言語処理]]とも繋がりが深い。[[一階述語論理]]と[[数理論理学|形式論理]]を基礎にして、事実群と規則群の表現および[[関数 (数学)|関係]]の観点に立った[[宣言型プログラミング|宣言型パラダイム]]に準拠しており、その[[関数 (数学)|関係]]に則った質問によって計算が開始されるという性質を持つ。
{{lang|en|'''Prolog'''}}(プロログ)は、[[非手続き型言語|非手続き型]][[プログラミング言語]]の一つ。[[論理型言語]]に分類される。名称は、「論理を使ったプログラミング」を意味するフランス語「''{{lang|fr|programmation en logique}}''」に由来している<ref name="Kowalski1974">Robert Kowalski. ''The Early Years of Logic Programming'', p.38.</ref><ref>Alain Colmerauer, Philippe Roussel. ''The birth of Prolog'', p.2.</ref>。
 
Prologは、1972年に[[マルセイユ大学]]のアラン・カルメラウアーとフィリップ・ラッセルによって開発された。フランス語の「''{{lang|fr|'''pro'''grammation en '''log'''ique}}''」がその名の由来である<ref>Alain Colmerauer, Philippe Roussel. ''The birth of Prolog'', p.2.</ref>。Prologの誕生には[[エディンバラ大学]]のロバート・コワルスキが考案した[[ホーン節]]が大きく寄与している。カルメラウアーによる元祖版はマルセイユPrologと呼ばれている。その後、コワルスキの門弟のデヴィッド・ワーレンが1977年に改訂開発したエディンバラProlog(DEC-10 Prolog)が標準になってPrologは広く普及した<ref name="Kowalski1974">Robert Kowalski. ''The Early Years of Logic Programming'', p.38.</ref>。
 
== 概要 ==
167 ⟶ 166行目:
* 2016年 FLOPS で Ki Yung Ahn と Andrea Vezzosi の論文 Executable Relational Specifications of Polymorphic Type Systems で Prolog による Let多相の型推論器が発表されました。あまり話題にはなっていませんが、昨今の型理論には一階述語論理が用いられており、型システムの実装実験において極めて簡略に記述出来るため、利用されていく可能性があります。
* Prolog向けの集合論的型システムが実用化されれば、関数型言語学会において古くから用いられてきた数式をより形式的にできるようになるかもしれません。
 
== Prologプログラム例 ==
 
{{Wikibooks|Prolog|Prolog}}
 
 
== 処理系 ==