1

私はCとCycloneが初めてです。私は Michael Hicks の論文Experience With Safe Manual Memory-Management in Cycloneに取り組んでいます。

彼らは次のように述べています。 -スケーラビリティを確保するためのインセンシティブ分析. 分析を単純にするために、一意のポインターのコピー (たとえば、割り当てまたは関数呼び出しで) は、ポインターを消費するものとして扱われます。

ポインターを「消費する」とはどういう意味ですか? これは標準語ですか?

4

3 に答える 3

4

彼らは、特定のポインターが一意であるCのバリアントを実装しています。つまり、同じポインタの2つのコピーを同時に持つことはできません。したがって、ポインタをコピーする(別の変数に割り当て、関数に渡す)たびに、新しいコピーは有効であると見なされ、古いコピーは無効であると見なされます。彼らはこれをポインタを「消費する」と呼びます。

あなたが引用するセクションでは、元の論文で、ヒックスはこの単語「消費する」をイタリック体で示しており、その使用法が彼が意味を定義しているものであることを示しています。ポインターを「消費する」という定義は、ポインターがコピーされたときに追跡し、それ以上の使用を拒否することです。

この使用法は以前の使用法に基づいています。たとえば、線形タイプ、エイリアスタイプ、および機能タイプに関する以前の作業への参照を確認すると、同様の意味で「消費」という単語を使用してそれらを見つけることができます。機能の計算における型付きメモリ管理から:「線形型システムでは、エイリアシングは簡単に制御されます。リージョン名を使用すると、その名前が消費され、他の場所では使用できなくなります。」したがって、この用語は既存の使用法に基づいていますが、ヒックスは型付きラムダ計算の名前ではなく、Cのバリアントのポインターにこれを適用しているため、このペーパーでは正確な定義を詳しく説明する必要があります。

于 2012-11-13T20:43:29.623 に答える
1
e.g., in an assignment or function call

ポインターは、パラメーターとして関数に割り当てられるか渡されるときに消費されます。

于 2012-11-13T20:42:02.910 に答える
0

重要なのは「後続」という言葉だと思うので、ポインターを消費するということは、ポインターを使おうとする試みを意味する可能性があります。

于 2012-11-13T20:44:16.883 に答える