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