যখন নকশা এবং একটি অবজেক্ট ওরিয়েন্টেড প্রোগ্রামিং ভাষা implenting, কিছু বিন্দু এক একটি (যেমন মৌলিক ধরনের বাস্তবায়ন পছন্দের করা আবশ্যক int
, float
, double
বা সমতুল) শ্রেণীর বা অন্য কিছু হিসাবে। স্পষ্টতই, সি পরিবারের ভাষাগুলির শ্রেণি হিসাবে তাদের সংজ্ঞা না দেওয়ার প্রবণতা রয়েছে (জাভাতে রয়েছে বিশেষ আদিম প্রকার, সি # এগুলি পরিবর্তনযোগ্য স্ট্রাক্ট হিসাবে প্রয়োগ করে ইত্যাদি)।
মৌলিক প্রকারগুলি ক্লাস হিসাবে প্রয়োগ করা হলে আমি একটি অত্যন্ত গুরুত্বপূর্ণ সুবিধা সম্পর্কে ভাবতে পারি (ইউনিফাইড হায়ারার্কি সহ একটি টাইপ সিস্টেমে): এই ধরণেরগুলি মূল ধরণের যথাযথ লিসকভ সাব টাইপ হতে পারে। সুতরাং, আমরা বাক্সিং / আনবক্সিং (স্পষ্ট বা আবদ্ধ), মোড়কের ধরণ, বিশেষ বৈকল্পিক বিধি, বিশেষ আচরণ ইত্যাদির সাহায্যে ভাষা জটিলতা এড়াতে পারি
অবশ্যই, আমি আংশিকভাবে বুঝতে পারি যে ভাষা ডিজাইনাররা কীভাবে তাদের সিদ্ধান্ত নেন: বর্গের উদাহরণগুলিতে কিছু স্থানিক ওভারহেড থাকে (কারণ উদাহরণগুলিতে তাদের স্মৃতি বিন্যাসে একটি vtable বা অন্যান্য মেটাডেটা থাকতে পারে), যে আদিম / স্ট্রাইকগুলির প্রয়োজন হয় না that আছে (যদি ভাষা সেইগুলির উপর উত্তরাধিকারের অনুমতি দেয় না)।
মৌলিক ধরণের প্রায়শই ক্লাস না হওয়ার একমাত্র কারণ কি স্থানিক দক্ষতা (এবং উন্নত স্থানিক অঞ্চল, বিশেষত বড় অ্যারেগুলিতে) ?
আমি সাধারণত উত্তরটি হ্যাঁ হ্যাঁ বলে ধরে নিয়েছি, তবে সংকলকগণ বিশ্লেষণ অ্যালগরিদমগুলি থেকে রেহাই পেয়েছেন এবং সুতরাং কোনও উদাহরণ (কোনও উদাহরণ, কেবলমাত্র একটি মৌলিক ধরণের নয়) কঠোরভাবে প্রমাণিত হলে তারা (নির্বাচিতভাবে) স্থানিক ওভারহেড বাদ দিতে পারে কিনা তা অনুমান করতে পারে strictly স্থানীয়।
উপরেরটি কি ভুল, বা অন্য কিছু মিস করছি?