3 पॉइंट द्वारा GN⁺ 2024-07-31 | 1 टिप्पणियां | WhatsApp पर शेयर करें
  • C को Rust में अनुवाद करना (TRACTOR)

    • Dr. Dan Wallach
    • 20 से अधिक वर्षों तक C और C++ की memory safety समस्याओं को हल करने की कोशिशों के बाद, software engineering community इस निष्कर्ष पर पहुँची है
    • केवल bug-finding tools पर निर्भर रहना पर्याप्त नहीं है
    • ऐसे "safe" programming languages का उपयोग करना बेहतर माना जाता है जो compile time पर unsafe programs को अस्वीकार कर सकें
    • TRACTOR program का लक्ष्य मौजूदा C code को अपने-आप Rust में अनुवाद करना है
    • लक्ष्य यह है कि कुशल Rust developers द्वारा लिखे गए code जैसी ही quality और style हासिल की जाए, ताकि C programs में होने वाली memory safety security vulnerabilities को हटाया जा सके
    • इस program में static analysis, dynamic analysis, और बड़े language models जैसी machine learning techniques का नया संयोजन शामिल हो सकता है
    • अतिरिक्त जानकारी SAM.Gov के TRACTOR Special Notice में उपलब्ध है
  • DARPA की प्रमुख उपलब्धियाँ

    • stealth क्रांति

      • DARPA के stealth technology research के शुरुआती दौर में, F-117A के prototype Have Blue ने 1977 में पहली बार सफल उड़ान भरी
      • F-117A program की सफलता ने stealth revolution की शुरुआत का संकेत दिया, जिससे national security को बहुत बड़ा लाभ मिला
    • हथेली में navigation

      • शुरुआती GPS receivers बड़े और भारी उपकरण थे
      • 1983 में, DARPA ने इन्हें छोटा करने के लिए काम किया, जिससे GPS capabilities को कहीं अधिक व्यापक रूप से अपनाया गया
    • आधुनिक इंटरनेट का रास्ता तैयार करना

      • ARPA research ने information revolution की शुरुआत में महत्वपूर्ण भूमिका निभाई
      • इसने ARPANET की conceptual foundation विकसित की और digital protocols का आविष्कार किया, जिससे इंटरनेट का जन्म हुआ
  • GN⁺ का सार

    • TRACTOR program, मौजूदा C code को अपने-आप Rust में अनुवाद करके memory safety समस्याओं को हल करने की एक महत्वपूर्ण कोशिश है
    • DARPA का research stealth technology, GPS miniaturization, और इंटरनेट के जन्म सहित आधुनिक तकनीकी विकास में बड़ा योगदान देता है
    • यह लेख software engineers और technology history में रुचि रखने वाले लोगों के लिए उपयोगी हो सकता है
    • समान प्रकार की क्षमताओं वाले projects में Microsoft का Checked C और Google की Carbon language शामिल हैं

1 टिप्पणियां

 
GN⁺ 2024-07-31
Hacker News राय
  • अनुभवी प्रोग्रामर द्वारा लिखा गया Rust, C से बहुत अलग होता है, और ज़्यादातर दिलचस्प कोड C++ में लिखा जाता है

    • C प्रोग्राम में सभी allocation lifetimes को statically निर्धारित करना बहुत कठिन समस्या है
    • C/C++ प्रोग्राम allocation lifetimes को user click जैसी events से जोड़ सकते हैं
    • अगर जिस प्रोग्राम का विश्लेषण करना है उसमें bug है, तो lifetime का कोई अर्थ नहीं रह सकता
    • मौजूदा research यह मानकर चलती है कि analysis के लिए लिया गया code सही है
  • यह प्रस्ताव सार्वजनिक किया गया, यह दिलचस्प है

    • automatic translation की व्यवहार्यता को लेकर उम्मीदों को नियंत्रित करने की कोशिश की जा रही है
    • C source code में Rust source code की तुलना में कम जानकारी होती है
    • गायब जानकारी उत्पन्न करना असंभव है
    • सही infer करने के लिए judgment चाहिए, और इसमें त्रुटि हो सकती है
    • यह project कुछ हद तक सफल हो सकता है, लेकिन सावधानी से आगे बढ़ना चाहिए
    • आशा है कि सरकार के project को C की पूरी निंदा या Rust की पूरी प्रशंसा के रूप में नहीं समझा जाएगा
  • "दुनिया को Rust में फिर से लिखो" वाली सोच पसंद नहीं है

    • किसी project को नई language या platform पर port करने के लिए mechanical translation अच्छा तरीका नहीं है
    • बेहतर architecture की योजना बनाने और software system design करने में समय लगाना चाहिए
    • अगर Rust इस्तेमाल करने का फैसला किया है, तो Rust में ही लिखना चाहिए
    • C को modern C में update करना और model checker का उपयोग करके memory, resource, और integer math safety को verify करना बेहतर है
  • बहुत से लोग इस project को C और C++ code को Rust में translate करने की मांग के रूप में पढ़ रहे हैं

    • C और C++ मूल रूप से unsafe हैं
    • जितना संभव हो उतना code safe language में translate या लिखा जाना चाहिए
    • मौजूदा C code को Rust में translate करने वाले software का समर्थन किया जा रहा है
    • लक्ष्य दुनिया को Rust में फिर से लिखने पर सहमति बनाना नहीं, बल्कि safe languages की ओर migration है
  • translated codebase को maintain करने में समस्या है

    • C में लिखे codebase और उसे maintain कर सकने वाली C engineers की team की आवश्यकता होगी
    • automatically translated Rust codebase, मूल source से अधिक पढ़ने और समझने में कठिन हो सकता है
    • Rust engineers की team भी चाहिए होगी
    • अगर Rust engineers पहले से हैं, तो code को manually फिर से लिखना बेहतर है
  • अपने-आप port करने वाले program में वे सभी क्षमताएँ होनी चाहिए जो C code को safe बना सकें

    • अगर Rust में memory bugs नहीं हैं और वह C को automatically translate कर सकता है, तो वह सभी memory bugs को automatically ठीक भी कर सकता होना चाहिए
    • आम तौर पर यह संभव नहीं है
  • Mozilla से निकाले गए सक्षम engineers को पहले hire करके language पर काम जारी रखने देना बेहतर होगा

    • asynchronous processing अभी पूरी तरह से समाप्त नहीं हुई है
    • कई तरह की समस्याएँ हैं
  • DARPA इस समस्या को आगे बढ़ा रहा है, यह अच्छा है

    • safe Rust में translate करना बहुत कठिन है
    • अभी C से Rust में translate करने वाले tools हैं, लेकिन परिणामों को maintain करना कठिन है
    • इसे सही ढंग से करने के लिए array size और nonlinear pointer usage की समस्याओं को हल करना होगा