CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
![Rubyで作るProlog処理系](https://cdn-ak-scissors.b.st-hatena.com/image/square/c4fd1aed92cdb0ae6f9c721356001559ab7ae653/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F461%2F461_arena.png)
はじめに この記事はフューチャーアーキテクト Advent Calendar 2015の12/22です。 弊社副社長も書いていたと公言するPrologに関して書きます! 私も大学生の時に書いていたので、Prologとは?から書き始めたいと思います。 Prologとは? Prologは1972年に登場した老舗の非手続き型のプログラミング言語であり、主にAIに特化して作られています。Prologという名前の由来は、PROgramming in LOGicからきています。その名の通りPrologでは論理的に物事を解釈するようにプログラムを書きます。 Prologなんてオワコンじゃない? Go言語やRustなどから比べると40年近く前に登場した言語であり、AIに特化した言語ということもあり、知名度が低く、利用者も少ないですが、教育機関(大学など)で主として論理学の教材として利用され続けているのです
Prolog(プロログ)は論理プログラミング言語の一つであり、該当分野で最もよく知られている論理型言語の代表格である。主に人工知能研究や計算言語学との関連性を持つ。定理証明、エキスパートシステム、自動計画、自然言語処理とも繋がりが深い。形式論理である一階述語論理を基礎にして、事実群と規則群の表現および関係の観点に立った宣言型パラダイムに準拠しており、その関係に則った質問によって計算が開始されるという性質を持つ。 Prologは、1972年にマルセイユ大学のアラン・カルメラウアーとフィリップ・ラッセルによって開発された。フランス語の「programmation en logique」がその名の由来である[1]。Prologの誕生にはエディンバラ大学のロバート・コワルスキが考案したホーン節が大きく寄与している。カルメラウアーによる元祖版はマルセイユPrologと呼ばれている。その後、コワルスキ
Prolog インタプリタを Haskell で書きました。しばらく書いただけで満足してしまっていたのですが、このまま人知れず消えて行くのも寂しいので勉強した事を書きます。まず、参考にしたソースは前回書いた hugs98/demos/prolog/ です。このソース。大変短くて良いのですが、素人目には簡潔すぎて難しいのと、書かれたのが古いのか do 記法を全く使っていないので、そこらへんを私風にアレンジしました。ソースを http://github.com/propella/prolog/tree に置いておきます。なお、言葉の使い方とか間違ってるかもしれないので気づいた人は教えてください。 実行 実行の仕方は Prolog.hs をダウンロードして、 runghc Prolog.hsです。food(apple). のようにするとルールに追加で、?- apple(X). で問い合わせ、??
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く