A Minimal Executable Proof for Multi-Language Contract Traceability
यह शोध पत्र एक न्यूनतम, विखंडनीय निष्पादन योग्य प्रमाण प्रस्तुत करता है जो यह प्रदर्शित करता है कि कैसे एक बहु-भाषा अनुबंध, कार्यान्वयन ग्राफ, ट्रैसेबिलिटी चेन और समीक्षा गेट को विभिन्न भाषाओं में छह "हेलो, वर्ल्ड!" कार्यक्रमों के माध्यम से मान्य किया जा सकता है, जिससे पांच सफल पास परिणाम और टूलिंग की कमी के कारण एक स्किप प्राप्त होता है।
मूल पेपर CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/) के तहत लाइसेंस किया गया है। नीचे दिए गए पेपर की यह व्याख्या AI से तैयार की गई है। इसे लेखकों ने न तो लिखा है, न इसका समर्थन किया है। तकनीकी सटीकता के लिए मूल पेपर देखें। पूरा डिस्क्लेमर पढ़ें
कल्पना कीजिए कि आप एक बहुत ही सख्त अदालत में न्यायाधीश हैं। आपके पास एक खेल के लिए एक एकल, छोटा सा नियम है: "जैसा लिखा गया है, ठीक वैसा ही 'Hello, world!' कहें, बिना किसी अतिरिक्त शोर के, और तुरंत रुक जाएं।"
यह शोध पत्र सॉफ्टवेयर का पूरा कानूनी तंत्र बनाने के बारे में कोई भव्य सिद्धांत नहीं है। इसके बजाय, यह एक जानबूझकर बनाया गया छोटा, आत्मनिर्भर प्रमाण है जो यह दिखाता है कि हम एक ऐसा "अदालत" बना सकते हैं जहाँ हम यह जाँच सकें कि अलग-अलग लोग (अलग-अलग भाषाओं में लिखते हुए) उस एक सरल नियम का पालन कर रहे हैं या नहीं।
यहाँ यह शोध पत्र कैसे विभाजित होता है, रोजमर्रा के उदाहरणों का उपयोग करते हुए:
1. "अनुबंध" (नियम पुस्तिका)
लेखकों ने एक डिजिटल नियम पुस्तिका बनाई जिसे कॉन्ट्रैक्ट (Contract) कहा जाता है।
- नियम: कंप्यूटर प्रोग्राम को ठीक
Hello, world!अक्षर प्रिंट करने चाहिए और उसके बाद एक "न्यू लाइन" (जैसे Enter दबाना) होनी चाहिए। यह "एरर" चैनल पर कुछ भी प्रिंट नहीं कर सकता (चिल्लाना नहीं है), और इसे "0" (एक परफेक्ट स्कोर) के साथ समाप्त होना चाहिए। - उदाहरण: इसे एक बेकिंग प्रतियोगिता की तरह समझें जहाँ एकमात्र नियम यह है: "केक ठीक 10 इंच चौड़ा होना चाहिए।" यदि यह 10.1 इंच है, या यदि यह जल गया है, तो आप हार जाते हैं।
2. "गवाह" (परीक्षक)
नियम का पालन किया गया है या नहीं, यह साबित करने के लिए, शोध पत्र गवाहों (Witnesses) का उपयोग करता है। ये स्वचालित स्क्रिप्ट (छोटे रोबोट) हैं जो काम की जाँच करते हैं।
- मुख्य गवाह: यह छह अलग-अलग भाषाओं (Rust, Go, C, Java, TypeScript, और AWK) में लिखे गए प्रोग्राम के छह विभिन्न संस्करणों को चलाता है।
- परिणाम: उनमें से पाँच ने पूरी तरह से पालन किया। एक (Java) को "SKIP" के रूप में चिह्नित किया गया क्योंकि न्यायाधीश के पास उनके डेस्क पर जाँच करने के लिए सही उपकरण (एक Java कंपाइलर) नहीं था। यह विफलता नहीं थी; परीक्षण बस हो नहीं सका।
- उदाहरण: कल्पना कीजिए कि एक स्वाद-परीक्षक छह अलग-अलग केक चखने की कोशिश कर रहा है। पाँच का स्वाद बिल्कुल सही है। छठा एक ऐसे डिब्बे में है जिसे वह खोल नहीं सकता, इसलिए उसने इसे "खराब" कहने के बजाय "परीक्षण नहीं किया गया" के रूप में चिह्नित किया।
3. "DAG" (वंश वृक्ष)
शोध पत्र एक संरचना का उपयोग करता है जिसे DAG (Directed Acyclic Graph) कहा जाता है।
- अवधारणा: एक वंश वृक्ष (Family Tree) की कल्पना करें। आपके पास "दादा-दादी" (सोर्स कोड फाइलें) हैं, और वे सभी एक "माता-पिता" (सत्यापन चरण) में समाहित होते हैं।
- बिंदु: यह मानचित्र दिखाता है कि किस कोड फ़ाइल से किस परीक्षण परिणाम तक पहुँचा। यह साबित करता है कि परीक्षण केवल जादू से नहीं हुआ; यह विशिष्ट कोड का एक सीधा, पता लगाने योग्य परिणाम था।
4. "रीराइट्स" (जादुई चालें)
शोध पत्र यह भी परीक्षण करता है कि क्या सिस्टम यह पकड़ सकता है कि कोई नियम को "छिपाने" की कोशिश कर रहा है।
- Go की चाल: एक प्रोग्रामर ने "Hello, world!" संदेश को बहुत जटिल, घुमावदार तरीके से लिखा (जैसे कि एक गुप्त कोड लिखना)। शोध पत्र दावा करता है कि सिस्टम अभी भी कोड के "कंकाल" (फंक्शन के नाम) को देख सकता है, भले ही उसका "मांस" (शाब्दिक पाठ) छिपा हुआ हो।
- AWK की चाल: एक अन्य भाषा (AWK) जो उनकी आधिकारिक सूची में नहीं थी जिसे सिस्टम आमतौर पर समझता है। इसलिए, लेखकों ने केवल इसके लिए एक विशेष "फ़ालबैक" चेकलिस्ट बनाई।
- उदाहरण: यह एक जासूस की तरह है जो यह पहचान सकता है कि एक संदिग्ध वेश बदलकर (घुमावदार कोड) आया है, लेकिन फिर भी वह उसकी ऊंचाई और जूते के आकार (कोड संरचना) को पहचान सकता है। उस भाषा के लिए जिसे जासूस नहीं जानता, वे बस एक सरल चेकलिस्ट का उपयोग करते हैं।
5. यह शोध पत्र क्या नहीं है (गैर-दावे)
यह सबसे महत्वपूर्ण भाग है। लेखक बहुत सावधान हैं कि वे क्या नहीं कर रहे हैं:
- यह एक बेंचमार्क नहीं है: वे यह नहीं कह रहे हैं कि उनका सिस्टम सबसे तेज़ या सबसे अच्छा है।
- यह वास्तविक दुनिया के लिए गारंटी नहीं है: वे यह दावा नहीं कर रहे हैं कि यह सिस्टम बड़े बैंक में हर हैकर को पकड़ सकता है या हर बग को ठीक कर सकता है।
- यह "अर्थ" के बारे में नहीं है: वे यह साबित नहीं कर रहे हैं कि दो जटिल प्रोग्राम एक ही अर्थ रखते हैं। वे केवल यह सिद्ध कर रहे हैं कि इस छोटे से उदाहरण के लिए, नियमों का पालन किया गया था।
निष्कर्ष
इस शोध पत्र को एक एकल, पूर्ण ईंट के ब्लूप्रिंट के रूप में देखें।
लेखक अभी गगनचुंबी इमारत बनाने की कोशिश नहीं कर रहे हैं। वे कह रहे हैं: "देखो, हमने एक छोटी सी ईंट बनाई है। हमारे पास इसका एक नक्शा है कि यह कैसे बनी, इसमें उपयोग किए गए उपकरणों की एक सूची है, और एक गवाह है जो पुष्टि करता है कि यह आकार की आवश्यकता को पूरा करती है। यदि आपके पास समान उपकरण हैं, तो आप बिल्कुल वही ईंट बना सकते हैं और वही परिणाम देख सकते हैं।"
लक्ष्य यह दिखाना है कि पारदर्शिता (Transparency) संभव है: आप किसी दावे (हमने नियम का पालन किया) को सीधे उस विशिष्ट कोड और विशिष्ट परीक्षण तक ट्रैक कर सकते हैं जिसने इसे सिद्ध किया।
अपने क्षेत्र के पेपरों की भीड़ में उलझे हुए हैं?
आपके रिसर्च कीवर्ड से मेल खाने वाले सबसे नए और अलग सोच वाले पेपरों का रोज़ाना Digest पाएँ—तकनीकी सारांश के साथ, आपकी भाषा में।