ロジックプログラミング言語は、20年以上使用されてきました。彼らはコンピュータ業界に大きな影響を持っていなかった(例えば、C、C ++、Pascalとエイダなど)は、従来のプログラミング言語上のロジックのよく発達理論に基づいて、非常に高いレベルのプログラミング言語の予想される利点にもかかわらず。
マーキュリーは、高度な静的解析とエラー検出機能と宣言型プログラミングの明快さと表現力を兼ね備えた新しいロジック/関数型プログラミング言語です。
水星が高度に最適化されている実行アルゴリズムは、既存の論理プログラミングシステムを超えるはるかに効率を実現し、従来のプログラミングシステムがあります。
水星はモジュール性、分割コンパイル、および多数の最適化/時間のトレードオフが可能、大規模なプログラム開発の問題に対処する
のこのリリースのの新機能:ます。
- このバグ修正リリースの修正は、SolarisとNetBSD上の問題を構築し、設定時にC#コンパイラを選択するためのサポートが追加されています。
- 様々な他のマイナーなバグが修正されているます。
- 標準ライブラリにいくつかのマイナーな追加もあります。
のバージョン13.05に新しいのは何ですか。
- Windows上の64ビット実行の生成がサポートされるようになりました。
- は非常に大規模なプログラムのためのコンパイル時間が改善されています。
- いくつかの新しいタイプの表現の最適化が追加されています。
- は、デバッガは今スタック上の相互再帰呼び出しのクリークを処理するためのより良いサポートを持っています。
- GLFWライブラリへの結合は、エクストラ分布に追加されています。
- アセンブリは現在、厳密な名前で署名することができます。
C#のバックエンドで生成された
のバージョン11.01のの新機能:
- 私たちは言語にスコープの二つの新しい種類を追加した。
- 名前が示すように、新しいキーワードのrequire_det、require_semidet、require_multi、require_nondet、require_cc_multi、require_cc_nondet、require_erroneousとrequire_failureのいずれかによって導入された範囲には、与えられた決定論を持っているスコープ内のゴールを必要とします。
- キーワードrequire_complete_switchによって導入スコープは、の種類のすべての関数記号のための武器を持っているすなわち、完全なスイッチであるためには、スコープ内部の目標が必要ですスイッチオン変数ます。
- 私たちはhash_table.fold / 4およびversion_hash_table.fold / 4用semidetモードを追加したします。
- 私たちはエキストラ分布からと '`怠惰と呼ばれる新しい標準ライブラリモジュールに遅延評価モジュールを移動しました。また、バックエンドにとらわれ行われているます。
- 私たちは、標準ライブラリのリストモジュールに変更を加えた
- 私たちは、新しい述語list.member_index0 / 3を追加しました。それはまた、リスト内の要素のゼロから始まるインデックスを表すパラメータを取ることを除いてlist.member / 2のようなものです。
- 私たちは3つのリストと1折り畳まれた値を生成するリストの上にマップする新しい述語list.map3_foldl / 7を追加したします。
- 私たちはlist.foldl3 / 8、list.foldl4 / 10、list.foldl5 / 12、およびlist.foldl6 / 14のためのユニークなアキュムレータとsemidetモードを追加します。
- は私たちは、述語は標準ライブラリのtree_bitsetモジュールに/ 4およびdivide_by_set / 4を分割追加します。
- は私たちは、述語/ 2とset_ctree234.non_empty / 1をset_ctree234.member追加した。私たちは、関数set_ctree234.from_list / 1を追加しています。
- 私たちは、追加した述語set_bbbtree.count / 2と関数set_bbbtree.count / 1。これらは、現在は非推奨されている述語set_bbbtree.size / 2を交換します。
- は、設定されたADT、(セット、set_ordlist、set_unordlist、set_bbbtree、set_tree234、およびset_ctree234)を実装する標準ライブラリ内のモジュールのすべてが、今までの6アキュムレータとのセットの上に折りたたみサポートしています。セット折り畳みのためのユニークな、ほとんどが固有のアキュムレータを提供するモードも追加されています。
- 私たちは、標準ライブラリのアレイモジュールに次の変更を行った
- は私たちは、機能/ 2をunsafe_elem及び/ 2を追加追加します。
- は私たちは、標準ライブラリに/ 4、およびversion_array.foldr2 / 6 version_array.foldr、/ 6 version_array.foldl2述語を追加したします。
- 我々は、次の述語のためのユニークな、ほとんどが、ユニークなアキュムレータとsemidetモードを追加しました:
- bimap.foldl2 / 6
- bimap.foldl3 / 8
- cord.foldl_pred / 4
- cord.map_foldl / 5
- list.map_corresponding_foldl2 / 8
- list.map_corresponding_foldl3 / 10
- list.map_corresponding3_foldl / 7
- map.foldl3 / 8
- 私たちは、標準ライブラリのソリューションモジュールに述語unsorted_aggregate2 / 6を追加したします。
- は私たちは、標準ライブラリの必要とするモジュールにいくつかの述語と関数を追加した。述語ごめん/ 2、申し訳ありません/ 3レポート機能が存在しない場合、プログラムの内部エラー/ 2および予期しない/ 3レポートの述部が予期しない一方で、すべてはあまりにも機能のバージョンを持っている。条件が満たされない場合、述語は/ 3コール予想外の期待。私たちは今/ 4を期待するだけでなく、/ 3を期待している。 、最初と最後の引数は、それぞれ期待条件とエラーメッセージがある/ 4と同様に/ 3を期待を期待しますが、期待/ 4で、エラーの場所(通常は名前を指定するには、真ん中の二つの引数がありますについては、モジュールのと述語のそれぞれ)。我々はまた、期待/ 3のようなもので、彼らは条件が*偽*、しない真であることを期待除き、それぞれ/ 4を期待expect_not / 3およびexpect_not / 4を、追加します。
それがスコープで名前の変数にスイッチがある場合は、
<李は>我々はassoc_listモジュールに新しい述語や機能を追加した。述語map_keys_only / 3 map_values_only / 3およびmap_values /同じ名前の機能を補完する3。また、関数のバージョンがある述語フィルター/ 3、negated_filter / 3、フィルタ/ 4、マージ/ 3は、リストモジュール内の同じ名前の述語と非常によく似て仕事を行うのではなく、全体のキーの関連する操作を行うリスト要素ます。
<李は>我々は述語set_ordlist.non_empty / 1を追加します。
<李は>我々は述語set_tree234.non_empty / 1と関数set_tree234.from_list / 1を追加します。
<李は>我々は述語のset_unordlist.non_empty / 1及びset_unordlist.count / 2、および関数set_unordlist.count / 1を追加します。
<李は>我々は、述語/ 4をsvset unsafe_svset / 4、foldl2 / 4、foldl2 / 6、foldrの/ 4、foldr2 / 6、map_foldl / 5、map_corresponding_foldl / 6、およびメンバー/ 2を追加します。
このリリースはバグ修正リリースです。
のバージョン10.04.2のの新機能である。コンパイラを中断させる原因となった多くの問題は、Javaグレードで壊れRTTI操作が修正されている、と私たちはGCCのバージョン4.4での問題の回避策を追加した、修正されています。
の制限事項の
- 現在の実装では、まだ完全にマーキュリーの言語を実装していません。現在の実装の主な制限は以下の通りです:
- 私たちは、モードシステムで明確なエイリアシングを許可していない。これがないと、部分的にインスタンス化のモードが使用不能であるのでネストされたユニークなモードがあります。
- コンパイラはまだユニークなモードを利用するために構造の再利用またはコンパイル時のガベージコレクションを使用していませんします。
- タイプとモード推論は少し不完全でます。
- さらに、このする実装における設計上の決定は、以下の制限を課している
- 述語と関数は最大で約1000年の引数を持つことができます。
- 高次項は、最大で約500の引数を持つことができます。
:
コメントが見つかりません