← नवीनतम पेपर
💻 computer science

Software is infrastructure: failures, successes, costs, and the case for formal verification

यह अध्याय यह तर्क देता है कि चूंकि सॉफ्टवेयर महत्वपूर्ण बुनियादी ढांचे के रूप में कार्य करता है और ऐतिहासिक विफलताओं की भारी लागत खराब गुणवत्ता के गंभीर परिणामों को प्रदर्शित करती है, इसलिए औपचारिक सत्यापन (फॉर्मल वेरिफिकेशन) और प्रोग्राम विश्लेषण को अपनाना आवश्यक है, एक ऐसा रुख जिसे सफल औद्योगिक अनुप्रयोगों द्वारा समर्थित किया गया है।

मूल लेखक: Giovanni Bernardi, Adrian Francalanza, Marco Peressotti, Mohammad Reza Mousavi

प्रकाशित 2026-01-30
📖 5 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Giovanni Bernardi, Adrian Francalanza, Marco Peressotti, Mohammad Reza Mousavi

मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें

मुख्य विचार: सॉफ्टवेयर नया कंक्रीट है

कल्पना कीजिए कि एक ऐसी दुनिया की जहाँ हमारी सड़कें, पुल और बिजली संयंत्र स्टील और कंक्रीट से नहीं, बल्कि अदृश्य कोड से बने हैं। लेखक तर्क देते हैं कि सॉफ्टवेयर आधुनिक समाज का बुनियादी ढांचा (इंफ्रास्ट्रक्चर) बन गया है। जिस तरह एक पुल को बिना गिरे ट्रक का भार सहने की आवश्यकता होती है, उसी तरह हमारे सॉफ्टवेयर को (जो अस्पतालों, बैंकों, विमानों और यहाँ तक कि आपके टोस्टर को भी चलाते हैं) पूरी तरह से काम करने की आवश्यकता है।

यह पेपर एक सरल लेकिन डरावना सवाल पूछता है: यदि एक पुल खराब गणित के साथ बनाया जाता है, तो वह गिर जाता है। यदि सॉफ्टवेयर को खराब गणित के साथ बनाया जाता है, तो क्या होता है? उत्तर है: अरबों डॉलर गायब हो जाते हैं, लोग घायल होते हैं, और कभी-कभी, लोगों की जान चली जाती है।

समस्या: हम रेत पर महल बना रहे हैं

लेखक बताते हैं कि हम सॉफ्टवेयर के साथ भौतिक इंजीनियरिंग की तरह व्यवहार नहीं करते हैं।

  • एक दीवार बनाना: यदि आप एक दीवार बनाते हैं, तो भौतिक विज्ञान (फिजिक्स) उसका परीक्षण करता है। यदि दीवार बहुत कमजोर है, तो पेंट करने से पहले ही गुरुत्वाकर्षण उसे गिरा देगा। आप यह देखने के लिए दीवार को "चला" नहीं सकते कि वह कैसे काम करती है; आप बस उसे बनाते हैं और उम्मीद करते हैं कि गणित सही रहे।
  • सॉफ्टवेयर लिखना: सॉफ्टवेयर केवल टेक्स्ट है। आप किसी 'बग' को "महसूस" नहीं कर सकते। यह देखने के लिए कि क्या यह काम करता है, आपको कोड को चलाना पड़ता है। लेकिन कोड चलाना ऐसा है जैसे यह देखने के लिए कार को खाई में गिरा देना कि पैराशूट खुलता है या नहीं। जब तक आप बग ढूंढ पाते हैं, तब तक दुर्घटना हो चुकी होती है।

पेपर एक मजेदार उदाहरण का उपयोग करता है: यदि आप कंप्यूटर टर्मिनल में rm -rf ~ टाइप करते हैं, तो यह आपके पूरे होम फोल्डर को डिलीट कर देता है। आपको यह जानने के लिए इसे चलाने की आवश्यकता नहीं है कि यह खतरनाक है; आपको बस मैनुअल (गणित) को पढ़ने की आवश्यकता है ताकि यह समझ सकें कि यह क्या करता है। लेकिन जटिल कोड के लिए, केवल मैनुअल पढ़ना पर्याप्त नहीं है।

"खराब गणित" की लागत: एक ट्रिलियन-डॉलर का रिसाव

लेखक पिछले 40 वर्षों में सॉफ्टवेयर विफलताओं की एक "हॉल ऑफ शेम" (बदनामी की सूची) दिखाते हैं ताकि यह दिखाया जा सके कि गलतियाँ कितनी महंगी होती हैं। इन्हें डिजिटल दुनिया के "पुल गिरने" के उदाहरण के रूप में सोचें:

  • थेरैक-25 (स्वास्थ्य सेवा): एक रेडिएशन मशीन ने मरीजों को भारी मात्रा में ओवरडोज दिया क्योंकि कोड ने दो बटन बहुत तेजी से दबाने की अनुमति दी। परिणाम: 6 मौतें।
  • लंदन एम्बुलेंस (आपातकालीन सेवाएं): एक नए डिस्पैच सिस्टम में मेमोरी लीक (जैसे छेद वाला बाल्टी) था। यह पुराने डेटा से भर गया और क्रैश हो गया। परिणाम: एम्बुलेंस मरीजों को नहीं ढूंढ सकी; 20-30 लोग मारे गए।
  • बोइंग 737 MAX (विमानन): एक सॉफ्टवेयर सिस्टम जिसे MCAS कहा जाता है, ने एक दोषपूर्ण सेंसर के आधार पर विमान की नाक (nose) को नीचे की ओर धकेल दिया। परिणाम: दो दुर्घटनाएं, 346 मौतें, और $20 बिलियन की लागत।
  • होराइजन स्कैंडल (बैंकिंग): एक दोषपूर्ण अकाउंटिंग सिस्टम ने हजारों दुकानदारों को बताया कि वे चोरी कर रहे हैं। परिणाम: 900+ लोग गलत तरीके से जेल भेज दिए गए, और इस सिस्टम को ठीक करने में करदाताओं के 1 बिलियन पाउंड से अधिक खर्च हुए।
  • क्राउडस्ट्राइक (ग्लोबल आईटी): एक छोटी सी अपडेट त्रुटि के कारण दुनिया भर के लाखों कंप्यूटर नीले होकर बंद हो गए। परिणाम: वैश्विक अराजकता, जिससे व्यवसायों को अरबों का नुकसान हुआ।

लेखक गणना करते हैं कि खराब सॉफ्टवेयर गुणवत्ता अमेरिकी अर्थव्यवस्था को सालाना $1.56 ट्रिलियन की लागत देती है। यह कई देशों के कुल सकल घरेलू उत्पाद (GDP) से भी अधिक है। यह शुद्ध रूप से उन गलतियों को ठीक करने में बर्बाद किया गया पैसा है जिन्हें रोका जा सकता था।

समाधान: "गणितीय ब्लूप्रिंट"

पेपर का तर्क है कि हमें अनुमान लगाना बंद करना चाहिए और अपने सॉफ्टवेयर के चलने से पहले उसे सिद्ध (prove) करना शुरू करना चाहिए। इसे फॉर्मल वेरिफिकेशन (Formal Verification) कहा जाता है।

उपमा:
कल्पना कीजिए कि आप एक गगनचुंबी इमारत बना रहे हैं।

  • वर्तमान तरीका (परीक्षण/टेस्टिंग): आप 100वीं मंजिल बनाते हैं, फिर 101वीं, फिर 102वीं। आप देखते हैं कि लिफ्ट काम करती है या नहीं। यदि 102वीं मंजिल ढह जाती है, तो आप उसे गिरा देते हैं और फिर से कोशिश करते हैं। यह महंगा और खतरनाक है।
  • फॉर्मल वेरिफिकेशन: कंक्रीट की एक बूंद डालने से पहले, आप उन्नत गणित का उपयोग करके यह सिद्ध करते हैं कि डिजाइन किसी भी भार के तहत नहीं गिर सकता। आप यह सुनिश्चित करने के लिए ब्लूप्रिंट की भौतिकी के नियमों के विरुद्ध जांच करते हैं कि वह एकदम सटीक है।

सॉफ्टवेयर में, इसका अर्थ है यह सिद्ध करने के लिए गणित का उपयोग करना कि कोड बिल्कुल वैसा ही करेगा जैसा उसे करना चाहिए, और उसके अलावा कुछ भी नहीं।

क्या यह फायदेमंद है? हाँ, यह एक सौदा है

आप सोच सकते हैं, "गणित कठिन और महंगा है। क्या यह सार्थक है?" पेपर कहता है हाँ, बिल्कुल

  • **हवा...

अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?

आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।

Digest आज़माएँ →