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