কোনও প্রোগ্রাম প্রয়োগের সময় মেমরি (এবং রিসোর্স লকগুলি) ডিস্টিস্টিনিস্টিক পয়েন্টগুলিতে ওএস-এ ফিরে আসে। নিজেই কোনও প্রোগ্রামের নিয়ন্ত্রণ প্রবাহটি কোথায় তা নিশ্চিতভাবেই যথেষ্ট, নিশ্চিতভাবেই, প্রদত্ত সংস্থানটি বাতিল করা যায়। ঠিক কীভাবে একজন প্রোগ্রামিং fclose(file)
যখন প্রোগ্রামটি সম্পন্ন হয় তখন কোথায় লিখতে হয় তা কীভাবে জানে ।
কন্ট্রোল প্রবাহ কার্যকর করা হলে রানটাইমের সময় GC গুলি এটিকে সরাসরি আবিষ্কার করে সমাধান করে। তবে নিয়ন্ত্রণ প্রবাহ সম্পর্কে সত্যের আসল উত্স। সুতরাং তাত্ত্বিকভাবে, free()
উত্স (বা এএসটি) বিশ্লেষণ করে সংকলনের আগে কলগুলি কোথায় সন্নিবেশ করা উচিত তা নির্ধারণ করা উচিত ।
রেফারেন্স গণনা এটি বাস্তবায়নের একটি সুস্পষ্ট উপায়, তবে পয়েন্টারগুলি এখনও রেফারেন্সযুক্ত (এখনও সুযোগে) এখনও প্রয়োজন নেই এমন পরিস্থিতিতে পড়ার পক্ষে সহজ। এটি কেবলমাত্র পয়েন্টারগুলিকে ম্যানুয়ালি বিলোপ করার দায়িত্বটিকে সেই পয়েন্টারগুলির ক্ষেত্র / রেফারেন্সগুলি ম্যানুয়ালি পরিচালনা করার জন্য একটি দায়িত্ব হিসাবে রূপান্তর করে।
দেখে মনে হচ্ছে এমন কোনও প্রোগ্রাম লেখা সম্ভব যা কোনও প্রোগ্রামের উত্স পড়তে পারে এবং:
- প্রোগ্রামটির নিয়ন্ত্রণ প্রবাহের সমস্ত ক্রিয়াকলাপের পূর্বাভাস --- প্রোগ্রামটির সরাসরি সম্পাদনা দেখার মতো যথার্থতার সাথে
- বরাদ্দ সম্পদের সমস্ত রেফারেন্স ট্র্যাক করুন
- প্রতিটি রেফারেন্সের জন্য, রেফারেন্সটি কখনও অবহেলিত না হওয়ার গ্যারান্টিযুক্ত এমন প্রথম দিকটি খুঁজে পেতে পুরো পরবর্তী নিয়ন্ত্রণ প্রবাহকে অতিক্রম করুন
- এই মুহুর্তে, সোর্স কোডের সেই লাইনে একটি ডিওলোকেশন স্টেটমেন্ট .োকান
এর বাইরে এমন কিছু আছে যা ইতিমধ্যে এটি করে? আমি মনে করি না মরিচা বা সি ++ স্মার্ট পয়েন্টার / আরআইআই একই জিনিস।