এটা একটা ভালো প্রশ্ন! এটি টাইপ করা ভাষায় টাইপগুলি থেকে আমরা কী প্রত্যাশা করে তা জিজ্ঞাসা করে।
প্রথম নোট করুন যে আমরা programক্যবদ্ধভাবে যে কোনও প্রোগ্রামিং ভাষা টাইপ করতে পারি : কেবল একটি চিঠি বাছাই করুন, বলুন U
এবং বলুন যে প্রতিটি প্রোগ্রামের ধরন রয়েছে U
। এটি মারাত্মকভাবে কার্যকর নয়, তবে এটি একটি বিষয় দেয়।
প্রকারগুলি বোঝার অনেকগুলি উপায় রয়েছে তবে প্রোগ্রামারের দৃষ্টিকোণ থেকে নিম্নলিখিতটি আমি দরকারী বলে মনে করি। হিসেবে একটি টাইপ চিন্তা স্পেসিফিকেশন বা গ্যারান্টি । অর্থাৎ টাইপ হয়েছে একজন বলতে যে, "আমরা গ্যারান্টি / আশা / চাহিদা যে ই সম্পত্তি দ্বারা এনকোড সন্তুষ্ট একজন "। প্রায়শই এ হ'ল কিছু সাধারণ বিষয় , যার ক্ষেত্রে সম্পত্তিটি "এটি একটি পূর্ণসংখ্যা" হয়।ইএকজনইএকজনএকজনint
আপনার ধরণের কীভাবে প্রকাশ করা যায় তার কোনও শেষ নেই। নীতিগতভাবে তারা যে কোনও ধরণের যৌক্তিক বিবৃতি হতে পারে, তারা বিভাগের তত্ত্ব এবং হোয়াট নোট ইত্যাদি ব্যবহার করতে পারে উদাহরণস্বরূপ, নির্ভরশীল প্রকারগুলি আপনাকে "এই ফাংশন মানচিত্রের তালিকাগুলির তালিকা তৈরি করে যেমন আউটপুটটি সাজানো ইনপুট" এর মতো বিষয়গুলি প্রকাশ করতে দেয়। আপনি আরও যেতে পারেন, এই মুহুর্তে আমি "সমবর্তী বিচ্ছেদ লজিকস" সম্পর্কিত একটি বক্তব্য শুনছি যা আপনাকে কীভাবে সমবর্তী প্রোগ্রামগুলি ভাগ করে নেওয়ার সাথে কাজ করে সে সম্পর্কে কথা বলতে দেয়। অভিনব জিনিস।
প্রোগ্রামিং ল্যাঙ্গুয়েজ ডিজাইনের বিভিন্ন ধরণের শিল্পটি ভারসাম্যহীনতা এবং সরলতার মধ্যে একটি :
- আরও সংবেদনশীল ধরনের আমাদের আরও কী কী ঘটতে চলেছে তা বিশদে (নিজের কাছে এবং সংকলককে) ব্যাখ্যা করার অনুমতি দেয়
- সহজ প্রকারগুলি বোঝা সহজ এবং সংকলকটিতে আরও সহজে স্বয়ংক্রিয় করা যায়। (লোকেরা এমন প্রকারের সাথে আসে যা প্রকারের সাহায্যে প্রকার সহকারী এবং প্রকারের চেক করতে ব্যবহারকারীর ইনপুট প্রয়োজন)
সরলতা অবমূল্যায়ন করা উচিত নয়, কারণ প্রোগ্রামিং ভাষার তত্ত্বের ক্ষেত্রে প্রতিটি প্রোগ্রামার পিএইচডি করেন না।
সুতরাং আসুন আপনার প্রশ্নে ফিরে আসুন: আপনি কীভাবে জানবেন যে আপনার টাইপ সিস্টেমটি ভাল ? ঠিক আছে, উপপাদাগুলি প্রমাণ করুন যা আপনার প্রকারগুলিকে ভারসাম্যযুক্ত দেখায়। দুটি ধরণের উপপাদ্য হবে:
যে উপপাদ্যগুলি বলে যে আপনার প্রকারগুলি কার্যকর । কোনও প্রোগ্রামের একটি প্রকার রয়েছে তা জেনে কিছু নিশ্চয়তা বোঝানো উচিত, উদাহরণস্বরূপ যে প্রোগ্রামটি আটকা পড়বে না (এটি একটি সুরক্ষা উপপাদ্য হবে )। উপপাদ্যগুলির অন্য একটি পরিবার প্রকারভেদগুলি মডেলগুলির সাথে সংযুক্ত করবে যাতে আমরা আমাদের প্রোগ্রামগুলি সম্পর্কে জিনিসগুলি প্রমাণ করার জন্য প্রকৃত গণিত ব্যবহার শুরু করতে পারি (সেগুলি অ্যাডিক্যাসি উপপাদ্য এবং আরও অনেকগুলি)। উপরের unityক্যটি খারাপ কারণ এটিতে এর মতো দরকারী উপপাদ্য নেই।
যে উপপাদ্যগুলি বলে যে আপনার প্রকারগুলি সহজ । একটি বেসিক একটি হ'ল এটি নির্ধারণযোগ্য যে প্রদত্ত এক্সপ্রেশনটির একটি প্রদত্ত প্রকার রয়েছে কিনা। আর একটি সরলতার বৈশিষ্ট্য হ'ল এক ধরণের অনুমানের জন্য একটি অ্যালগরিদম দেওয়া। সরলতার বিষয়ে অন্যান্য উপপাদ্যগুলি হ'ল: যে একটি এক্সপ্রেশনটির সর্বাধিক এক প্রকার থাকে, বা একটি এক্সপ্রেশনটির মূল প্রকার থাকে (যেমন, এটি সমস্ত ধরণের মধ্যে "সেরা")।
এটি আরও নির্দিষ্ট করে বলা কঠিন কারণ প্রকারগুলি একটি খুব সাধারণ প্রক্রিয়া। তবে আমি আশা করি আপনি কী জন্য শুটিং করা উচিত তা দেখতে পাবেন see প্রোগ্রামিং ল্যাঙ্গুয়েজ ডিজাইনের বেশিরভাগ দিকের মতো সাফল্যের কোনও পরিমাপ নেই। পরিবর্তে, নকশার সম্ভাবনার জায়গাগুলি রয়েছে এবং গুরুত্বপূর্ণ স্থানটি আপনি কোথায় আছেন বা কোথায় থাকতে চান তা বোঝা।