2011-01-16 8 views

答えて

9

Mercuryは素敵でモダンで、プロローグに似ています。

マーキュリーは、宣言型プログラミングの明快さと表現力を高度な静的解析とエラー検出機能と組み合わせた新しいロジック/関数型プログラミング言語です。高度に最適化された実行アルゴリズムは、既存のロジックプログラミングシステムをはるかに超えた効率を提供し、従来のプログラミングシステムに近いものです。 Mercuryは、大規模なプログラム開発の問題に対処し、モジュール性、個別のコンパイル、および多数の最適化/時間のトレードオフを可能にします。

+1

また、Mercuryを優れた論理プログラミング言語として紹介します。 Mercuryの構文はPrologのように見えるかもしれませんが、強力な型システムのためにHaskellでプログラミングしているように感じます。さらに、Logic VariablesなどのPrologの典型的な機能が必要な場合、Mercuryはそれらをサポートしていません。実際にはそれらを避けることで、あなたのプログラムはより保守的になります:-)。 免責事項:私はMercuryプロジェクトに取り組んでいます。コードの保守性についての観測は主観的であり、事例でもあります。他のコメントは客観的です。 –

+1

論理変数の欠如は大きな欠点のように思えます。プロローグ/ LPの中心的な側面ではないですか? – ib84

5

非常に有望な機能論理プログラミング言語であるCurryがあります。その新しさにもかかわらず、カスケーに慣れるのは簡単です。ハスケルとプロローグがこの2つの言語の影響を直接受けていることを既に知っているならば。

カレーは、シームレスな方法で組み合わせた関数型プログラミング (ネストされた式、高階 機能、遅延評価)、ロジック プログラミングから 機能(論理変数、 部分データ構造、ビルトイン 検索) 、並行プログラミング (論理 変数に同期した式 の並行評価)。

1

Oz/Mozartは、Logicプログラミングをその機能の1つとしてサポートするマルチパラダイムプログラミング言語です。私はそれを使用したことがないので、それが良いかどうかは言えません。確かに面白いようです。

免責事項:私はMercuryプロジェクトを担当しており、MercuryはOz/MozartとMercuryのいずれかの選択肢で選択します。

+0

Oz/Mozartへのリンクを修正してください。 – nbro

2

Prologは、それ自身の言語として考えられる多くの新しい拡張機能のホストであることを忘れないでください。特に、CLP(R)、CLP(Q)、CLP(FD)のような制約言語。 CHRのような一般的な拡張だけでなく、多くの型付きのアプローチ。

これらの言語は、通常、既存のPrologシステムでライブラリとして出荷されます。その設定で得られるものは、スクラッチシステムが提供できるものよりも、成熟し安定した実装であることが多いです。結局のところ、多くのPrologシステムはほぼ30歳です。

3

Logtalkは、コードカプセル化と再利用のメカニズムに焦点を当てて、大規模なプログラミングに適した機能セットでProlog言語を拡張し、活用するオブジェクト指向の論理プログラミング言語です。 Prologの実装を最も積極的に維持しているバックエンドコンパイラとしての移植性の高いサポートです。その他の特筆すべき機能には、プロトタイプとクラス、プロトコル(インタフェース)、同時導入、コンポーネントベースのプログラミング、イベントドリブンプログラミング、およびハイレベルのマルチスレッドプログラミングの両方が含まれます。現在のディストリビューションには、プログラミングサンプル、プログラミングツール、ライブラリ、テキストエディタの大量のセットと、ソースコードのプログラミングと公開のためのシンタックスハイライターのサポートが含まれています。

関連する問題