প্রোগ্রামিংয়ের মৌলিক ধারণা/স্কোপ
সংক্ষিপ্ত বিবরণ
[সম্পাদনা]একটি শনাক্তকারী নাম বাঁধাইয়ের সুযোগ - একটি সত্তার সাথে একটি নামের সংযোগ, যেমন একটি চলক - হল একটি কম্পিউটার প্রোগ্রামের সেই অঞ্চল যেখানে বাঁধাই বৈধ: যেখানে নামটি সত্তাকে বোঝাতে ব্যবহার করা যেতে পারে। এই অঞ্চলটিকে একটি স্কোপ ব্লক বলা হয়। প্রোগ্রামের অন্যান্য অংশে, নামটি একটি ভিন্ন সত্তাকে বোঝাতে পারে (এর একটি ভিন্ন বাঁধাই থাকতে পারে), অথবা একেবারেই কিছু নাও (এটি আনবাউন্ড হতে পারে)। [১]
আলোচনা
[সম্পাদনা]স্কোপ হলো প্রোগ্রামের সেই ক্ষেত্র যেখানে একটি আইটেম (সেটি চলক, ধ্রুবক, ফাংশন ইত্যাদি) যার একটি শনাক্তকারী নাম আছে তা স্বীকৃত হয়। আমাদের আলোচনায়, আমরা একটি চলক ব্যবহার করব এবং একটি প্রোগ্রামের মধ্যে যেখানে চলকটি সংজ্ঞায়িত করা হয়েছে সেই স্থানটি তার ক্ষেত্র নির্ধারণ করে।
গ্লোবাল স্কোপ (এবং এক্সটেনশন দ্বারা গ্লোবাল ডেটা স্টোরেজ) তখন ঘটে যখন একটি চলককে "একটি ফাংশনের বাইরে" সংজ্ঞায়িত করা হয়। প্রোগ্রামটি কম্পাইল করার সময় এটি অবজেক্ট কোডের অংশ হিসাবে প্রোগ্রামের ডেটা এরিয়ার মধ্যে ভেরিয়েবলের জন্য স্টোরেজ এরিয়া তৈরি করে। অবজেক্ট কোডে একটি মেশিন কোড পিস, একটি ডেটা এরিয়া এবং লিঙ্কার রেজোলিউশন নির্দেশাবলী রয়েছে। যেহেতু ভেরিয়েবলের গ্লোবাল স্কোপ রয়েছে তাই এটি আপনার সোর্স কোডের মধ্যে থাকা সমস্ত ফাংশনের জন্য উপলব্ধ। এটি আপনার কোডের সাথে লিঙ্ক করা অন্যান্য অবজেক্ট মডিউলের ফাংশনগুলির জন্যও উপলব্ধ করা যেতে পারে; তবে, আমরা এখন সেই ব্যাখ্যাটি এড়িয়ে যাব। এই মুহুর্তে একটি মূল শব্দ পরিবর্তন শেখা উচিত। যদিও চলকটির গ্লোবাল স্কোপ রয়েছে, প্রযুক্তিগতভাবে এটি কেবল সংজ্ঞার বিন্দু থেকে প্রোগ্রাম সোর্স কোডের শেষ পর্যন্ত উপলব্ধ। এই কারণেই গ্লোবাল স্কোপ সহ বেশিরভাগ ভেরিয়েবল যেকোনো ফাংশনের আগে সোর্স কোডের উপরের দিকে স্থাপন করা হয়। এইভাবে তারা সমস্ত ফাংশনের জন্য উপলব্ধ।
স্থানীয় স্কোপ (এবং এক্সটেনশন দ্বারা স্থানীয় ডেটা স্টোরেজ) তখন ঘটে যখন একটি ভেরিয়েবলকে "একটি ফাংশনের ভিতরে" সংজ্ঞায়িত করা হয়। কম্পাইল করার সময়, কম্পাইলার মেশিন নির্দেশাবলী তৈরি করে যা স্ট্যাক নামে পরিচিত একটি এলাকায় স্টোরেজ অবস্থান তৈরির নির্দেশ দেবে, যা কম্পিউটারের মেমোরির অংশ। এই মেমোরি অবস্থানগুলি ততক্ষণ পর্যন্ত বিদ্যমান থাকে যতক্ষণ না ফাংশনটি তার কাজ সম্পন্ন করে এবং তার কলিং ফাংশনে ফিরে আসে। অ্যাসেম্বলি ভাষায়, আমরা আইটেমগুলিকে স্ট্যাকের উপর ঠেলে দেওয়া এবং ফাংশনটি শেষ হয়ে গেলে স্ট্যাক থেকে পপ অফ করার কথা বলি। সুতরাং, স্ট্যাক হল মেমোরির একটি পুনঃব্যবহারযোগ্য এলাকা যা সমস্ত ফাংশন দ্বারা ব্যবহৃত হয় এবং ফাংশন শেষ হওয়ার সাথে সাথে মুক্তি পায়। যদিও ভেরিয়েবলের স্থানীয় স্কোপ থাকে, প্রযুক্তিগতভাবে এটি কেবল সংজ্ঞার বিন্দু থেকে ফাংশনের শেষ পর্যন্ত উপলব্ধ। একটি ফাংশনে ডেটা আইটেমগুলির প্যারামিটার পাসিং তাদের স্থানীয় ভেরিয়েবল হিসাবে প্রতিষ্ঠিত করে। অতিরিক্তভাবে, ফাংশনের জন্য প্রয়োজনীয় অন্য কোনও ভেরিয়েবল বা ধ্রুবক সাধারণত ফাংশন সংজ্ঞার শীর্ষের কাছাকাছি ঘটে যাতে ফাংশনের কোডের সম্পূর্ণ সম্পাদনের সময় সেগুলি উপলব্ধ থাকে।
মডুলারাইজেশনের জন্য স্কোপ একটি গুরুত্বপূর্ণ ধারণা। প্রোগ্রাম কন্ট্রোল ফাংশনগুলি ভেরিয়েবল এবং ধ্রুবকগুলির জন্য গ্লোবাল স্কোপ ব্যবহার করতে পারে এবং যেকোনো ফাংশনের আগে প্রোগ্রামের শীর্ষে স্থাপন করে। নির্দিষ্ট টাস্ক ফাংশনগুলি শুধুমাত্র স্থানীয় স্কোপ ভেরিয়েবল ব্যবহার করে প্যারামিটার পাসিং সহ ফাংশনে প্রয়োজন অনুসারে ডেটা পাস করে এবং প্রয়োজন অনুসারে স্থানীয় ভেরিয়েবল এবং ধ্রুবক তৈরি করে। কলিং ফাংশনে যে কোনও তথ্য ফেরত পাঠানোর প্রয়োজন হয় তা আবার প্যারামিটার পাসিংয়ের মাধ্যমে করা হয়। এই বদ্ধ যোগাযোগ মডেল যা একটি ফাংশনে সমস্ত ডেটা প্রবেশ এবং বাইরে প্রেরণ করে এনক্যাপসুলেশনের জন্য একটি গুরুত্বপূর্ণ পূর্বসূরী ধারণা তৈরি করে যা অবজেক্ট-ওরিয়েন্টেড প্রোগ্রামিংয়ে ব্যবহৃত হয়।
মূল শর্তাবলী
[সম্পাদনা]- ডেটা এরিয়া
- ডেটা স্টোরেজের জন্য ব্যবহৃত একটি অবজেক্ট কোড ফাইলের একটি অংশ।
- গ্লোবাল স্কোপ
- একটি ফাংশনের বাইরে ডেটা স্টোরেজ সংজ্ঞায়িত।
- স্থানীয় স্কোপ
- একটি ফাংশনের ভিতরে ডেটা স্টোরেজ সংজ্ঞায়িত।
- স্কোপ
- একটি সোর্স কোড ফাইলের ক্ষেত্র যেখানে একটি শনাক্তকারীর নাম স্বীকৃত হয়।
- স্ট্যাক
- ডেটা স্টোরেজের জন্য ব্যবহৃত কম্পিউটারের মেমরির একটি অংশ।
তথ্যসূত্র
[সম্পাদনা]Ajmain Istheak (আলাপ) ১০:২৩, ২১ মে ২০২৫ (ইউটিসি)