বেশ কয়েকটি উত্তর একটি স্ট্যাক ওভারফ্লো ব্রাউজ করার পরে, এটি স্পষ্ট যে কিছু স্থানীয় সংকলিত ভাষায় আবর্জনা সংগ্রহ রয়েছে । তবে এটি কীভাবে কাজ করবে তা আমার কাছে অস্পষ্ট।
আমি বুঝতে পারি যে কীভাবে আবর্জনা সংগ্রহের দ্বারা ব্যাখ্যা করা ভাষার সাথে কাজ করতে পারে। আবর্জনা সংগ্রাহক সহজেই দোভাষী এর সাথে সাথে চালাতেন এবং প্রোগ্রামটির স্মৃতি থেকে অব্যবহৃত এবং অপ্রয়োজনীয় বস্তুগুলি মুছবেন। তারা দুজনে এক সাথে চলছে।
সংকলিত ভাষাগুলির সাথে এটি কীভাবে কাজ করবে? আমার বোধগম্যতা হল একবার সংকলকটি লক্ষ্য কোডে উত্স কোডটি সংকলন করে - বিশেষত নেটিভ মেশিন কোড - এটি সম্পন্ন হয়। এর কাজ শেষ। সুতরাং সংকলিত প্রোগ্রামটি কীভাবে পাশাপাশি আবর্জনা সংগ্রহ করা যেতে পারে?
"আবর্জনা" অবজেক্টগুলি মুছতে প্রোগ্রামটি চালিত হওয়ার সময় সংকলকটি কি কোনও উপায়ে সিপিইউতে কাজ করে? বা সংকলকটি সংকলিত প্রোগ্রামটির সম্পাদনযোগ্যতে কিছু ন্যূনতম আবর্জনা সংগ্রহকারীকে অন্তর্ভুক্ত করে।
আমি বিশ্বাস করি স্ট্যাক ওভারফ্লোতে এই উত্তর থেকে এই উত্তরের কারণে আমার উত্তরোত্তর বক্তব্যটির আগেরটির চেয়ে বেশি বৈধতা থাকবে :
এ জাতীয় একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ হলেন আইফেল। বেশিরভাগ আইফেল সংকলক বহনযোগ্যতার কারণে সি কোড উত্পন্ন করে। এই সি কোডটি একটি স্ট্যান্ডার্ড সি সংকলক দ্বারা মেশিন কোড উত্পাদন করতে ব্যবহৃত হয়। আইফেল বাস্তবায়নগুলি এই সংকলিত কোডটির জন্য জিসি (এবং কখনও কখনও এমনকি সঠিক জিসি) সরবরাহ করে এবং ভিএমের কোনও প্রয়োজন নেই। বিশেষত, ভিজুয়ালএফেল সংকলক সম্পূর্ণ জিসি সমর্থন সহ নেটিভ x86 মেশিন কোড উত্পন্ন করে ।
শেষ বিবৃতিটি বোঝায় যে সংকলকটিতে চূড়ান্ত নির্বাহযোগ্য কিছু প্রোগ্রাম অন্তর্ভুক্ত রয়েছে যা প্রোগ্রাম চলাকালীন আবর্জনা সংগ্রহকারী হিসাবে কাজ করে।
পৃষ্ঠার গার্বেজ কালেকশন সম্পর্কে ডি ভাষা ওয়েবসাইট যা স্থানীয়ভাবে কম্পাইল এবং একটি ঐচ্ছিক আবর্জনা সংগ্রাহক রয়েছে - - এছাড়াও প্রজ্ঞান যে কিছু পটভূমি প্রোগ্রাম গার্বেজ কালেকশন বাস্তবায়ন মূল এক্সিকিউটেবল প্রোগ্রাম পাশাপাশি রান বলে মনে হয়।
ডি এমন একটি সিস্টেম প্রোগ্রামিং ভাষা যা আবর্জনা সংগ্রহের পক্ষে সমর্থন করে। সাধারণত এটি স্পষ্টভাবে মেমরি মুক্ত করার প্রয়োজন হয় না। প্রয়োজন অনুসারে কেবল বরাদ্দ করুন এবং আবর্জনা সংগ্রহকারী পর্যায়ক্রমে সমস্ত অব্যবহৃত মেমরি উপলব্ধ মেমরির পুলটিতে ফিরিয়ে দেবে।
উপরে উল্লিখিত পদ্ধতিটি যদি ব্যবহার করা হয় তবে এটি ঠিক কীভাবে কাজ করবে? সংকলকটি কিছু আবর্জনা সংগ্রহের প্রোগ্রামের একটি অনুলিপি সঞ্চয় করে এবং এটি তৈরি করা প্রতিটি নির্বাহযোগ্যের মধ্যে আটকায়?
নাকি আমি আমার ভাবনায় ত্রুটিযুক্ত? যদি তা হয় তবে সংকলিত ভাষার জন্য আবর্জনা সংগ্রহের বাস্তবায়নের জন্য কোন পদ্ধতি ব্যবহার করা হয় এবং কীভাবে তারা ঠিক কাজ করবে?
malloc()
।