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

AdaTrans: Automated C to Rust Transformation via Error-Adaptive Repair

AdaTrans एक स्वचालित फ्रेमवर्क है जो रणनीति-संचालित रिट्रीवल (strategy-driven retrieval), त्रुटि-अनुकूलनशील ट्रांसफॉर्मेशन (error-adaptive transformation) और बहु-चरणीय सत्यापन (multi-stage validation) का लाभ उठाकर C कोड को सुरक्षित, संकलनीय (compilable) Rust में सफलतापूर्वक परिवर्तित करता है, जिससे अनसेफ कंस्ट्रक्ट्स (unsafe constructs) को न्यूनतम करते हुए उच्च पास दर प्राप्त की जाती है।

मूल लेखक: Xiaofan Liu, Zecan Li, Zhuang Zhao, Ziqi Shuai, Yanming Yang, Qi Xin, Jifeng Xuan

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

मूल लेखक: Xiaofan Liu, Zecan Li, Zhuang Zhao, Ziqi Shuai, Yanming Yang, Qi Xin, Jifeng Xuan

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

यहाँ AdaTrans पेपर का विवरण दिया गया है, जिसे रोज़मर्रा की भाषा में रचनात्मक उपमाओं (analogies) का उपयोग करके अनुवादित किया गया है।

बड़ी तस्वीर: एक खतरनाक भाषा को एक सुरक्षित भाषा में बदलना

कल्पना कीजिए कि आपके पास C में लिखी पुरानी किताबों का एक विशाल पुस्तकालय है, जो एक ऐसी प्रोग्रामिंग भाषा है जो अविश्वसनीय रूप से तेज़ और शक्तिशाली है लेकिन साथ ही कुख्यात रूप से खतरनाक भी है। C में, लेखक (प्रोग्रामर) ही उस इमारत को सुरक्षित रखने के लिए एकमात्र रूप से जिम्मेदार होता है। यदि वे कोई दरवाज़ा बंद करना भूल जाते हैं (मेमोरी खाली करना/free up memory) या कोई खिड़की खुली छोड़ देते हैं (dangling pointer), तो पूरा घर जल सकता है (क्रैश होना या हैक होना)।

अब, कल्पना कीजिए कि आप इन सभी किताबों को Rust से बनी एक नई इमारत में ले जाना चाहते हैं। Rust एक आधुनिक भाषा है जो एक बहुत ही सख्त बिल्डिंग इंस्पेक्टर (भवन निरीक्षक) की तरह काम करती है। यह आपको तब तक किताब लिखने नहीं देगी जब तक कि आप यह साबित न कर दें कि हर दरवाज़ा लॉक है और हर खिड़की सुरक्षित है। यदि आप कोई खतरनाक आदत चुराने की कोशिश करते हैं, तो इंस्पेक्टर आपके चेहरे पर दरवाज़ा पटक देता है और कहता है, "नहीं, इसकी अनुमति नहीं है।"

समस्या:
दशकों से, C से Rust में जाना एक बुरा सपना रहा है।

  1. मैनुअल श्रम: इसे हाथ से करने में बहुत समय लगता है।
  2. पुराने टूल्स: स्वचालित टूल्स मौजूद हैं, लेकिन वे अक्सर धोखाधड़ी करते हैं। वे कोड तो लिखते हैं लेकिन खतरनाक हिस्सों को "unsafe" संकेतों के पीछे छिपा देते हैं, जो प्रभावी रूप से बिल्डिंग इंस्पेक्टर को नज़रअंदाज़ करने जैसा है।
  3. AI संघर्ष करता है: नई आर्टिफिशियल इंटेलिजेंस (LLMs) कोड लिख सकती है, लेकिन वे उन प्रतिभाशाली लेखकों की तरह हैं जो Rust के सख्त बिल्डिंग कोड को नहीं समझते। वे सुंदर कहानियाँ लिखते हैं जिन्हें इंस्पेक्टर सुरक्षा उल्लंघन के कारण तुरंत खारिज कर देता है।

समाधान: AdaTrans
लेखकों ने AdaTrans बनाया, एक स्मार्ट सिस्टम जो केवल अनुमान नहीं लगाता; यह अपनी गलतियों से सीखता है ताकि C कोड को सुरक्षित Rust कोड में अनुवादित किया जा सके। इसे एक मास्टर आर्किटेक्ट और इंजीनियरों की एक टीम के रूप में सोचें जो एक लूप में मिलकर काम कर रहे हैं।


AdaTrans कैसे काम करता है: तीन-चरणीय नृत्य (Three-Step Dance)

यह सिस्टम कोशिश → जाँच → सुधार (Try → Check → Fix) के निरंतर चक्र पर काम करता है। यहाँ बताया गया है कि यह C कोड को सुरक्षित Rust कोड में कैसे संभालता है:

1. "बहु-चरणीय निरीक्षण" (चरण 1)

जब AI किसी C कोड को अनुवादित करने की कोशिश करता है, तो AdaTrans तुरंत इसे दो परीक्षणों से गुज़ारता है:

  • सिंटैक्स चेक (Syntax Check): क्या कोड वैध Rust जैसा दिखता है? (जैसे, सेमीकोलन गायब होना)।
  • सुरक्षा और तर्क चेक (Safety & Logic Check): क्या यह Rust के सख्त सुरक्षा नियमों को तोड़े बिना कंपाइल होता है? और क्या यह वास्तव में वही करता है जो मूल C कोड ने किया था?
  • परिणाम: यदि यह विफल हो जाता है, तो सिस्टम केवल "Error" नहीं कहता। यह त्रुटि को वर्गीकृत करता है। क्या यह एक टाइपो (लिखने की गलती) है? एक सुरक्षा उल्लंघन है? या तर्क (logic) बस गलत है?

2. "विशेषज्ञ लाइब्रेरियन" (चरण 2: रणनीति-संचालित RAG)

यही इस ऑपरेशन का मस्तिष्क है। AI को केवल कच्चा एरर मैसेज दिखाने के बजाय (जो अक्सर भ्रमित करने वाला होता है), AdaTrans एक विशेषज्ञ लाइब्रेरियन की तरह कार्य करता है।

  • यदि त्रुटि एक टाइपो (Syntax) है, तो लाइब्रेरियन AI को एक "ग्रामर फिक्स" चीट शीट थमा देता है।
  • यदि त्रुटि सुरक्षा (Ownership) के बारे में है, तो लाइब्रेरियन AI को एक "Rust सुरक्षा मैनुअल" देता है जिसमें मेमोरी को सुरक्षित रूप से संभालने के विशिष्ट उदाहरण दिए गए हैं।
  • यदि त्रुटि तर्क (Logic) के बारे में है (कोड चलता है लेकिन गलत उत्तर देता है), तो लाइब्रेरियन AI को पूरे एल्गोरिदम पर फिर से विचार करने के लिए एक "क्रिएटिव थिंकिंग" प्रॉम्प्ट देता है।

उपमा: कल्पना कीजिए कि आप एक कार ठीक करने की कोशिश कर रहे हैं।

  • यदि टायर पंचर है, तो आप मैकेनिक को इंजन को फिर से बनाने के लिए नहीं बुलाते; आप बस टायर पैच किट लेते हैं।
  • यदि इंजन अजीब आवाज़ कर रहा है, तो आप केवल एक बोल्ट को कसते नहीं हैं; आपको एक गहरे डायग्नोस्टिक की आवश्यकता है।
    AdaTrans यह सुनिश्चित करता है कि AI को विशिष्ट समस्या के लिए सही टूल मिले।

3. "अनुकूली तापमान" (चरण 3: ESTS)

यही असली सफलता का मंत्र है। जब AI कोड को ठीक करने की कोशिश करता है, तो उसे यह तय करना होता है कि उसे कितना "रचनात्मक" या "सावधान" होना है। AdaTrans इस "तापमान" (temperature) को नियंत्रित करके इसे संचालित करता है:

  • कम तापमान (सावधान): साधारण टाइपो के लिए, AI को बहुत सटीक होने और नियमों का पालन करने के लिए कहा जाता है। कोई भी जंगली अंदाज़ा नहीं।
  • मध्यम तापमान (संतुलित): सुरक्षा त्रुटियों के लिए, AI को मेमोरी को व्यवस्थित करने के कई अलग-अलग तरीकों को खोजने के लिए कहा जाता है, लेकिन नियमों के भीतर रहना होता है।
  • उच्च तापमान (रचनात्मक): यदि कोड तार्किक रूप से गलत है (जैसे, गणित गलत है), तो AI को 'वाइल्ड' होने और पूरी तरह से नए स्ट्रक्चर आज़माने के लिए कहा जाता है। उसे सही समाधान खोजने के लिए अपने वर्तमान सोचने के पैटर्न से बाहर निकलना होगा।

"फँस जाने वाला" डिटेक्टर (Stuck Detector):
यदि AI बार-बार एक ही गलती करता रहता है (जैसे अपनी ही पूंछ का पीछा करने वाला कुत्ता), तो AdaTrans इस "ठहराव" (stagnation) को पहचान लेता है। यह एक RESET बटन दबाता है, वर्तमान प्रयास को हटा देता है, और मूल C कोड से एक नई शुरुआत करता है। यह AI को एक मृत अंत (dead end) पर समय बर्बाद करने से रोकता है।


परिणाम: क्या यह काम कर गया?

लेखकों ने इसका परीक्षण 104 विभिन्न प्रोग्रामिंग पहेलियों पर किया (LeetCode प्रतियोगिताओं से, जिन्हें AI ने पहले नहीं देखा था)।

  • सफलता दर: AdaTrans ने लगभग 81% समस्याओं को Rust कोड में सफलतापूर्वक अनुवादित किया जो सुरक्षित (कोई खतरनाक "unsafe" ब्लॉक नहीं) और सही (सभी परीक्षणों में पास) दोनों थे।
  • तुलना:
    • पुराना AI (Zero-shot): इस विशेष सिस्टम के बिना, AI पहली कोशिश में केवल 25% सही होता था। भले ही आप इसे 100 बार बेतरतीब ढंग से कोशिश करने दें, यह केवल 70% तक ही पहुँच पाता। AdaTrans ने एक ही, स्मार्ट, पुनरावृत्त प्रक्रिया में 81% प्राप्त किया।
    • पुराने टूल्स: पारंपरिक टूल्स (जैसे c2rust) कोड को कंपाइल तो कर सकते थे, लेकिन वे इसे "unsafe" ब्लॉक्स से भर देते थे (सुरक्षा नियमों के साथ धोखाधड़ी करना)। AdaTrans ने कोड को 99% सुरक्षित रखा।
    • अन्य AI टूल्स: अन्य हालिया AI टूल्स 20% से कम सफलता दर के साथ संघर्ष कर रहे थे क्योंकि वे जटिल लॉजिक त्रुटियों को नहीं संभाल सके।

निष्कर्ष

AdaTrans यह सिद्ध करता है कि आपको "तेज़ अनुवाद" और "सुरक्षित कोड" के बीच चयन करने की आवश्यकता नहीं है। AI को यह सिखाकर कि:

  1. विशिष्ट त्रुटि को सुनना,
  2. उस त्रुटि के लिए सही विशेषज्ञ ज्ञान से परामर्श लेना, और
  3. कठिनाई के आधार पर अपने रचनात्मकता के स्तर को समायोजित करना,

...यह खतरनाक पुराने कोड को आधुनिक, सुरक्षित कोड में सफलतापूर्वक माइग्रेट कर सकता है। यह AI को एक मानचित्र, एक दिशा-सूचक यंत्र (compass), और एक गाइड देने जैसा है जो जानता है कि कब सावधानी से चलना है और कब जोखिम लेना है।

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

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

Digest आज़माएँ →