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

Code Quality Analysis of Translations from C to Rust

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

मूल लेखक: Biruk Tadesse, Vikram Nitin, Mazin Salah, Baishakhi Ray, Marcelo d'Amorim, Wesley Assunção

प्रकाशित 2026-02-03
📖 6 मिनट में पढ़ें🧠 गहराई से पढ़ें

मूल लेखक: Biruk Tadesse, Vikram Nitin, Mazin Salah, Baishakhi Ray, Marcelo d'Amorim, Wesley Assunção

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

कल्पना कीजिए कि आपके पास एक विशाल, पुरानी लाइब्रेरी है जिसमें ऐसी किताबें हैं जो C नामक एक बहुत ही शक्तिशाली लेकिन खतरनाक भाषा में लिखी गई हैं। ये किताबें दुनिया के सबसे महत्वपूर्ण सिस्टम, जैसे ऑपरेटिंग सिस्टम और डेटाबेस को चलाती हैं। हालाँकि, यह भाषा एक ऐसी लाइब्रेरी की तरह है जिसमें कोई सुरक्षा गार्ड नहीं है: इसमें गलती से शेल्फ गिर जाना (मेमोरी लीक) या दो लोगों का एक ही समय में एक ही पन्ने पर लिखने की कोशिश करना (थ्रेड सेफ्टी इश्यू) बहुत आसान है, जिससे अफरा-च chaos (अराजकता) मच सकती है।

इसे ठीक करने के लिए, विशेषज्ञ इन किताबों को एक नई, सुपर-सिक्योर भाषा Rust में फिर से लिखना चाहते हैं। Rust एक ऐसी लाइब्रेरी की तरह है जिसमें सख्त लाइब्रेरियन हैं जो आपको तब तक किताब छूने नहीं देते जब तक आपके पास सही अनुमति न हो। लेकिन लाखों लाइनों के कोड को हाथ से फिर से लिखना एक चम्मच से पहाड़ हटाने जैसा है—इसमें बहुत समय लगता है और इसमें मानवीय त्रुटि (human error) की संभावना बनी रहती है।

इसलिए, शोधकर्ताओं ने हमारे लिए अनुवाद करने के लिए रोबोट (स्वचालित उपकरण) बनाने की कोशिश की। यह शोध पत्र एक रिपोर्ट कार्ड है कि तीन अलग-अलग प्रकार के रोबोटों ने एक विशेषज्ञ मानव टीम की तुलना में यह काम कितनी अच्छी तरह किया।

तीन रोबोट बनाम मानव टीम

शोधकर्ताओं ने कुछ लोकप्रिय यूटिलिटी प्रोग्राम्स (जैसे cat और pwd) पर तीन अलग-अलग अनुवाद रणनीतियों का परीक्षण किया:

  1. मैकेनिकल रोबोट (C2Rust): यह रोबोट एक फोटोकॉपी मशीन की तरह है जो शब्द-दर-शब्द अनुवाद करता है। यह मूल संरचना को बिल्कुल वैसा ही रखता है जैसा वह था।
    • परिणाम: यह मूल के प्रति बहुत सटीक है, लेकिन नई किताबें अजीब दिखती हैं। वे "unsafe" (असुरक्षित) सेक्शन से भरी हुई हैं और ऐसा लगता है जैसे किसी विदेशी भाषा का अनुवाद किया गया हो जिसे ठीक से अनुकूलित नहीं किया गया है। यह कार्यात्मक तो है, लेकिन बोझिल और पढ़ने में कठिन है।
  2. "सेफ्टी-फर्स्ट" रोबोट (C2SaferRust): यह रोबोट मैकेनिकल रोबोट के काम को लेता है और खतरनाक हिस्सों को हटाने के लिए एक स्मार्ट असिस्टेंट (एक AI) का उपयोग करके उसे साफ करने की कोशिश करता है।
    • परिणाम: यह कुछ स्पष्ट खतरों को हटा देता है, लेकिन अक्सर यह एक समस्या को दूसरी समस्या से बदल देता है। यह शायद "खतरे के निशान" वाला बोर्ड हटा दे लेकिन वास्तविक ट्रैपडोर (trapdoor) खुला छोड़ दे, या यह कोड को इतना जटिल बना सकता है कि इसे समझना मुश्किल हो जाए।
  3. डायरेक्ट AI ट्रांसलेटर (TranslationGym): यह रोबोट मैकेनिकल स्टेप को पूरी तरह से छोड़ देता है। यह C कोड को देखता है और एक लार्ज लैंग्वेज मॉडल (जैसे एक सुपर-स्मार्ट AI) से कहता है कि वह फंक्शन-दर-फंक्शन Rust का नया संस्करण लिखे।
    • परिणाम: यह एक ऐसा कोड लिखता है जो बहुत अधिक "नेटिव" (मूल) Rust जैसा दिखता है। यह सुनने में अधिक स्वाभाविक लगता है। हालाँकि, अपनी सहजता (idiomatic nature) के चक्कर में, यह कभी-कभी नई समस्याएँ पैदा कर देता है, जैसे कि यदि प्रोग्राम मेमोरी खत्म होने की स्थिति में चलता है तो क्रैश हो जाना (एक "panic") या कोड को अविश्वसनीय रूप से दोहराव वाला और भारी बना देना।

द ह्यूमन बेंचमार्क (मानव मानक)

शोधकर्ताओं ने उन वास्तविक मानव विशेषज्ञों द्वारा लिखे गए कोड को भी देखा जिन्होंने इन टूल्स को मैन्युअल रूप से फिर से लिखा था। यह "गोल्ड स्टैंडर्ड" के रूप में कार्य करता था। यहाँ तक कि इंसान भी पूर्ण नहीं थे, लेकिन उन्होंने आम तौर पर सबसे सुरक्षित और विश्वसनीय कोड तैयार किया।

बड़ी खोज: "क्वालिटी ट्रेड-ऑफ" (गुणवत्ता का समझौता)

इस शोध पत्र की सबसे महत्वपूर्ण खोज यह है कि कोई भी परफेक्ट रोबोट नहीं है।

कोड की गुणवत्ता को एक कार की तरह समझें। आप चाहते हैं कि कार तेज़, सुरक्षित और आरामदायक हो।

  • मैकेनिकल रोबोट ने कार को चलाने के लिए सुरक्षित बनाया (उसने इंजन को खराब नहीं किया) लेकिन वह बदसूरत, शोर करने वाली और असुविधाजनक थी (पढ़ने/रखरखाव में कठिन)।
  • डायरेक्ट AI रोबोट ने कार को सुंदर और सुचारू रूप से चलाने लायक बनाया (यह नेटिव Rust जैसा लगता है), लेकिन यह कभी-कभी भूल जाता है कि ब्रेक काम कर रहे हैं या नहीं (रनटाइम क्रैश) या इंजन को बहुत भारी बना देता है (परफॉर्मेंस इश्यू)।
  • मानव टीम ने सबसे अच्छी कार बनाई, लेकिन उन्हें भी कुछ विवरणों पर समझौता करना पड़ा, जैसे कि बहुत लंबे, विस्तृत मैनुअल (डॉक्यूमेंटेशन) लिखना जो तकनीकी रूप से नियमों के अनुसार "बहुत अधिक" थे।

यह पेपर दिखाता है कि जब आप एक समस्या को ठीक करने की कोशिश करते हैं (जैसे कोड को "Rust-like" बनाना), तो आप अक्सर अनजाने में एक नई समस्या पैदा कर देते हैं (जैसे मेमोरी कम होने पर क्रैश होना)।

रोबोटों को ग्रेड करने के लिए उपयोग किए गए उपकरण

शोधकर्ताओं ने इन रोबानों को ग्रेड करने के लिए दो अलग-अलग "निरीक्षकों" का उपयोग किया:

  1. क्लिप्पी (नियम पुस्तिका निरीक्षक): यह एक मानक टूल है जो कोड को सख्त नियमों की सूची के विरुद्ध जांचता है। यह यह पता लगाने में माहिर है कि क्या आप सीटबेल्ट पहनना भूल गए हैं (सिंटैक्स एरर) या आप गलत दिशा में गाड़ी चला रहे हैं (नॉन-स्टैंडर्ड स्टाइल)।
    • कमी: क्लिप्पी थोड़ा कठोर है। यदि रोबोट ऐसा कोड लिखता है जो C जैसा दिखता है लेकिन Rust में चलता है, तो क्लिप्पी को पता नहीं चलेगा कि यह खतरनाक है क्योंकि वह विशिष्ट "Rust-style" पैटर्न की तलाश कर रहा है जो वहाँ मौजूद नहीं हैं। इसने कुछ छिपे हुए जाल (traps) मिस कर दिए।
  2. GPT-4o (स्मार्ट कंसल्टेंट): यह एक AI है जो कोड को पढ़ता है और उसके अर्थ को समझने की कोशिश करता है।
    • कमी: यह उन छिपे हुए जालों को पकड़ने में बहुत बेहतर है जिन्हें क्लिप्पी मिस कर गया था (जैसे "हे, यह वेरिएबल दो थ्रेड्स के बीच साझा किया जा रहा है और इससे क्रैश हो सकता है!")। हालाँकि, यह थोड़ा अप्रत्याशित है और कभी-कभी ऐसे नियम बना देता है जो अस्तित्व में ही नहीं हैं या भ्रमित हो जाता है।

निष्कर्ष

पेपर यह निष्कर्ष निकालता है कि स्वचालित अनुवाद अभी भी विकास के दौर में है।

  • कोई भी एक रोबोट सब कुछ पूरी तरह से नहीं कर सकता।
  • यहाँ तक कि सबसे अच्छे मानव अनुवादक भी एक साथ पूरी तरह से सुरक्षित, तेज़, पठनीय और अच्छी तरह से प्रलेखित (well-documented) कोड बनाने के लिए संघर्ष करते हैं।
  • हमें एक नए दृष्टिकोण की आवश्यकता है जो क्लिप्पी के सख्त नियमों को AI के स्मार्ट तर्क के साथ जोड़ता है, और फिर एक इंसान द्वारा काम की दोबारा जाँच की जाती है।

संक्षेप में: हमारे पास C को Rust में अनुवाद करने वाले रोबोट तो हैं, लेकिन वे प्रशिक्षु रसोइयों (apprentice chefs) की तरह हैं। वे एक ऐसा भोजन बना सकते हैं जो आपको मारेगा नहीं (सुरक्षित), लेकिन उसका स्वाद अजीब हो सकता है (नॉन-इडियोमैटिक) या उसे पकाने में बहुत समय लग सकता है (परफॉर्मेंस इश्यू)। हमें अभी भी विशेषज्ञ शेफ (इंसानों) की आवश्यकता है जो रेसिपी को चख सकें और उसे बेहतर बना सकें।

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

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

Digest आज़माएँ →