बोहेम गार्बेज कलेक्टर

बोहेम-डेमर्स-वेइसर कचरा संग्रहकर्ता, जिसे अक्सर बोहेम जीसी के नाम से जाना जाता है, सी (प्रोग्रामिंग भाषा) और सी++ के लिए एक ट्रेसिंग_कचरा_संकलन#सटीक_बनाम_रूढ़िवादी_और_आंतरिक_पॉइंटर्स कचरा संग्रह (कंप्यूटर विज्ञान) है। हंस बोहेम, एलन डेमर्स और मार्क वीज़र द्वारा विकसित। Boehm GC X11 लाइसेंस के समान एक अनुमेय अनुमेय निःशुल्क सॉफ़्टवेयर लाइसेंस तहत वितरित मुफ्त सॉफ्टवेयर है। इस संग्राहक का परिचय देने वाला पहला पेपर 1992 में प्रकाशित हुआ।

डिज़ाइन
हंस बोहम कलेक्टर के संचालन का वर्णन इस प्रकार करते हैं:

Boehm GC स्मृति रिसाव  मोड में भी चल सकता है जिसमें मेमोरी प्रबंधन अभी भी मैन्युअल रूप से किया जाता है, लेकिन बोहेम जीसी जांच कर सकता है कि यह ठीक से किया गया है या नहीं। इस तरह एक प्रोग्रामर मेमोरी लीक और डबल डीलोकेशन का पता लगा सकता है।

बोहेम जीसी को सी स्ट्रिंग हैंडलिंग लाइब्रेरी के साथ भी वितरित किया जाता है जिसे कॉर्ड कहा जाता है। यह C++ में रोप (कंप्यूटर विज्ञान) (निरंतर छोटे सरणियों का पेड़ (डेटा संरचना)) के समान है, लेकिन उचित आवंटन के लिए संदर्भ गिनती का उपयोग करने के बजाय, यह मुक्त वस्तुओं के लिए कचरा संग्रहण पर निर्भर करता है। कॉर्ड बहुत बड़े पाठों को संभालने, उनमें बीच-बीच में संशोधन करने, टुकड़े करने, जोड़ने और परिवर्तनों का इतिहास रखने (पूर्ववत/पुनः करने की कार्यक्षमता) रखने में अच्छे होते हैं।

ऑपरेशन
कचरा संग्राहक अधिकांश असंशोधित सी प्रोग्रामों के साथ, बस प्रतिस्थापित करके काम करता है साथ  कॉल, प्रतिस्थापित करना  साथ  कॉल, और हटाना  कॉल करता है. नीचे दिए गए कोड का टुकड़ा दिखाता है कि कोई पारंपरिक मॉलोक और सी में फ्री के बजाय बोहेम का उपयोग कैसे कर सकता है। पूर्णता के लिए, बोहेम स्पष्ट रूप से आवंटन रद्द करने का समर्थन करता है. सभी प्रतिस्थापन प्रीप्रोसेसर मैक्रोज़ का उपयोग करके किया जा सकता है।

उपयोग और पोर्ट
बोहेम जीसी का उपयोग कई परियोजनाओं द्वारा किया जाता है जो इंकस्केप जैसे सी या सी ++ में कार्यान्वित होते हैं, साथ ही क्रिस्टल (प्रोग्रामिंग भाषा), कोडन उच्च प्रदर्शन पायथन कंपाइलर सहित कई अन्य भाषाओं के लिए रनटाइम वातावरण में उपयोग किया जाता है। जावा रनटाइम वातावरण के लिए जीएनयू कंपाइलर, पोर्टेबल.नेट प्रोजेक्ट, एंबेडेबल कॉमन लिस्प, जीएनयू गुइल, माइक्रोसॉफ्ट .NET प्लेटफॉर्म का मोनो (सॉफ्टवेयर) कार्यान्वयन (संस्करण 2.8 के बाद से सटीक कॉम्पैक्टिंग जीसी का उपयोग भी), जीएनयूस्टेप वैकल्पिक रूप से, और libgc- डी (डी प्रोग्रामिंग भाषा के लिए libgc के लिए एक बंधन, मुख्य रूप से एमसीआई (सॉफ्टवेयर) में उपयोग किया जाता है)। यह कई ऑपरेटिंग सिस्टम का समर्थन करता है, जिसमें कई यूनिक्स वेरिएंट (जैसे मैकओएस) और माइक्रोसॉफ़्ट विंडोज़  शामिल हैं, और वृद्धिशील संग्रह, समानांतर संग्रह और विभिन्न प्रकार के अंतिम रूप देनेवाला सेमेन्टिक्स सहित कई उन्नत सुविधाएँ प्रदान करता है।

बाहरी संबंध

 * Transparent Programmer-Directed Garbage Collection for C++, Hans-J. Boehm and Michael Spertus
 * Dr. Dobbs The Boehm Collector for C and C++, Gene Michael Stover, March 01, 2003
 * Transparent Programmer-Directed Garbage Collection for C++, Hans-J. Boehm and Michael Spertus
 * Dr. Dobbs The Boehm Collector for C and C++, Gene Michael Stover, March 01, 2003
 * Dr. Dobbs The Boehm Collector for C and C++, Gene Michael Stover, March 01, 2003