4 ポイント 投稿者 GN⁺ 2024-07-19 | 2件のコメント | WhatsAppで共有
  • コンピュータサイエンスの学生として、Prologと論理プログラミングを勉強中
  • 素のPrologの基本(アトム、述語、カット、リストなど)を学び、SICStus Prologで動作するエージェント通信システムのひどい実装を見た
  • この言語自体に強みがあるかもしれないと思っているので、もっと知りたい
  • 学んでいる分野がかなり基礎的な領域なので、こちらの世界と自分が本当に好きな別の世界(オントロジー :D)についての知識を広げ、専門性を深めてみたい
  • 2024年のPrologがどのような状況なのか、人々がPrologで何をしているのか気になっている

2件のコメント

 
cometkim 2024-07-19

Prologそのものではありませんが、Constraints という概念が引き続き有用だという点には同意します。

DBのようなところでも多く活用されていますし、最先端のプログラミング言語の中には Datalog を第一級でサポートしようとする試みもあります。(例: https://flix.dev/)

 
GN⁺ 2024-07-19
Hacker Newsの意見
  • Prologは50年の歴史を持つ言語で、一般的なコーディングでは有用性よりも障害のほうが多いかもしれない

    • Prologシステムは多いが、Prologコードは少なく、コミュニティは分裂している
    • Prologを学ぶことは「Prologでどうやるか?」というより、「Prologでつまずかないようにするにはどうすればよいか?」に近い
    • 何人かの献身的な人々や理想主義者たちがPrologの可能性を議論している
    • Prologには興味深く楽しい要素があるが、危険でもありうる
  • Scryer Prologは高性能なオープンソースのISO互換Prologとして新たなマイルストーンを打ち立てている

  • PrologとConstraintプログラミングは有用なツールである

    • Prologにはいくつかの問題点がある
      • 現代的なモジュールやパッケージシステムがない
      • 大規模なコードベースでは非論理的な構造が避けられず、コードが複雑になる
      • 静的で強い型がなく、堅牢なコードを書きにくい
    • Prologは驚くべき言語であり、プログラミングの未来に居場所を得る可能性がある
  • 理論的にはPrologは最高の言語である

    • 論理形式の言語であり、計算言語であり、メタプログラミング言語でもあるという特性を持つ
    • 実用面では高性能な実装があり、コミュニティは小さい
    • Prologで多くのことができるが、どうすべきかが明確でないことが多い
  • 新しい人たちがPrologに関心を持つのは良いことだ

    • Trealla PrologをWasmで簡単に使えるようにするライブラリを開発中である
    • リンク: TypeScript Library, Go Library
    • ScryerとTreallaはISO互換性を目標にしている
  • Prologは新しい考え方を要求する言語である

    • 宣言的パラダイムは良いが、他の言語と比べて大きな利点があるわけではない
    • CLPFDを適用できる問題では表現力が高い
    • LLMを使ってPrologの事実/データベースを生成するのは面白い
  • Prologの「魔法」は単一化とバックトラッキングという概念に基づいている

    • 宣言的言語として逆問題を簡潔に表現できるが、解決策そのものを与えてくれるわけではない
    • 解決エンジンが改善されれば、Prologのような宣言的制約プログラミング言語の利用は増えるだろう
  • Prologについてはほとんど知らないが、Datalogのチュートリアルは楽しめた

  • 論理プログラミングの探索アルゴリズムは遅い

    • Prologは何でもできるが、何でもうまくできるわけではない
    • Prologはデータベースの保守管理のような特定の作業に向いている