তবে আমি কী ভাবছিলাম যে কম্পিউটারটি যদি শূন্য দ্বারা ভাগ করার চেষ্টা করে, বা এটি কেবল "সুরক্ষায় অন্তর্নির্মিত" থাকে, যাতে এটি 0 দেখায় "0/0" এটি গণনা করার চেষ্টা করার আগেই একটি ত্রুটি ফিরে আসে?
যেহেতু x/0
কোনও বুদ্ধি, সময়কাল নেই, কম্পিউটারগুলি সর্বদা শূন্য দ্বারা বিভাগের জন্য চেক করা উচিত। এখানে একটি সমস্যা রয়েছে: প্রোগ্রামাররা (a+b)/c
এই গণনাটি এমনকি অর্থবোধ করে কিনা তা পরীক্ষা করে দেখার জন্য বিরক্তি ছাড়াই গণনা করতে চান । সিপিইউ + সংখ্যা টাইপ + অপারেটিং সিস্টেম + ভাষা দ্বারা শূন্য দ্বারা বিভাজনের নীচে-হুড প্রতিক্রিয়া হ'ল হয় কঠোর কিছু করা (উদাহরণস্বরূপ, প্রোগ্রামটি ক্র্যাশ করা) বা অত্যধিক সৌম্যর কিছু করা (যেমন, একটি মান তৈরি করা যা কোনও মান দেয় না বুদ্ধি যেমন আইইইই ভাসমান পয়েন্ট NaN
, একটি সংখ্যা যা "নম্বরে নয়")।
একটি সাধারণ সেটিং-এ, একজন প্রোগ্রামার (a+b)/c
জ্ঞান লাভ করে কিনা তা আশা করা যায় । এই প্রসঙ্গে, শূন্য দ্বারা বিভাগের জন্য চেক করার কোনও কারণ নেই। যদি শূন্য দ্বারা বিভাজন ঘটে, এবং যদি মেশিন ল্যাঙ্গুয়েজ + বাস্তবায়ন ভাষা + ডেটা টাইপ + অপারেটিং সিস্টেমের প্রতিক্রিয়া এটি প্রোগ্রামটিকে ক্র্যাশ করে তোলে, ঠিক আছে। যদি প্রতিক্রিয়াটি এমন কোনও মান তৈরি করে যা শেষ পর্যন্ত প্রোগ্রামের প্রতিটি সংখ্যা দূষিত করতে পারে তবে তা ঠিক আছে।
উচ্চ নির্ভরযোগ্যতা কম্পিউটিংয়ের জগতে "কঠোর কিছু" বা "অত্যধিক সৌম্য" নয় সঠিক জিনিস do এই ডিফল্ট প্রতিক্রিয়াগুলি হয়ত কোনও রোগীকে মেরে ফেলবে, একজন বিমান দুর্ঘটনা করতে পারে বা বোমা ফাটিয়ে ভুল জায়গায় ফেলতে পারে। উচ্চ নির্ভরযোগ্যতার পরিবেশে, একজন প্রোগ্রামার যিনি লেখেন (a+b)/c
তাকে কোড পর্যালোচনা চলাকালীন বা আধুনিক সময়ে, সম্ভবত একটি সরঞ্জাম দ্বারা মৃত্যুর কাছে নিয়ে যাওয়া হবে যা ভার্বোটেন নির্মাণের জন্য পরীক্ষা করে। এই পরিবেশে, সেই প্রোগ্রামারটির পরিবর্তে কিছু কিছু লেখার উচিত ছিল div(add(a,b),c)
(এবং সম্ভবত ত্রুটির স্থিতির জন্য কিছু পরীক্ষা করা)। ফণা নীচে, div
(এবং এছাড়াও add
) ফাংশন / ম্যাক্রোগুলি বিভাগের বিরুদ্ধে শূন্য দ্বারা রক্ষা করে (বা ক্ষেত্রে প্রবাহিত add
)। এই সুরক্ষাটি কী কার্যকর করে তা হ'ল অত্যন্ত কার্যকর specific