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

Migrating Esope to Fortran 2008 using model transformations

यह शोध पत्र एक मॉडल-संचालित इंजीनियरिंग दृष्टिकोण और उपकरण प्रस्तुत करता है जो मूल एब्स्ट्रैक्शन (abstraction) के स्तर को सुरक्षित रखते हुए, प्रोप्रायटरी एस्कोप (Esope) एक्सटेंशन वाले लीगेसी FORTRAN 77 कोड को स्वचालित रूप से पठनीय Fortran 2008 में माइग्रेट करता है।

मूल लेखक: Younoussa Sow, Nicolas Anquetil, Léandre Brault, Stéphane Ducasse

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

मूल लेखक: Younoussa Sow, Nicolas Anquetil, Léandre Brault, Stéphane Ducasse

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

कल्पना कीजिए कि आपके पास पुरानी किताबों का एक विशाल, अविश्वसनीय रूप से मूल्यवान पुस्तकालय है जो एक ऐसी भाषा में लिखी गई है जिसे दशकों से बोला नहीं गया है। इन किताबों में परमाणु ऊर्जा संयंत्रों के ब्लूप्रिंट (नक्शे) हैं, और वे आज भी पूरी तरह से काम करते हैं। हालाँकि, उनका "प्रिंटिंग प्रेस" (कंप्यूटर कंपाइलर) पुराना होता जा रहा है, और नए, आधुनिक प्रेस उन विशिष्ट, विचित्र निर्देशों को नहीं समझ पाते जो ये पुरानी किताबें उपयोग करती हैं।

यह Esope और Fortran 77 की कहानी है।

समस्या: एक भाषा जिसमें एक "चीट शीट" (Cheat Sheet) है

1980 के दशक में, Framatome नामक कंपनी के प्रोग्रामर्स को जटिल प्रणालियाँ बनाने की आवश्यकता थी। जिस भाषा का वे उपयोग कर रहे थे, वह Fortran 77 थी: यह एक बहुत ही सख्त, पुराने जमाने के मुनीम (accountant) की तरह थी—यह गणित में तो बहुत अच्छी थी लेकिन डेटा को व्यवस्थित करने में बहुत खराब थी। यह आसानी से लचीली सूचियाँ (flexible lists) नहीं बना सकती थी या मेमोरी को प्रबंधित (जैसे एक डिजिटल फाइलिंग कैबिनेट जो नई फाइलें जोड़ने पर बढ़ता जाता है) नहीं कर सकती थी।

इसे ठीक करने के लिए, उन्होंने Esope का आविष्कार किया। Esope को Fortran 77 के ऊपर बैठे एक विशेषज्ञ अनुवादक या "चीट शीट" परत के रूप में समझें। इसने प्रोग्रामर्स को यह कहने की अनुमति दी, "किताबों की एक डायनेमिक लिस्ट बनाओ," और अनुवादक चुपके से इसे निर्देशों के एक समूह में बदल देता था जिसे Fortran 77 समझ सके।

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

मिशन: नए घर में जाना

Framatome की टीम को इन महत्वपूर्ण प्रणालियों को पुराने, जंग लगे घर (Fortran 77 + Esope) से एक बिल्कुल नए, आधुनिक हवेली (Fortran 2008) में ले जाने की आवश्यकता थी।

Fortran 2008 उसी भाषा परिवार का हिस्सा है, लेकिन यह आधुनिक संस्करण है। इसमें वे सुविधाएँ पहले से मौजूद हैं जिनके लिए Esope को पहले नकल (fake) करनी पड़ती थी। यह ऐसा है जैसे हवेली में पहले से ही एक बिल्ट-इन, हाई-टेक फाइलिंग सिस्टम है, इसलिए आपको चीट शीट की आवश्यकता नहीं है।

चुनौती:
आप किताबों को सीधे कॉपी-पेस्ट नहीं कर सकते। "चीट शीट" निर्देश (Esope कमांड्स) इस नए घर में मौजूद नहीं हैं। यदि आप केवल उन्हें शब्द-दर-शब्द अनुवाद करते, तो कोड निचले स्तर के मेमोरी मैनेजमेंट का एक ढेर बन जाता जिसे कोई समझ या ठीक नहीं कर पाता। लक्ष्य विचारों (लॉजिक) का अनुवाद करना था जबकि पुरानी मशीनरी (लो-लेवल ट्रिक्स) को त्याग देना था।

समाधान: रोबोट आर्किटेक्ट

लेखकों (Younoussa Sow और उनकी टीम) ने इस काम को करने के लिए एक रोबोट आर्किटेक्ट बनाया। उन्होंने केवल एक साधारण "फाइंड एंड रिप्लेस" टूल का उपयोग नहीं किया; उन्होंने मॉडल-ड्रिवन इंजीनियरिंग (Model-Driven Engineering) नामक एक परिष्कृत विधि का उपयोग किया।

यहाँ बताया गया है कि उनका रोबोट कैसे काम करता है, एक उपमा (analogy) का उपयोग करते हुए:

  1. ब्लूप्रिंट को पढ़ना (The Model):
    कोड के कच्चे टेक्स्ट को पढ़ने के बजाय, रोबोट पहले कोड को एक 3D वास्तुशिल्प मॉडल (architectural model) में बदल देता है। यह संरचना को समझता है: "यह एक उपयोगकर्ता है," "यह एक किताब है," "यह एक पॉइंटर है।" यह एक क्षण के लिए जटिल सिंटैक्स को अनदेखा करता है और डेटा के आकार पर ध्यान केंद्रित करता है।

तैयारी (The Transformation):
रोबोट इस पुराने मॉडल को लेता है और इसे नए घर के लिए फिर से बनाने हेतु नियमों का एक सेट लागू करता है।
* "डबल इंडिरेक्शन" (Double Indirection) की ट्रिक: पुराने सिस्टम में, Esope एक चालाकी भरी ट्रिक का उपयोग करता था ताकि यह सुनिश्चित हो सके कि यदि कोई सूची बढ़ती है, तो सूची का पता (address) न बदले (ताकि कोई खो न जाए)। रोबोट को आधुनिक Fortran टूल्स का उपयोग करके इस जादू को फिर से बनाना था, यह सुनिश्चित करते हुए कि यदि कोई डेवलपर किसी सूची का आकार बदलता है, तो उन्हें टूटे हुए पॉइंटर्स की चिंता न करनी पड़े।
* डेटा का "ग्राफ" (Graph): पुराने कोड में एक-दूसरे की ओर इशारा करने वाले डेटा के जटिल जाल थे। रोबोट ने इन जालों को आधुनिक "डेराइव्ड टाइप्स" (जैसे कस्टम कंटेनर) का उपयोग करके फिर से बनाया ताकि वे नए सिस्टम में स्वाभाविक रूप से फिट हो सकें।
* सफाई करना (Cleaning Up): रोबोट ने पुरानी, अव्यवस्थित आदतों जैसे "इम्प्लिसिट टाइपिंग" (जहाँ कंप्यूटर अनुमान लगाता है कि वेरिएबल क्या है) को हटा दिया और सब कुछ स्पष्ट रूप से लेबल करना अनिवार्य कर दिया, जिससे कोड सुरक्षित और पढ़ने में आसान हो गया।

  1. आउटपुट (The New House):
    रोबोट मॉडल को वापस Fortran 2008 कोड में निर्यात (export) करता है।
    • पठनीय (Readable): नया कोड साफ, आधुनिक Fortran जैसा दिखता है, न कि लो-लेवल मेमोरी एड्रेस का ढेर।
    • स्केलेबल (Scalable): भले ही पुराने कोड की एक लाइन नए कोड की 100 लाइनों में बदल गई हो (क्योंकि नया सिस्टम अधिक स्पष्ट है), रोबोट ने इसे स्वचालित रूप से संभाल लिया।
    • ट्रेसेबल (Traceable): यदि रोबोट को यह समझाने के लिए टिप्पणी (comment) जोड़नी पड़ी कि उसने क्या बदला, तो उसने इसे स्पष्ट रूप से किया, ताकि मनुष्यों को पता चल सके कि क्या हुआ।

परिणाम: एक तेज़, स्वच्छ घर

टीम ने अपने रोबोट का परीक्षण एक "बुकस्टोर" सिमुलेशन (उपयोगकर्ताओं, किताबों और ऋणों का प्रबंधन करना) पर किया।

  • गति: नया Fortान 2008 कोड पुराने Esope संस्करण की तुलना में तीन गुना तेज़ चला।
  • मेमोरी: इसने कम मेमोरी का उपयोग किया।
  • विश्वसनीयता: इसने पुराने सिस्टम के बिल्कुल समान परिणाम दिए, जिससे यह सिद्ध हुआ कि "अनुवाद" एकदम सटीक था।

निचोड़ (The Bottom Line)

यह पेपर दिखाता है कि आप एक ऐसी विरासत प्रणाली (legacy system) को, जो एक "चीट शीट" (Esope) पर आधारित थी, बिना मूल तर्क खोए या सिस्टम को तोड़े, एक आधुनिक, मजबूत मानक (Fortran 2008) में स्वचालित रूप से माइग्रेट कर सकते हैं।

उन्होंने केवल कोड को ठीक नहीं किया; उन्होंने पूरे आधार (foundation) को अपग्रेड किया। परिणाम एक ऐसा सिस्टम है जो तेज़, सुरक्षित है, और दशकों तक जीवित रहने के लिए तैयार है, बिना डेवलपर्स द्वारा लाखों लाइनों के कोड को मैन्युअल रूप से फिर से लिखे। "रोबोट आर्किटेक्ट" ने भारी काम किया, जिससे मानव इंजीनियरों को पुराने, टूटे हुए तंत्र के बजाय व्यावसायिक तर्क (business logic) पर ध्यान केंद्रित करने की अनुमति मिली।

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

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

Digest आज़माएँ →