削減戦略と評価戦略の違いは何ですか?


10

ウィキペディアの評価戦略の記事から:

ラムダ計算における還元戦略の概念は似ていますが、異なります。

ウィキペディアの削減戦略の記事から:

これは、コンピューターサイエンスの評価戦略の概念と似ていますが、微妙に異なります。

これら2つの記事が示唆する評価戦略と削減戦略の微妙な違いは何ですか?それらは、異なるドメインからの2つの類似した概念にすぎませんか?


3
評価はクローズド条件に対してのみ定義され、バインダーの下には行きません。削減はバインダーの下に行くことが許可されているため、オープンタームに対して定義されています。
Neel Krishnaswami

回答:


8

削減戦略はLambdaの関数であり、Redexとして定義する内容に応じて、可能なすべてのRedexeから1つのRedex(削減可能な式)を選択します。

非公式には、評価戦略は言語がその引数を評価する順序です。パラメータを渡す戦略は、言語が関数に渡すものです。

これらの関係を理解するには、名前による呼び出し、値による呼び出し、およびラムダ計算に関するプロトキンの論文を調べてください。彼はあなたが望む評価の順序に応じて異なるAXIOMS​​を選択したいことを明確に述べています。Cb-nameには古いベータ公理が必要で、cb-valueにはベータ値公理が必要です。これを行うと、すべてのメタ定理が両方のフレーバーで同じように機能します。このアイデアは、PLの世界が研究してきたすべてのものに一般化されることを後で(多くの協力者とともに)示しました。

それはすべて技術的であり、解釈できる詩ではありません。読んでください。

-マティアス・フェライゼン

ps私は、RedexブックのパートIのプロトキンの論文を人々が理解するのが容易になると思います。しかし、はい、それは3倍の長さです。



言い換えると、還元戦略は用語の後継者を完全に決定するが、評価戦略は適用された抽象化がどのように還元されるかを指定するだけでよいと言いますか(合同については何も言わないなど)?
グイド

6

「還元戦略」ウィキペディアの記事は、「評価戦略」記事への匿名IPによる特定の編集から完全に抽出されています。

「還元戦略」と「評価戦略」の名前を区別してもらえますか」と尋ねると、この回答を自発的に提供する人は少ないと思うので、それが表す見方は合意に基づくものではありません。私はそれをこの区別の重要性について断固としたマティアスフェリセンから聞いただけです-そしてこの見解は、これらの点について彼と詳細に議論する時間を割く機会を持つ他の人たちによって共有されていると思います。

この点についての私の現在の理解(しかし、私はまだ完全な正義まで技術的な詳細を研究していません)は次のとおりです:これは、「大きなステップ」と「小さなステップ」のセマンティクスを使用するかどうかについてです-この違いは標準であり、理解されていますフィールドの誰もが。小さなステップのセマンティクスは、還元の1つの原子的なステップを定義し、結果は一般にまだ還元可能です。ビッグステップセマンティクスは、開始プログラムからその値(または、言語に値を返す以外の観察可能な効果がある場合は、より豊富な「応答」タイプなど、入力/出力や変更可能な状態)。

大きなステップと小さなステップの両方の関係を定義する場合、大きなステップのセマンティクスが小さなステップの関係の推移的閉包に含まれていること、および小さなステップの関係が他のスタックされた項に減少しないことを確認できますビッグステップリレーションによって到達したもの、またはビッグステップリダクションが定義されている場合は分岐します。これは、両者の予想される一貫性の関係です。

「評価戦略は大きなステップの関係」、「還元戦略は小さなステップの関係」のように、記事の表現は現代の言葉で多少説明できると思います。「還元戦略」の記事で行われた議論は、それらの概念が生まれたばかりの1973年から1991年までの記事と研究(さらに重要なことに、読み書き中に形成された雄弁な視点)に関するものであることに注意してください。おそらく今日ほどよく理解されていません。(ビッグステップの意味論は1987年にカーンによって強調されました、そして、小さなステップの意味論に関する最も重要な研究の1つはライトとフェライセン、1992です)

Felleisenがこの違いの重要性を主張する理由のより説得力のある側面(つまり、「小さなステップと大きなステップ、meh」だけではない場合がある理由)に対する私の現在の理解は次のとおりです。行われているポイントは、小さなステップのセマンティクスは実装の詳細と見なされるべきであるということです。この議論によれば、セマンティクスは各プログラムをその値/回答にマップする抽象的な関数であり、残りはそれを近似するように設計された実装デバイスです(またはこのセマンティクスによって誘導された同等性の理由)。今日大きな一歩を踏み出すとき、私たちは統語論的性質の推論規則のシステムを考えますが、上で議論されている「還元戦略」は実際にはマッピングとしてのその抽象化です。(これは実際には概念の表現力や強さを増すとは思わないが、それはそれをより抽象的なものにする。)

したがって、このWikipediaページとMatthias Felleisenが言っていることは次のようなものだと思います。「評価は好きなように定義しますが、結局重要なのは、プログラムがそれらの値にマッピングされる方法です/答え/行動、そしてこれは「運用上のセマンティクス」と呼ばれるべきであり、そして推論されるべきものです。

この位置は、「運用上のセマンティクス」と「陳述上のセマンティクス」の間の現在の区別(私はこれはかなり合意されていると思いますが、文化的な偏りかもしれません)にいくらか反対していることに注意してください。 (縮約関係として定義されます)、そして後者は通常、計算上同等のプログラムがまったく同じ表記を持っているという事実によって特徴付けられます(したがって、表記は実際の計算メカニズムには気づかれません)。この後者の見解では、記事と上記の私の説明で「評価戦略」または「運用セマンティクス」として提案されているものは、むしろ表示セマンティクスと見なされますが、ほとんどの場合よりも具体的な性質であると認められます:値/回答/動作は、多くのセマンティックドメインよりも構文オブジェクトに近いです。

参考資料:この観点を理解するには、1973年にGordon Plotkinが発表した記事である、その公表されているソースに戻ることがおそらく有用です。たとえば、1991年のCrank and Felleisenによる「Parameter-Passing and the Lambda Calculus」は、最初の数ページで問題に関する彼らの立場の非常に明確な概要を示していることがわかりました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.