2017-08-15 10 views
0

ガベージコレクションを使用するプログラミング言語はありますが、手動メモリ管理も可能ですか?たとえば、デストラクタ関数を提供します。プログラミング言語がガベージコレクションと手動メモリ管理を同時に行うことも可能ですか?ガベージコレクションと手動メモリ管理を備えたプログラミング言語

関連のSOのここでの質問が、回答なし: Interpreted languages with manual memory management?

おかげ

+1

はい。 CおよびC++。 [Boehm-GC](http://www.hboehm.info/gc/)。 –

+0

ありがとうエリオット。 'GC_MALLOC()'を使って作成されたオブジェクトは 'delete'を使って破壊できますか? – mils

+0

Ada ............. – user3344003

答えて

1

それは間違いなく可能だが、それはオブジェクトの割り当てをサポートするために言語を必要とする(それは確かに人生を作るOO言語は、だと仮定すると2つ(またはそれ以上)のメモリ領域から簡単にアクセスできます。

これをサポートするプラットフォームの例は、Real Time Specification for Java(RTSJ)です。リアルタイム性の操作は、非決定論的GCによって容易に妨げられる可能性があるため、RTSJは、アプリケーション・コードで使用できる標準Javaヒープ外のメモリー領域を追加します。 RTSJは、HeapMemory、ScopedMemory、ImmortalMemoryの3つのメモリ領域の概念を使用します。 ScopedMemoryは、メモリ領域を特定のスレッドが使用できるようにします。スレッドが終了すると、メモリの領域は自動的に解放されます。これは、開発者がスレッド外のこの領域への参照を共有しないように注意することに依存しています。 ImmortalMemoryはガベージコレクションされないメモリ領域です。オブジェクトがこの領域に割り当てられると、スペースを再利用することはできません(free()呼び出しはありません)。

私はCとC++があなたの説明に合った言語であるという意見に同意しません。いずれも管理環境では実行されないため、いずれの形式の同時GCもありません。

関連する問題