ভাষা নকশার অনেক দিকের মতো, এটি পারফরম্যান্সের বিরুদ্ধে কমনীয়তার বাণিজ্য থেকে শুরু করে (পূর্ববর্তী ভাষাগুলি থেকে কিছু historicalতিহাসিক প্রভাব উল্লেখ না করে)।
বিকল্প
একটি প্রোগ্রামিং ল্যাঙ্গুয়েজ তৈরি করা অবশ্যই সম্ভব (যা বেশ সহজ) একটি মাত্র প্রকারের প্রাকৃতিক সংখ্যা nat
। একাডেমিক অধ্যয়নের জন্য ব্যবহৃত প্রায় সমস্ত প্রোগ্রামিং ল্যাঙ্গুয়েজে (যেমন, পিসিএফ, সিস্টেম এফ) এই একক সংখ্যার প্রকার রয়েছে, যা আপনি লক্ষ্য করে বলেছিলেন যে এটি আরও মার্জিত সমাধান। তবে অনুশীলনে ভাষার নকশা কেবল কমনীয়তা নয়; আমাদের অবশ্যই পারফরম্যান্স বিবেচনা করতে হবে (ভাষাটির প্রয়োগের উপর নির্ভর করে কতটুকু পারফরম্যান্স বিবেচিত হবে)। পারফরম্যান্সে সময় এবং স্থান উভয়ই সীমাবদ্ধ থাকে।
জায়গার সীমাবদ্ধতা
প্রোগ্রামারটিকে আপ-ফ্রন্টের বাইট সংখ্যা নির্বাচন করতে দেওয়া মেমরি-সীমাবদ্ধ প্রোগ্রামগুলিতে স্থান বাঁচাতে পারে। যদি আপনার সমস্ত সংখ্যা 256 এরও কম হতে চলেছে তবে আপনি 8 গুণ বেশি byte
গুলি ব্যবহার করতে পারেন long
, বা আরও জটিল বস্তুর জন্য সংরক্ষিত সঞ্চয়স্থান ব্যবহার করতে পারেন। স্ট্যান্ডার্ড জাভা অ্যাপ্লিকেশন বিকাশকারীকে এই সীমাবদ্ধতাগুলি নিয়ে চিন্তা করতে হবে না, তবে তারা সামনে আসে।
দক্ষতা
এমনকি যদি আমরা স্থানটিকে উপেক্ষা করি, তবুও আমরা সিপিইউ দ্বারা সীমাবদ্ধ, যার কেবলমাত্র একটি নির্দিষ্ট সংখ্যক বাইট (64৪-বিট আর্কিটেকচারে 8 বাইট) পরিচালনা করে এমন নির্দেশাবলী রয়েছে। এর অর্থ এমনকি একটি একক 8-বাইট long
প্রকার সরবরাহ করা সীমাহীন প্রাকৃতিক সংখ্যার ধরণের চেয়ে ভাষার বাস্তবায়নকে উল্লেখযোগ্যভাবে সহজ করে তুলবে, সরাসরি একক অন্তর্নিহিত সিপিইউ নির্দেশিকায় পাটিগণিতের ক্রিয়াকলাপকে ম্যাপ করতে সক্ষম হয়ে । আপনি প্রোগ্রামার ইচ্ছামত বৃহৎ সংখ্যক ব্যবহার করার অনুমতি দেয়, তাহলে একটি একক গাণিতিক অপারেশন ম্যাপ করা আবশ্যক ক্রম জটিল মেশিন নির্দেশাবলীর, যা নিচে প্রোগ্রাম মন্থর হবে। এটি হ'ল পয়েন্ট (1) যা আপনি উত্থাপন করেছেন।
ভাসমান পয়েন্ট ধরণের
এখনও পর্যন্ত আলোচনাটি কেবলমাত্র পূর্ণসংখ্যা সম্পর্কিত করে। ভাসমান-পয়েন্টের ধরণগুলি একটি অত্যন্ত জন্তু এবং অত্যন্ত সূক্ষ্ম শব্দার্থক এবং প্রান্ত-কেসযুক্ত are সুতরাং, যদিও আমরা সহজেই প্রতিস্থাপন করতে পারে int
, long
, short
, এবং byte
একটি একক সঙ্গে nat
ধরন, এটা স্পষ্ট নয় কি ফ্লোটিং পয়েন্ট সংখ্যার টাইপ এমনকি হয় । এগুলি প্রকৃত সংখ্যা নয়, স্পষ্টতই, যেহেতু প্রোগ্রামিং ভাষায় আসল সংখ্যা থাকতে পারে না। এগুলি বেশ যুক্তিযুক্ত সংখ্যা নয়, হয় (যদিও এটি ইচ্ছা করলে যৌক্তিক ধরণের তৈরি করা সোজা-এগিয়ে)। মূলত, আইইইই আনুমানিক আসল সংখ্যাগুলি কিন্ডার করার সিদ্ধান্ত নিয়েছে এবং তখন থেকেই সমস্ত ভাষা (এবং প্রোগ্রামাররা) তাদের সাথে আটকে রয়েছে।
অবশেষে:
সম্ভবত প্রোগ্রামারটি চাইবে না যে কেউ একটি নির্দিষ্ট আকারের চেয়ে বড় সংখ্যা ব্যবহার করতে সক্ষম হবে এবং এটি তাদের এটি সীমাবদ্ধ করতে দেয়।
এটি কোনও বৈধ কারণ নয়। প্রথমত, আমি এমন কোনও পরিস্থিতিতে ভাবতে পারি না যেখানে প্রকারগুলি প্রাকৃতিকভাবে সংখ্যার সীমাটি এনকোড করতে পারে, উল্লেখ করার জন্য না যে সম্ভাব্যতাটি অ্যাস্ট্রোনমিকভাবে কম যে প্রোগ্রামার প্রয়োগ করতে চায় এমন সীমানা আদিম ধরণের যে কোনও আকারের মাপের সাথে সামঞ্জস্যপূর্ণ।