"সংকলক মেমরি বরাদ্দ করে" বললে আক্ষরিক অর্থে সত্যই সঠিক না হতে পারে, তবে এটি একটি রূপক যা সঠিক উপায়ে প্রস্তাব দেওয়া হয়েছে।
আসলে যা ঘটে তা হ'ল সংকলক একটি প্রোগ্রাম তৈরি করে যা তার নিজস্ব স্মৃতি বরাদ্দ করে। বাদে এটি মেমরি বরাদ্দকারী প্রোগ্রাম নয়, তবে ওএস।
সুতরাং প্রকৃতপক্ষে যা ঘটে তা হ'ল সংকলক একটি প্রোগ্রাম তৈরি করে যা তার মেমরির প্রয়োজনীয়তাগুলি বর্ণনা করে এবং ওএস সেই বিবরণটি গ্রহণ করে এবং মেমরি বরাদ্দ করতে এটি ব্যবহার করে। ওএস একটি প্রোগ্রাম, এবং প্রোগ্রামগুলি আসলে কিছু না করে ব্যতীত, তারা সিপিইউ দ্বারা সম্পাদিত একটি গণনা বর্ণনা করে। সিপিইউ ব্যতীত কেবল একটি জটিল ইলেকট্রনিক সার্কিট, কোনও অ্যানথ্রোপমর্ফাইজড ছোট্ট হোমোনকুলাস নয়।
তবে প্রোগ্রামগুলি এবং সংকলক এবং সিপিইউগুলি কম্পিউটারের অভ্যন্তরে বসবাসকারী ছোট মানুষ হিসাবে ভাবা বুদ্ধিমান হয়ে যায়, কারণ তারা আসলে তা নয়, কারণ এটি একটি রূপক যা মানুষের মস্তিষ্ককে ভালভাবে ফিট করে।
কিছু রূপক বিমূর্তির এক স্তরের জিনিসগুলি বর্ণনা করার জন্য ভাল কাজ করে তবে অন্য স্তরেও তেমন কাজ করে না। আপনি যদি সংকলকের স্তরের কথা চিন্তা করেন, কোডটি উত্পন্ন করার ক্রিয়াটি বর্ণনা করা বোধগম্য হবে যা ফলস্বরূপ "সংকলন করা প্রোগ্রামটি" প্রোগ্রামটি যখন "মেমোরি বরাদ্দকরণ" হিসাবে চালিত হয় তখন মেমরি বরাদ্দকরণের ফলে ঘটবে। এটি এতটা কাছে যে আমরা যখন একটি সংকলক কীভাবে কাজ করে সে সম্পর্কে চিন্তা করি, তখন আমাদের সঠিক ধারণা থাকে এবং এটি এতটা দীর্ঘায়িত হয় না যে আমরা যা করছিলাম তা ভুলে যাই। যদি আমরা সেই রূপকটি সংকলিত প্রোগ্রামের চলমান স্তরে ব্যবহার করার চেষ্টা করি তবে এটি একটি বিভ্রান্তিকর উপায়ে বিভ্রান্তিকর, যা আপনি লক্ষ্য করেছেন।