আমরা কি গ্যারান্টি দিতে পারি যে কোনও প্রোগ্রাম কখনও ভুল হবে না?


10

আমাদের এখানে একটি ব্যবস্থা আছে। সম্প্রতি সিস্টেম দ্বারা উত্পন্ন উত্সাহিত প্রতিবেদনের একটি সংখ্যাতে একটি ভুল গণনা রয়েছে। আমাদের অভিজ্ঞতার মধ্য দিয়ে, আমরা কয়েক বছর ধরে এই সিস্টেমে কোনও সমস্যা / ত্রুটি কখনও পাইনি।

কারণ এই ব্যবস্থার লেখক ইতিমধ্যে চলে গিয়েছিলেন, আমরা প্রোগ্রামগুলি খুব কমই খুঁজে পেতে পারি। তবে আমরা ইনপুট ডেটা, সেটিংটি যাচাই করেছি এবং সেগুলি সঠিক।

এখন আমার প্রশ্ন হ'ল কোনও কম্পিউটার প্রোগ্রাম হঠাৎ কোনও যৌক্তিক কারণ ছাড়াই ভুল হয়ে যাবে? যদি আমি সার্ভার মেশিনে স্ল্যাম করি তবে কম্পিউটারটি যে সংখ্যার গণনা করছে তার মধ্যে একটিও অন্য নম্বর হয়ে গণনাটিকে ভুল করবে?

আমি আমার মতামতটি বেশ পাগল বলে একমত, তবে আমি কেবল জানতে চাই, আমরা কীভাবে জানব যে সমস্যাটি প্রোগ্রাম এবং ইনপুট দ্বারা নয়, তবে কিছু অন্যান্য কারণের কারণে ঘটে?

পিএস এই উন্মাদ সিস্টেমটির কোনও লগ নেই।


8
আমার পিসিতে র‌্যাম মডিউলগুলির মধ্যে একটিতে একটি ত্রুটি বিট ছিল, তাই কোনও প্রোগ্রামের যথেষ্ট দুর্ভাগ্য হচ্ছিল যে বিটটি ব্যবহার করার পক্ষে এটি একটি ভুল ফলাফল প্রদান করতে পারে। আপনার মেশিনে মেমস্টেস্ট 86 চালানো কোনও ধরণের সমস্যা বাদ দেওয়ার সহজ উপায় হতে পারে।
ব্যবহারকারী 281377

16
হ্যাঁ, এটি মুছে ফেলে
স্টিভেন এ। লো

6
কিছু হার্ডওয়ারের টুকরোগুলিতে বাগ রয়েছে। সেদিনের চিপমেকারদের কাছে এটি একটি টেস্টামেন্ট যে তারা এত কম। আমি প্রথমে সফটওয়্যারটি সন্দেহ করব।

কোনও প্রোগ্রামের ভুল হওয়ার জন্য সর্বদা যৌক্তিক কারণ থাকে। একটি স্ল্যাম একটি যৌক্তিক কারণ।
mouviciel

2
আপনার কাছে একটি স্ট্যাটিস্টিকাল বোমা, বা দূষিত সংকলক, বা খারাপ র্যাম, ডিস্ক, বা একটি ভাইরাস থাকতে পারে যা আপনার র‌্যামকে লিখতে পারে বা ওএস, বা ওএস বাগ, বা কোনও লাইব্রেরিতে কোনও বাগ, বা বিখ্যাত সংযুক্ত সাজানোর বাগ, বা ...
চাকরী

উত্তর:


8

আমি বলব না!

তত্ত্বগতভাবে উত্তরটি হ'ল না, আমরা কেবল এটির জন্য পরীক্ষা করতে পারি: -

  • কিছু সীমিত পরিবেশের।
  • টাইমস্কেলগুলির কয়েকটি সীমাবদ্ধ।
  • কিছু পরীক্ষার ক্ষেত্রে সীমাবদ্ধ সংখ্যা।

প্রোগ্রামটি তার জীবদ্দশায় যে পরিমাণ পরিবেশ, সময় এবং কেসগুলির মুখোমুখি হতে পারে তার চেয়ে এটি যথেষ্ট কম। এছাড়াও আমাদের ভবিষ্যতের 10,000% মুদ্রাস্ফীতি মোকাবেলা করা উচিত, আপনার প্রোগ্রামটি কি সুপার ডুপার নতুন 31 বিট আর্কিটেকচারের সাথে মোকাবিলা করা উচিত?

তত্ত্বটি এমন অভিজ্ঞতা দ্বারা সমর্থিত যা আমি ব্যক্তিগতভাবে সম্মুখীন হয়েছি: -

  • প্রোগ্রামগুলি ভাঙ্গা যখন কোনও অন্য লোকালে স্থানান্তরিত হয়। "MAY" পরীক্ষা করা হচ্ছে যখন মাসটি "MAI" ছিল।
  • প্রোগ্রামগুলি সংকলকের নতুন সংস্করণে পরীক্ষায় ব্যর্থ হয়েছে, প্রোগ্রামটির একটি বাগের সাথে একত্রে পূর্ববর্তী সংস্করণে একটি বাগ সঠিক ফলাফল প্রকাশ করেছিল।
  • ওএসের একটি নতুন প্রকাশের উপর প্রোগ্রামগুলি ভেঙে যাচ্ছে। সোলারিস ডিরেক্টরিতে প্রবেশের ডিফল্ট সংখ্যা বাড়িয়ে ফটোক () দ্বারা ফিরে আসা স্মার্টলিন্ট সর্বদা ডিরেক্টরিতে প্রথম ফাইলের জন্য শূন্য ফিরে আসে।
  • প্রোগ্রামগুলি ভাঙ্গা কারণ তারা প্রথমবারের মতো ইনপুটগুলির একটি বিশেষ সংমিশ্রণের মুখোমুখি হয়েছিল, যা উভয়ই বৈধ এবং অপ্রত্যাশিত ছিল এবং এটির জন্য কখনও পরীক্ষা করা হত না - আমানতের উপর নেতিবাচক সুদের হার, শূন্যের ওজন আইটেমগুলি প্রেরণ করা হবে, এত কম মূল্যের আইটেম যা ভ্যাট গণনা করা যায় না ইত্যাদি ইত্যাদি

আমি হ্যাঁ, একটি বিধান সহ বলি - আপনার যদি মাল্টি থ্রেডিং থাকে। "রেস কন্ডিশন" শুনেছেন কখনও।
mattnz

6

তত্ত্ব অনুসারে, আপনি যদি অভিন্ন অবস্থা দিয়ে শুরু করেন তবে ফলাফলটি অভিন্ন হবে। বাস্তবে, "সার্ভার আকারের" সরঞ্জামগুলিতে অভিন্ন প্রাথমিক অবস্থার নিশ্চয়তা দেওয়া বেশ অসম্ভব।

অবিচ্ছিন্ন ভেরিয়েবল নিন। এই কোডটি দেখুন:

  short i;

  if(i==-1)
  {
        //do something special
  }
  else
  {
        i=0;
        //do something else
  }

65536 রানে একবার এটি অপ্রত্যাশিত ফলাফল আনবে। এবং আপনি যদি নিশ্চিত না করেন যে প্রতিটি রান করার আগে মেমরি একই অবস্থায় iথাকবে , সম্পূর্ণরূপে এলোমেলো থাকবে।

প্রারম্ভিক রাষ্ট্রের অপ্রত্যাশিত উপাদান অনুসরণ করে ত্রুটিগুলি পপআপ করার জন্য একই রকম শতগুলি উপায় রয়েছে যে কেউ ওভাররাইড করতে ভুলে গিয়েছে, বা সীমান্তের ঘটনাগুলি যা খুব কমই ঘটে থাকে - বহু-থ্রেডযুক্ত পরিবেশে রেস শর্ত, অ্যারে অ্যাক্সেসের বাইরে, দূষিত ফাইল সিস্টেমের ডিস্ক আইও, এবং শীঘ্রই.

আপনি যদি প্রোগ্রামটি বাগ-মুক্ত প্রমাণ করতে পারেন তবে কেবলমাত্র মহাজাগতিক রশ্মিই এটি ভেঙে দিতে পারে। তবে দুটি নেস্টেড লুপের চেয়ে জটিল জটিল কোনও কিছুর শুদ্ধতার প্রমাণ গাণিতিক প্রমাণগুলি সবচেয়ে বড় ব্যবস্থাগুলির (এবং একটি ছোট ভাগ্যের জন্য ব্যয় হয়) ছাড়িয়ে অনেক বেশি, এবং বাকি সমস্তগুলির জন্য আপনি কেবল আশা করতে পারেন।


6

এখন আমার প্রশ্ন হ'ল কোনও কম্পিউটার প্রোগ্রাম হঠাৎ কোনও যৌক্তিক কারণ ছাড়াই ভুল হয়ে যাবে?

আপনার যদি ঠিক একই কম্পিউটিং পরিবেশ থাকে, তবে কোনও প্রোগ্রামকে একটি ইনপুট এক্স দেওয়া সর্বদা একই ফলাফল আর তৈরি করে practice সর্বাধিক সহজ অ্যাপ্লিকেশন আজ একটি অপারেটিং সিস্টেমে চলে এবং একই সাথে মেমরিতে 'লোড' হতে পারে এমন অন্যান্য প্রোগ্রামগুলির সাথে মেমরি ভাগ করে। এই প্রোগ্রামগুলি কোনও প্রদত্ত প্রোগ্রামকে ত্রুটিযুক্ত করে এমনভাবে মেমরিটিকে পরিবর্তন করতে পারে। উদাহরণস্বরূপ 'পয়েন্টার' টাইপের ভেরিয়েবলগুলির সাথে এটি একটি বিখ্যাত সমস্যা। সাধারণত এই ধরনের ত্রুটিগুলি অস্বাভাবিক সিস্টেমের আচরণের কারণ এবং ভুল গণনার ফলাফলের কারণ হয় না।

আপনার ক্ষেত্রে, আমি ধরে নিই যে সমস্যাটি (এবং সাধারণত) আমি উপরে বর্ণিত হিসাবেটি হতে পারে না। সমস্যা হতে পারে:

  • প্রোগ্রামটি ফলাফল গণনা করার জন্য প্রোগ্রামটি ভুল ডেটাটাইপ (গুলি) ব্যবহার করেছিল, বিশেষ মানগুলি ব্যবহার করা হলে সেই ত্রুটিটি কেবল তখনই প্রকাশ পায়।
  • প্রোগ্রাম গণনায় একটি ত্রুটির মুখোমুখি হয়েছিল (লজিকাল অবস্থার কারণে) তবে ত্রুটিটি পরিচালনা করেনি এবং ফলাফলটি এখনও প্রকাশ করে। (যেমন ফ্লোট এবং পূর্ণসংখ্যার গাণিতিক মিশ্রণ)
  • ব্যবসায়ের নিয়ম বা যৌক্তিক শর্তটি সঠিকভাবে কোড করা হয়নি, প্রবেশ করা ডেটা এই শর্তটি উপস্থাপন করে তবে ভুল গণনা ব্যবহৃত হয়েছিল। (যেমন প্রথমে অ্যাকাউন্টে পরিমাণ পরীক্ষা করার আগে অ্যাকাউন্টের পরিমাণ থেকে বিয়োগ পরিমাণ)।
  • সূত্রগুলি ব্যবহার করে যা কেবলমাত্র নির্দিষ্ট সীমার ক্ষেত্রে প্রযোজ্য তবে ডেটাতে বিভিন্ন পরিসীমা থাকে। (যেমন মানগুলির একটি ব্যাপ্তির উপর ভিত্তি করে সুদের হার গণনা করা)

উপরের এবং অন্যান্য অনেক কারণে সফ্টওয়্যার লোকেরা সঠিক সফ্টওয়্যার তৈরির প্রয়াসে এত বেশি সংস্থান ব্যয় করে, তবে, সফ্টওয়্যার ত্রুটিগুলি এখনও ঘটে, তবে ত্রুটিগুলি 'যৌক্তিক' এবং এর একটি কারণ রয়েছে, এটি কেবল কারণটি সুস্পষ্ট নয় কিছু ভাল গবেষণা ছাড়া। সুতরাং, সাধারণভাবে পরীক্ষিত সফ্টওয়্যারটি অনুমানযোগ্য এবং এলোমেলো ফলাফল দেয় না। কিছু প্রোগ্রামের জটিলতা এবং অন্যান্য কারণগুলির কারণে এমনকি পরীক্ষিত প্রোগ্রামগুলিও ভুল হতে পারে তবে যখন এটি ঘটে তখন ত্রুটিগুলি যৌক্তিক কারণে হয়।

যদি আমি সার্ভার মেশিনে স্ল্যাম করি তবে কম্পিউটারটি যে সংখ্যার গণনা করছে তার মধ্যে একটিও অন্য নম্বর হয়ে গণনাটিকে ভুল করবে?

উত্তরটি সাধারণভাবে নয়, সফ্টওয়্যার সেই অর্থে ভঙ্গুর নয়।

আপনি যা করতে পারেন ত্রুটিটি ঘটছে সেই ক্ষেত্রে বিচ্ছিন্ন হওয়া, ত্রুটির কারণ হয়ে থাকা এই ডেটার সেটগুলির মধ্যে সাদৃশ্য খুঁজে বের করুন এবং থিসিস সেটগুলি এবং সঠিক ফলাফলের অন্যান্য সেটগুলির মধ্যে পার্থক্য খুঁজুন। আপনি সমস্যার কারণে মানগুলির নির্দিষ্ট সেটটি সনাক্ত করতে সক্ষম হতে পারেন। উদাহরণস্বরূপ আপনি দেখতে পাবেন যে যতবার ভেরিয়েবলের নেতিবাচক মান থাকে, ফলাফলটি ভুল।

মেমরি দুর্নীতির ত্রুটি সম্পর্কে আপডেট তথ্য: দয়া করে মেমরি দুর্নীতি দেখুন


নিজেকে এই জাতীয় সমস্যার উত্স হিসাবে যৌগিক গোল করার ত্রুটিগুলি সম্পর্কে ভাবছিলাম। ইনপুটগুলির ঠিক মতো (বা ভুল) সংমিশ্রণটি তাদের সমস্তকে সম্মিলিতভাবে শেষ করে, ফলাফলটি যা হওয়া উচিত তা থেকে দূরে থাকে, যতক্ষণ না তারা দীর্ঘ সময় ধরে না দেখাতে পারে।
7:56 এ জ্বলছে

3
আধুনিক অপারেটিং সিস্টেমগুলি প্রোগ্রামগুলিকে অন্যান্য প্রোগ্রামগুলির সাথে সম্পর্কিত মেমরিটি সংশোধন করার (বা এমনকি পড়তে) অনুমতি দেয় না।
প্যাটার টারিক

হ্যাঁ, আধুনিক ওএসগুলি সেই প্রকৃতির কোনও কিছুর অনুমতি দেয় না।
ডেডএমজি

"চ আপনার ঠিক একই কম্পিউটিং পরিবেশ রয়েছে, তারপরে কোনও প্রোগ্রামে এক্সপুট দেওয়া সর্বদা একই ফলাফল তৈরি করবে আর" আমি নিশ্চিত নই যে এটি সত্য। যদি পূর্বের কিছু দুর্নীতির কারণে মেমরির উপাদানগুলির মধ্যে একটি এসআর ল্যাচগুলি 2 টি পায় তবে কী হবে? en.wikedia.org/wiki/…
ইয়াম মার্কোভিচ

@ ডেডজিএম এবং প্যাটার ত্রাক আপনার প্রতিক্রিয়ার জন্য ধন্যবাদ, আমি বার্তাটি সম্পাদনা করেছি এবং একটি পৃষ্ঠাতে একটি সূত্র যুক্ত করেছি যা বর্ণনা করে যে সমস্যাটি এখনও ঘটতে পারে (আমি টেক্সটে উল্লিখিত হিসাবে জানি যে এটি অত্যন্ত অসম্ভব)।
NoChance

5

আপনি কি গ্যারান্টি দিতে পারবেন যে কোনও প্রোগ্রামের কোনও বাগ নেই এবং কখনই ভুল হবে না? না, দুর্ভাগ্যবশত না.

আপনি কি প্রদর্শন করতে পারবেন যে কোনও প্রোগ্রামের যথেষ্ট পরিমাণে বাগ রয়েছে যা তাদের সন্ধান এবং ফিক্সিংয়ের ব্যয়টি সেই ক্রিয়া থেকে প্রাপ্ত উপকারের চেয়ে বেশি? এটি আপনার কাছে ইতিমধ্যে যেমন আছে তেমন শোনায়।

একটি পুরানো পরিসংখ্যান সর্বাধিক প্যারাফ্রেস করতে, সমস্ত প্রোগ্রাম ভুল, কিন্তু কিছু প্রোগ্রাম দরকারী।


1
"সমস্ত প্রোগ্রামগুলি ভুল, তবে কিছু প্রোগ্রাম দরকারী"
সিভিএন

আমি মনে করি না যে এই উত্তরটি আসলে প্রাসঙ্গিক। দেখে মনে হচ্ছে তিনি পরিবেশগত ত্রুটির কারণে কোনও সঠিক প্রোগ্রাম কখনও কখনও অপ্রত্যাশিতভাবে পরিচালনা করতে পারে কিনা তা জিজ্ঞাসা করছেন ।
ইয়াম মার্কোভিচ

আমার পুরো কথাটি হ'ল কোনও প্রোগ্রাম কখনও "সঠিক" হয় না। সবকিছু সর্বদা অগ্রগতিতে কাজ এবং এটি ভুল না হওয়া পর্যন্ত কেবল সঠিক। কম্পিউটার বিজ্ঞান সর্বোপরি একটি বিজ্ঞান । আপনি কী বলছেন তা আমি দেখতে পাচ্ছি এবং তার প্রশ্নের কেন্দ্রবিন্দুতে এটি আরও বেশি হতে পারে। যাইহোক, আমি মনে করি এটি আমার উত্তরটিকে এত কম সংখ্যার চেয়ে আরও প্রাসঙ্গিক করে তোলে।
জন এন

@ হাল্লাঞ্জিল: আমি বিশ্বাস করি যে আমি সফলভাবে সঠিক লিখেছি "হ্যালো, ওয়ার্ল্ড!" প্রোগ্রাম এবং মত। আমি এমনকি সঠিক দরকারী প্রোগ্রাম লিখেছি (যদিও বড় না)।
ডেভিড থর্নলি

2

আমি বলতে আনত করছি কোন , আপনি প্রমাণ করতে পারেন না যে একটি প্রোগ্রাম হবে না ভুল হয়ে যেতে পারে বা একটি ভুল ফলাফল প্রদান, এমনকি যদি আপনি নিখুঁত ইনপুট অধিগ্রহণ করতে পারেন।

রাকু সঠিকতার আনুষ্ঠানিক প্রমাণ উল্লেখ করেছিলেন। এটি বিবেচনা করার একটি বিষয়, তবে আমি যদি পুরোপুরি ভুল না করি তবে এখনও এটি একটি নিখুঁত সম্পাদনের পরিবেশ ধরে নিতে হবে। সুতরাং, কিছু সময় এবং প্রচেষ্টার সাথে, আপনি সম্ভবত প্রমাণ করতে পারেন যে প্রোগ্রামটি সঠিক , তবে এটি অগত্যা প্রমাণ করে না যে এটি সর্বদা সঠিক ফলাফল প্রদান করবে এমনকি সঠিক ইনপুটও দেওয়া হবে given মৃত্যুদণ্ড কার্যকর পরিবেশ গুরুত্বপূর্ণ। এবং এই ধারণাটি থেকে আমি সতর্ক থাকব যে ইনপুটটিও সর্বদা নিখুঁত is

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


1

বেশিরভাগ (স্ট্যান্ডার্ড) কম্পিউটিং হ'ল ডিস্ট্রিমেন্টিক, আমি ভাবি।

যদি সম্ভব হয় তবে এটির জন্য 1000 বা 10000 ইত্যাদির ব্যাচ, একই ইনপুট ডেটা সহ পুনরাবৃত্তিগুলি সেট আপ করুন এবং ফলাফলগুলি একই ফলাফলটি উপস্থিত হবে কিনা তা যাচাই করুন।

নিশ্চিত হয়ে নিন যে গণনার মধ্যে বর্তমান মানগুলি যে কোনও জায়গায় অতিরিক্ত-বা ডুবে যাওয়ার প্রবণতা সৃষ্টি করবে (যদি এটি কোনও পুরানো সিস্টেম হয় তবে এটি দীর্ঘকাল ব্যবহারের উদ্দেশ্যে নাও থাকতে পারে)।

Y2K11 কেউ?


এন পুনরাবৃত্তি করতে এবং ফলাফল যাচাই করা সঠিকতা প্রমাণ করে না। সর্বোপরি, এটি নমুনা সেটের মধ্যে ত্রুটির অনুপস্থিতি প্রমাণ করে এবং এমনকি এটি ধরে নেওয়া হয় যে আপনার পরীক্ষার কেস (এবং এটি প্রয়োগের পাশাপাশি এর কার্যকরকরণ) একেবারে সঠিক। টেস্টিংটি খুব কার্যকর, যদিও এটি ওপির উদ্বেগের সমাধান করে না।
একটি সিভিএন

@ মিশেল সম্ভবত আমার স্পষ্ট করা উচিত, আমি এই পদ্ধতির সাথে কিছু প্রমাণ করার চেষ্টা করার পরামর্শ দিচ্ছি না, তবে যদি ত্রুটিটি আবার দেখানো না করে আরও বেশি পুনরুক্তি করা হয় তবে আমি সূর্যস্পটগুলি চিন্তা করতাম এবং পূর্ণসংখ্যার ওভারফ্লো না হয়ে থাকতাম। এটি এখনও আপনাকে চেয়ে বেশি অন্তর্দৃষ্টি দেয়, আইএমএইচও।
jonsca

1

আপনি যদি মেশিনের প্রতিটি বিট এবং সার্কিট্রির মধ্য দিয়ে প্রবাহিত প্রতিটি বিট বৈদ্যুতিন প্রবণতা নিয়ন্ত্রণ করতে না পারেন তবে আপনি নিশ্চিতভাবে গ্যারান্টি দিতে পারবেন না যে আপনার প্রোগ্রামের সাথে কোনও কিছু ভুল হবে না। মেমোরি মডিউলগুলি ব্যর্থ হয়, সিপিইউগুলি তীব্র গরম করতে এবং ত্রুটিগুলি প্রবর্তন করতে পারে, হার্ড ড্রাইভগুলি ডেটা স্ক্র্যাম্ব করতে পারে এবং পাওয়ার সাপ্লাই সিস্টেমে শব্দের প্রবর্তন করতে পারে। হার্ডওয়্যারটি যত বেশি ব্যয়বহুল হবে এবং হার্ডওয়্যারটি তত বেশি রিন্ডান্ট হবে, এই বিষয়গুলির সম্ভাবনা তত কম হবে তবে কোনও কোনও সময় হার্ডওয়্যার ব্যর্থ হতে পারে।

তারপরে আপনার কাছে অপারেটিং সিস্টেম রয়েছে, এমন বাগগুলি সহ যেগুলি সবচেয়ে বেশি তীব্রভাবে কল্পনা করতে পারে তার অর্থ কল্পনাযোগ্য। সংকলকগুলির মধ্যে কেবল আপনার মূল কোডটি কঠোরভাবে ট্রেস বাগগুলিতে পরিণত করার জন্য অপেক্ষা করা অস্পষ্ট বাগ থাকতে পারে। এটি সেখানে একটি জঙ্গল এবং আপনার দুর্বল সফ্টওয়্যার এই সমস্তগুলির জন্য ঝুঁকিপূর্ণ। সামলে!

এবং আমার অভিজ্ঞতা হিসাবে, প্রায়শই না করা যায় না, যখনই কোনও গণনায় কোনও বাগ থাকে, অপরাধীকে সন্ধানের জন্য আমাদের কখনই প্রায় খনন করতে হবে না। সাধারনত কর্পোরেট বিশ্বে আমি দেখেছি এমন প্রায় সমস্ত বাগ সহজেই সঠিক ডিবাগিং সরঞ্জাম এবং কিছু কনুই-গ্রীস সহ সহজেই পাওয়া যায়।

অন্য কথায়, হার্ডওয়্যার এবং ওএস নিখুঁত নাও থাকতে পারে, তবে আপনাকে সম্ভবত সেই স্তরের বিশদ নিয়ে কখনই চিন্তা করতে হবে না। কেবল সেই ভাষাটি আবিষ্কার করুন যিনি ভাষা জানেন এবং তিনি কোনও ডিবাগারের সাথে সজ্জিত এবং খনন করুন।

"সরল ব্যাখ্যা হ'ল, অন্যান্য জিনিস সমান হয়ে যায়, সাধারণত জটিলগুলির চেয়ে ভাল" " - ওকামের রেজার সংক্ষিপ্তকরণ।


0

হ্যাঁ, একটি সিস্টেমকে আঘাত করা বাঁকতে এবং / অথবা অস্থায়ী ওপেন-সার্কিট (বা সম্ভবত শর্ট সার্কিট, যদিও এটি সম্ভবত কম সম্ভাব্য) হওয়ার কারণ হিসাবে যথেষ্ট অংশগুলি সরিয়ে নিতে পারে।


0

আমার মালিকানাধীন প্রথম কম্পিউটারটি 256 বাইটের মেমরির সাথে একটি অল্টায়ার 8080 ছিল। ইনপুটটি কনসোল স্যুইচ থেকে ছিল এবং আউটপুটটি কয়েকটি জ্বলজ্বলে আলো থেকে আসে। আপনি কসমিক রে এবং হার্ডওয়্যার ব্যর্থতা নামঞ্জুর পারেন, আমি বিশ্বাস করি আমি প্রমাণ করতে পারে যে কিছু প্রোগ্রাম আমি এটা উপর দৌড়ে সবসময় একই ফল হবে।

তারপর থেকে, না।


0

পরীক্ষাগুলি উপস্থিতি দেখায়, বাগের অনুপস্থিতি নয় (এডসগার ডাব্লু ডিজকস্ট্রা)

যদি আপনি পরীক্ষার মাধ্যমে আপনার প্রোগ্রামটি সঠিকভাবে কাজ করে তা প্রমাণ করার চেষ্টা করছেন, এটি কার্যকর হবে না।

যাইহোক, তাত্ত্বিক কম্পিউটার বিজ্ঞানের এমন কিছু পদ্ধতি রয়েছে যেখানে আপনি নিজের লেখা সফ্টওয়্যারটির একটি আনুষ্ঠানিক প্রমাণ তৈরি করেন। আপনার সিস্টেমের জটিলতার উপর নির্ভর করে যদিও এটি একটি ক্লান্তিকর প্রক্রিয়া হতে পারে। যদি আপনার সিস্টেমটি কমান্ডের একটি সীমাবদ্ধ সেটটিতে কাজ করে তবে আপনি এই পদ্ধতির সাথে সফল হতে পারেন।


প্রশ্ন পড়েছেন?
উইনস্টন ইওয়ার্ট

আমি করেছি এবং আমি বলছি যে কোনও প্রোগ্রাম কখনও ভুল হতে না পারে তার গ্যারান্টি দেওয়ার জন্য তিনি পরীক্ষাগুলি ব্যবহার করতে পারবেন না। এটাই তার প্রশ্নের শিরোনাম বলে, তাই না?
রাকু

হ্যাঁ, শিরোনামটি বলে মনে হচ্ছে। শরীর পরিষ্কারভাবে না।
উইনস্টন ইওয়ার্ট

0

হার্ডওয়্যার এবং সফ্টওয়্যার পরিবেশ ক্রমাগত প্রবাহিত অবস্থায় রয়েছে। চলন্ত যন্ত্রাংশ, বিদ্যুৎ, তাপমাত্রা, ধুলো এবং ওএস কোড পরিবর্তনগুলি উদাহরণ examples

সুতরাং আমি মনে করি না যে এটি এমনকি সম্ভাব্য বা প্রত্যাশিত যে কোনও কম্পিউটার সফ্টওয়্যার প্রোগ্রাম সর্বদা একই আচরণ করবে কারণ পরিবেশ সর্বদা পরিবর্তিত হয়।

সফ্টওয়্যারটি প্রত্যাশার মতো দীর্ঘ সময়ের জন্য চলতে পারে, তবে শেষ পর্যন্ত হয় হোস্ট ওএস সফ্টওয়্যারটির একটি সামান্য পরিবর্তন পরিবর্তিত হবে যা প্রোগ্রামটিতে প্রশ্নে প্রভাব ফেলবে বা হার্ডওয়্যারটির মূল্য হবে।

আমি বর্তমান সময়ের কম্পিউটারগুলির কথা বলছি।


0

এখন আমার প্রশ্ন হ'ল কোনও কম্পিউটার প্রোগ্রাম হঠাৎ কোনও যৌক্তিক কারণ ছাড়াই ভুল হয়ে যাবে? যদি আমি সার্ভার মেশিনে স্ল্যাম করি তবে কম্পিউটারটি যে সংখ্যার গণনা করছে তার মধ্যে একটিও অন্য নম্বর হয়ে গণনাটিকে ভুল করবে?

এই প্রশ্নের উত্তর অজান্তে। আমরা যে মহাবিশ্বের মধ্যে বাস করি তা সত্যই প্রমাণ করা অসম্ভব। পরিবর্তে আমরা অনুমান করি এবং প্রমাণ করি যে যদি অনুমানগুলি ধরে থাকে তবে কিছু জটিল সম্পত্তিও ধারণ করবে। এটিই আনুষ্ঠানিকভাবে যাচাই করা প্রোগ্রামগুলির গ্যারান্টি দেয়। বেশিরভাগ প্রোগ্রামগুলি আনুষ্ঠানিকভাবে যাচাই করা হয় না, তারা পরিবর্তে পরীক্ষা সরবরাহ করে আত্মবিশ্বাস বাড়ানোর চেষ্টা করে। এই পরীক্ষাগুলি আপনাকে আশ্বাস দেয় যে পরীক্ষাগুলি তাদের যেভাবে নকশাকৃত হয়েছে তা করেছে এবং আপনি যে অনুমানগুলি ধরে রেখেছেন, আপনি যে প্রোগ্রামটি ব্যবহার করছেন তা কমপক্ষে কিছু সময় কাজ করবে।


-1

ব্যর্থ র‌্যামের কারণে সমস্যাটি সবেই সম্ভব, তবে এটি তুলনামূলকভাবে (খুব) অসম্ভব। একটি মেমরি পরীক্ষা চালান, তবে কোডের মাধ্যমে দেখার জন্য প্রস্তুত হন।


অবনতিকারীদের - আমি এটি ঘটতে দেখেছি। একদা.
জেমস ম্যাকলিউড
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.