Product Design, Manufacturing & Innovation Resources
घर » तीन-चरणीय कंपाइलर संरचना

तीन-चरणीय कंपाइलर संरचना

1980
Programmer working on three-stage compiler structure in a software development office.

(यह छवि केवल उदाहरण के लिए बनाई गई है)

आधुनिक कंपाइलर आमतौर पर तीन चरणों में संरचित होता है: फ्रंट एंड, मिडिल एंड और बैक एंड। फ्रंट एंड सोर्स कोड को पार्स करता है, उसकी शुद्धता की जाँच करता है और एक इंटरमीडिएट रिप्रेजेंटेशन (IR) बनाता है। मिडिल एंड इस IR पर ऑप्टिमाइजेशन करता है। बैक एंड फिर ऑप्टिमाइज्ड IR को एक विशिष्ट CPU आर्किटेक्चर के लिए टारगेट मशीन कोड में अनुवादित करता है।

यह मॉड्यूलर त्रि-चरणीय डिज़ाइन कार्यों के महत्वपूर्ण पृथक्करण को सुनिश्चित करता है। फ्रंट एंड भाषा पर निर्भर है लेकिन मशीन से स्वतंत्र है; यह C++ या Rust जैसी विशिष्ट भाषाओं के सिंटैक्स और सिमेंटिक्स को समझता है। इसका आउटपुट, इंटरमीडिएट रिप्रेजेंटेशन (IR), एक अमूर्त, मशीन-स्वतंत्र डेटा संरचना है, जैसे कि एब्स्ट्रैक्ट सिंटैक्स ट्री (AST) या थ्री-एड्रेस कोड। यह स्रोत भाषा को लक्ष्य मशीन से अलग करता है।

मध्य भाग काफी हद तक भाषा और मशीन से स्वतंत्र है। यह IR लेता है और डेड कोड एलिमिनेशन, कॉन्स्टेंट फोल्डिंग और लूप ऑप्टिमाइजेशन जैसे कई ऑप्टिमाइजेशन पास लागू करता है। चूंकि यह जेनेरिक IR पर काम करता है, इसलिए इन जटिल ऑप्टिमाइजेशन को एक बार लिखा जा सकता है और किसी भी भाषा पर लागू किया जा सकता है जिसे उस IR में कंपाइल किया जा सकता है।

अंत में, बैक एंड मशीन पर निर्भर होता है लेकिन भाषा से स्वतंत्र होता है। यह अनुकूलित IR लेता है और निर्देश चयन, रजिस्टर आवंटन और निर्देश शेड्यूलिंग करके x86-64 या ARM जैसे विशिष्ट लक्ष्य आर्किटेक्चर के लिए कुशल मशीन कोड उत्पन्न करता है। यह संरचना M*N अलग-अलग कंपाइलरों के बजाय M फ्रंट एंड और N बैक एंड लिखकर M भाषाओं और N लक्ष्यों का समर्थन करने वाले कंपाइलर बनाना संभव बनाती है। यह सिद्धांत GCC और LLVM जैसे आधुनिक कंपाइलर इन्फ्रास्ट्रक्चर में स्पष्ट रूप से दिखाई देता है।

UNESCO Nomenclature: 1203
कंप्यूटर विज्ञान

Type

सार प्रणाली

व्यवधान

मूलभूत

उपयोग

व्यापक उपयोग

शगुन

  • प्रारंभिक मोनोलिथिक कंपाइलर डिज़ाइन
  • सॉफ्टवेयर इंजीनियरिंग में अमूर्तता की अवधारणा
  • प्रारंभिक प्रणालियों में मध्यवर्ती भाषाओं का विकास
  • पोर्टेबल सॉफ्टवेयर (जैसे, पी-कोड सिस्टम) पर शोध

आवेदन

  • रिटारगेटेबल कंपाइलर (जैसे, GCC, llvm)
  • विभिन्न हार्डवेयर प्लेटफार्मों के लिए क्रॉस-संकलन
  • भाषा-स्वतंत्र अनुकूलन ढाँचे
  • development of new programming languages by only creating a new front end
  • मध्यवर्ती प्रतिनिधित्व पर काम करने वाले स्थैतिक विश्लेषण उपकरण

पेटेंट:

NA

संभावित नवाचार विचार

  • सभी कंपाइलरों के बीच अंतरसंचालनीयता के लिए एक सार्वभौमिक अंतर्राष्ट्रीय संबंध मानक
  • एआई-संचालित मध्य-अंत जो इष्टतम अनुकूलन अनुक्रम सीखते हैं
  • ऑप्टिकल या डीएनए कंप्यूटर जैसे प्रायोगिक हार्डवेयर के लिए प्लग करने योग्य बैक-एंड
  • ऐसे फ्रंट-एंड जो एक ही सोर्स फ़ाइल में कई प्रोग्रामिंग भाषाओं को एकीकृत कर सकते हैं
  • टीम विकास के लिए साझा आईआर के साथ रीयल-टाइम सहयोगी कंपाइलर
  • ऐसे कंपाइलर जो हार्डवेयर विवरण (जैसे, वीएचडीएल) और मशीन कोड को एक साथ उत्पन्न करते हैं।
  • a ‘compiler marketplace’ for third-party optimization plugins
  • सेल्फ-होस्टिंग कंपाइलर जो अपने फ्रंट/मिडल/बैक एंड को तुरंत रीकंपाइल कर सकते हैं
  • आईआर-स्तर के डीबगर जो भाषा और आर्किटेक्चर से स्वतंत्र हैं
  • ऐसे कंपाइलर जो कोड जनरेशन से पहले प्रदर्शन और सुरक्षा कमजोरियों का अनुमान लगाने के लिए IR का उपयोग करते हैं।
संबंधित विषय: कंपाइलर डिजाइन, फ्रंट एंड, मिडिल एंड, बैक एंड, इंटरमीडिएट रिप्रेजेंटेशन, आईआर, ऑप्टिमाइजेशन, कोड जनरेशन, मॉड्यूलरिटी, जीसीसी, एलएलवीएम।

ऐतिहासिक संदर्भ

तीन-चरणीय कंपाइलर संरचना

1975-06-01
1980
1980
1980
1982-07-01
1988-06-01
1990
1973
1980
1980
1980
1980
1986-01-01
1990
1990

(यदि तिथि अज्ञात है या प्रासंगिक नहीं है, उदाहरण के लिए "द्रव यांत्रिकी", तो इसके उल्लेखनीय उद्भव का एक अनुमानित आंकड़ा प्रदान किया गया है)

नवीनतम परिवर्धन

शीर्ष पोस्ट और लेख

शीर्ष मूल उपकरण

10वां वर्ष सालगिरह

पंजीकृत सदस्यों के लिए पूर्ण आकार की छवियाँ और डाउनलोड 100% निःशुल्क उपलब्ध हैं।