所有権タイプと分離ロジック


10

所有権のタイプと分離ロジックは、同様の目標を持っているようで、所有権とエイリアシングを制御します。おそらく、私も追加する必要があります:モジュール仕様を作成する機能。

所有権タイプと分離ロジックの関係について何がわかっていますか?


漠然と聞こえます。
Dave Clarke

@DaveClarke:私の答えはあなたにとって意味がありますか?あなたは所有権に関して多くの仕事をしてきました、そして私は分離ロジックに取り組むことに切り替える前にほんの少しだけしました。
Neel Krishnaswami 2012

@NeelKrishnaswami:あなたの答えはとても理にかなっています。時間があるときはギャップを埋めるつもりです。いずれにせよ、私は重要な比較をする紙を知りません。
Dave Clarke

回答:


7

私は最近、所有権タイプの調査を書き終えましたが、2つのトピックの関係を説明するものはほとんど見つかりませんでした。私が出会った最も近い3つの論文は次のとおりで、奇妙なことに同じ会議からのものです。

  • ヤン・チャオとジョン・ボーイランド。所有権タイプの基本的な許可の解釈。ソフトウェア工学の理論的側面に関する第2回IEEE / IFIP国際シンポジウム、TASE 2008、2008年6月17日〜19日、中国南京。IEEE Computer Society、2008年、65〜72ページ。

  • シュリンワン、ルイスソアレスバルボサ、ホセヌノオリベイラ。制限された分離ロジックの関係モデル。ソフトウェア工学の理論的側面に関する第2 IEEE / IFIP国際シンポジウム、TASE 2008、2008年6月17〜19日、中国、南京。IEEE Computer Society、2008年、263〜270ページ。

  • Shuling WangとZongyan Qiu。閉じ込めとその応用のための一般的なモデル。ソフトウェア工学の理論的側面に関する第2 IEEE / IFIP国際シンポジウム、TASE 2008、2008年6月17〜19日、中国、南京。IEEE Computer Society、2008年、57〜64ページ。

最初の論文では、Boylandの部分的なアクセス許可という点で、所有者(支配者としての所有者)と所有者としてのロック(所有者としてのロック)の2つのスタイルの所有権をエンコードしています。

2番目のペーパーでは、所有権タイプで使用されているものと同様の制限概念を取り上げ、それらを分離ロジックに追加します。

3番目の論文では、所有権タイプなどのさまざまな閉じ込め分野をエンコードするために使用されるセマンティックアプローチを開発しました。彼らのシステムが分離ロジックもカバーしているかどうかはわかりませんが、現時点ではアクセスできません。彼らのアプローチはかなりアドホックです。それは、ジェームズノーブルや他の人々と私が少し前に書いた論文に対して、より形式的で体系的であると見なすことができます。

  • カプセル化のモデルに向けてJames Noble、Robert Biddle、Ewan Tempero、Alex Potanin、Dave Clarkeエイリアシング、閉じ込め、オブジェクト指向プログラミングにおける所有権に関する最初の国際ワークショップ(IWACO)、2003年。

9

違いを理解する方法は、所有権の種類がオブジェクトグラフの形状を制約し、下位構造システム(分離ロジックなど)がヒープへのアクセス許可を管理することです。

odododod

対照的に、線形型や分離ロジックなどの部分構造システムは、リソースの概念に依存しています。ヒープの各領域はリソースであり、リソースを所有していない場合、それに触れることはできません。これにより、フレーム条件が非常に簡単になります。常に保持されます。

表面的な違いの1つ(それでも長い間私を混乱させていました)は、所有権のタイプがタイプであり、分離ロジックがプログラムロジックであることです。幸い、所有権タイプはタイプ理論の設定で生まれましたが、人々はこれらのアイデアをプログラムロジックにも適用しています。

私がこれに関して知っている2つの主要な理論的作品は、動的フレームに関するKassiosの作品であり、BannerjeeとNaumann(および彼らの学生)は、地域の論理に関する彼らの作品で体系的に利用しました。

私が理解しているように、彼らの基本的なアプローチはHoareロジックを採用することです。

  1. オブジェクトと領域を関連付けるために使用する新しいタイプの領域変数を追加します。
  2. Hoareロジックにエフェクトシステムを追加して、タッチの読み取りと書き込みの領域を追跡します。
  3. 効果を使用して、アサーションがフレームを尊重しているかどうかを判断します。もしそうなら、あなたはそれをフレーミングすることができ、そうでなければ、あなたはできません。

それぞれのアプローチには長所と短所があります。

  • フレームの条件を計算する必要があるため、所有権により、フレームプロパティは部分構造アプローチよりも使い勝手が大幅に低下します。

  • 一方、DAGのアルゴリズムは、所有者スタイルでより優れた帰納的証明をサポートします。これは、フットプリントをポインター構造から分離できるためです。分離スタイルの仕様では、スパニングツリーに帰納的不変量を与えるのが自然です。しかし、アルゴリズムが計算するスパニングツリーが不変条件のスパニングツリーと異なる場合は、傷ついた世界に陥っています。

命令型プログラムのほぼすべてのコマンドにフレームプロパティが必要なため、所有権より分離の方が使いやすいというのが私の一般的な感覚です。(Dave Naumann氏は、アサーションロジックは昔ながらのFOLであり、既製の定理証明器とSMTソルバーを使用できるため、リージョンロジックの方が自動化に適していると主張しています。)

編集:私はちょうどマットパーキンソンとアレックスサマーズによる次の論文を見つけました、分離論理と暗黙の動的フレームの関係、彼らは2つの方法を統合する論理を与えると主張しています。


洞察力をありがとう、ニール。ただし、違いではなく、2つのパラダイムの関係について疑問に思っています。だから私は今のところ質問を開いたままにしておきます。
Uday Reddy、2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.