非解釈言語でガベージコレクタを使用することは可能ですか?解釈された言語では、インタープリターはプログラムを1行ずつ実行するため、インタープリターはGCをランタイムに提供することもできます。しかし、コード自体にGCを構築しなくても、他の言語のガベージコレクタを使用することは可能ですか?未翻訳言語にガベージコレクタがありますか?
答えて
はい。
スマートポインタを実装したC++では、スマートポインタの参照カウントがゼロになるため、ガベージコレクトされます。
ガベージコレクションがあります。あなたはそれを自分で構築しませんでした。
質問はガベージコレクションのトレースに関するものだと思うし、refcountは代用ではありません。 –
これはガベージコレクションではありません。サイクルを持つようにいくつかのオブジェクトを接続し、サイクルを手動で中断しない限り破壊されることはありません。 – sharptooth
@sharptooth:世界ではなく、他の世界と一緒に取ってください。http://www.codeproject.com/KB/cpp/automatic_gc_using_sp.aspx –
ガベージコレクションでは、ランタイムがそれらを識別してガベージコレクションに使用できるように、ポインタ変数に特別な方法でマークする必要があります。解釈/コンパイルとは関係ありませんが、特別なランタイムが必要で、各変数に追加のデータを格納する必要があります。
よく解釈された言語はあなたにランタイムを与えます。 Interpretorがランタイムとして動作し、ガベージコレクタを実行することは、少なくとも簡単です。どのネイティブ言語でも、実行時にOSが使用されますか?したがってGCはありませんか? – Geek
GCと解釈はお互いに無関係です。はい、インタプリタ言語でガベージコレクションを行うほうが簡単ですが、解釈されない言語でもこれを行うことができます。 OSは通常、ガベージコレクションの埋め込みサポートを持っていませんが、多くの言語ランタイムにはあります。 – sharptooth
ポインタ変数を特別な方法でマーキングしなくても、すべてのメモリ内容を潜在的なポインタとして扱う、いわゆる保守的GCを持つことができます。他の答えでBoehmのGCを参照してください。 –
Objective-C 2には現在ガベージコレクションがあり、C++でも利用できるガベージコレクションライブラリがあります。
オブジェクトツリーを走査できるようにオブジェクトを検査することができる言語があれば、それが可能だと思います。
どのように動作するか説明してください。これはあなたのプログラムと一緒にGCスレッドを添付するようなものですか? – Geek
独立したスレッドは、GCとは無関係です。ちょうどJavaのやり方と同じです。ほとんどのC++(およびObjective-C)は、refカウントがゼロになると削除時にそれを処理します。 –
Objective-C 2には実際のガベージコレクションがあります。ランタイムはオブジェクトツリーを横断します。ガベージコレクションが有効になっていると、参照カウントは無視されます。私はイベントループの一部だと信じていますが、わかりません。 –
新しいC++ 0xには、ガベージコレクションの実装を容易にする機能が含まれています。たとえばinterviewを参照してください。
はい - コンパイル言語での実際の実装のためにhttp://www.hpl.hp.com/personal/Hans_Boehm/gc/
リンクが無効です。 – Trilarion
http://www.hboehm.info/gc/ –
、この場合には、Cおよび/またはC++は、Haskellのは、それがネイティブコードにコンパイルされていますか、ガベージコレクションを持っているhttp://www.hpl.hp.com/personal/Hans_Boehm/gc/
でベームGCを見ますまたは解釈される。
- 1. 言語翻訳
- 2. 言語翻訳grammer
- 3. ボットフレームワーク言語翻訳
- 4. デフォルト言語をポルトガル語に翻訳する方法はありますか?
- 5. スクリプト言語を他の言語に翻訳できますか?
- 6. django 1.10翻訳、言語は切り替えられましたが、翻訳はありません
- 7. iPhone用言語翻訳API
- 8. Laravel Vue言語翻訳
- 9. PHPでの言語翻訳
- 10. iphoneの言語翻訳
- 11. iPhone - initWithBarButtonSystemItemと言語翻訳
- 12. Microsoft Bot Framework言語翻訳
- 13. Android言語の翻訳エラー
- 14. ASP.NETでの言語翻訳
- 15. ドキュメント言語翻訳用API
- 16. cin.failとcin.clearをC言語に翻訳する方法はありますか?
- 17. ある言語から別の言語にコードを手動で翻訳する
- 18. 用語:ある言語のプログラムを別の言語に翻訳する動作
- 19. Drupal 6多言語サイト - ノードタイプで翻訳する権限はありますか?
- 20. Androidで言語を別の言語に翻訳する方法
- 21. AngularJSの言語を英語からアラビア語に翻訳する方法はありますか?
- 22. ある言語の音声を別の言語に翻訳する
- 23. Zendカスタム言語を翻訳する
- 24. String Robberの言語を翻訳する
- 25. 技術用語を英語から他の言語に翻訳しますか?
- 26. Coffe(またはType)からvanilla js言語に翻訳する
- 27. jQuery言語翻訳が機能していませんか?
- 28. 多言語ウェブサイトの翻訳の制限
- 29. カスタムウィジェットへの言語翻訳の統合
- 30. は、複数の言語での翻訳
「解釈済み」と「ネイティブ」の間に間違った二分法を仮定しているのだろうかと思います。たとえば、JavaやC#は、 "解釈"も "ネイティブ"でもなく、本質的にはVM内で実行されますが、ILから実行されます。 –
あなたはもっと説明できますか? – Geek
その会話については、私の返信のコメントを見てください。 –