最近 Prolog が面白そうだなぁと思うようになってきました。
論理型言語、宣言型言語という事なんですが、
普通の Prolog は、上から下に、左から右に逐次的に評価して行くので、
手続き型の要素もあって、良く見ると分かりやすい面もあります。
オンメモリのデータベースという面もある上に、
単一化とバックトラックによる推論もできて、
いろいろ面白い事が出来そうな予感があります。
そんな言語の処理系が作れたらいいなぁと思って、少し調べました。
標準規格
沖ソフトウェア株式会社 資料室 の記事
各種の処理系
論理型言語、宣言型言語という事なんですが、
普通の Prolog は、上から下に、左から右に逐次的に評価して行くので、
手続き型の要素もあって、良く見ると分かりやすい面もあります。
オンメモリのデータベースという面もある上に、
単一化とバックトラックによる推論もできて、
いろいろ面白い事が出来そうな予感があります。
そんな言語の処理系が作れたらいいなぁと思って、少し調べました。
標準規格
- JIS X 3013 「プログラム言語Prolog-第1部:基本部」 -- 第1部とあるけど第2部以降が見つからない。しかも、中身は、用語の定義が続いたあと、肝心の本文が ISO の規格を見ろと言うだけになってる。
- ISO 13211 -- ISO のサイトで "13211" を検索した結果
- ISO/IEC 13211-1:1995 "Information technology -- Programming languages -- Prolog -- Part 1: General core" -- 基本部分
- ISO/IEC 13211-2:2000 "Information technology -- Programming languages -- Prolog -- Part 2: Modules" -- モジュール
- ISO/IEC 13211-1:1995/Cor 1:2007
沖ソフトウェア株式会社 資料室 の記事
- Python で作る Prolog 処理系
- Rubyで作るProlog処理系 (CodeZine の記事だけど、沖ソフトウェアの記事に続いてる)
- Ruby で作る Prolog 処理系 (補講)
- Java で作る Prolog 処理系
- C# で作る Prolog 処理系
- 続・C# で作る Prolog 処理系
- 続々・C# で作る Prolog 処理系
各種の処理系
- 神戸大学 Prolog ホームページ -- Prolog入門と処理系のリンク集
- K-Prolog -- 日本語のマニュアルがある
- MINERVA -- イフコンピュータの処理系。日本語のマニュアルがある
- RX-Prolog / PX-Prolog -- 日本語のマニュアルがある
- GNU Prolog -- コンパイラ。英語のマニュアル