আপনি যদি স্ট্যাকটি খুব ভালভাবে বুঝতে পারেন তবে আপনি বুঝতে পারবেন প্রোগ্রামে মেমরি কীভাবে কাজ করে এবং প্রোগ্রামটিতে মেমরি কীভাবে কাজ করে তা আপনি বুঝতে পারবেন যে প্রোগ্রামে ফাংশন স্টোরটি কীভাবে এবং যদি আপনি বুঝতে পারেন প্রোগ্রামে ফাংশন স্টোরটি কীভাবে পুনরাবৃত্তির ফাংশন কাজ করে তা বুঝতে পারবেন এবং যদি আপনি কীভাবে পুনরাবৃত্তি ফাংশনটি কাজ করে তা আপনি বুঝতে পারবেন যে সংকলক কীভাবে কাজ করে এবং আপনি যদি বুঝতে পারেন যে কীভাবে সংকলক কাজ করে আপনার মনের সংকলক হিসাবে কাজ করবে এবং আপনি কোনও প্রোগ্রাম খুব সহজেই ডিবাগ করবেন
স্ট্যাকটি কীভাবে কাজ করে তা আমাকে ব্যাখ্যা করুন:
প্রথমে আপনাকে জানতে হবে কীভাবে স্ট্যাকের মধ্যে ফাংশন স্টোর রয়েছে:
হিপ স্টোর গতিশীল মেমরি বরাদ্দ মান। স্টোর স্টোর স্বয়ংক্রিয় বরাদ্দ এবং মুছে ফেলার মান।
আসুন উদাহরণ সহ বুঝতে পারি:
def hello(x):
if x==1:
return "op"
else:
u=1
e=12
s=hello(x-1)
e+=1
print(s)
print(x)
u+=1
return e
hello(4)
এখন এই প্রোগ্রামের অংশগুলি বুঝতে:
এখন দেখা যাক কী স্ট্যাক এবং স্ট্যাক পার্টস কি:
স্ট্যাক বরাদ্দ:
কোনও জিনিস মনে রাখবেন যদি কোনও ফাংশন "রিটার্ন" পায় তা তার সমস্ত স্থানীয় ভেরিয়েবলগুলি লোড করেছে বা এটি যে কোনও কিছু তা সঙ্গে সঙ্গে স্ট্যাক থেকে ফিরে আসবে তার স্ট্যাক ফ্রেমটি। এর অর্থ যখন কোনও পুনরাবৃত্ত ফাংশন বেস কন্ডিশনটি পায় এবং আমরা বেস শর্তের পরে রিটার্ন রাখি তাই বেস শর্তটি স্থানীয় ভেরিয়েবলগুলি লোড করতে অপেক্ষা করবে না যা প্রোগ্রামের "অন্য" অংশে অবস্থিত এটি অবিলম্বে স্ট্যাক থেকে বর্তমান ফ্রেমটি ফিরিয়ে দেবে এবং এখন যদি একটি ফ্রেম হয় রিটার্ন পরবর্তী ফ্রেম অ্যাক্টিভেশন রেকর্ডে আছে। এটি ব্যবহারিকভাবে দেখুন:
ব্লকটির অবনতি:
সুতরাং এখনই যখনই কোনও ফাংশন রিটার্ন স্টেটমেন্ট খুঁজে পায় এটি স্ট্যাক থেকে বর্তমান ফ্রেম মুছে দেয়।
স্ট্যাকের মান থেকে ফিরে আসার সময় তারা স্ট্যাকের মধ্যে বরাদ্দ হওয়া বিপরীত ক্রমে ফিরে আসবে।
এগুলি খুব সংক্ষিপ্ত বিবরণ এবং আপনি যদি স্ট্যাক এবং ডাবল পুনরাবৃত্তি সম্পর্কে আরও গভীরভাবে জানতে চান তবে এই ব্লগের দুটি পোস্ট পড়ুন:
ধাপে ধাপে স্ট্যাক সম্পর্কে আরও
স্ট্যাক সহ ধাপে ধাপে ডাবল পুনরাবৃত্তি সম্পর্কে আরও