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

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

1980
एक सॉफ़्टवेयर विकास कार्यालय में तीन-चरणीय कंपाइलर संरचना पर काम करने वाला प्रोग्रामर।.

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

आधुनिक कंपाइलर आमतौर पर तीन चरणों में संरचित होता है: फ्रंट एंड, मिडिल एंड और बैक एंड। फ्रंट एंड सोर्स कोड को पार्स करता है, उसकी शुद्धता की जाँच करता है और एक इंटरमीडिएट रिप्रेजेंटेशन (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)
  • विभिन्न हार्डवेयर प्लेटफार्मों के लिए क्रॉस-संकलन
  • भाषा-स्वतंत्र अनुकूलन ढाँचे
  • केवल एक नया फ्रंट एंड बनाकर नई प्रोग्रामिंग भाषाओं का विकास करना।
  • मध्यवर्ती प्रतिनिधित्व पर काम करने वाले स्थैतिक विश्लेषण उपकरण

पेटेंट:

NA

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

बॉट ट्रैफिक को कम करने के कारण, जो वर्तमान में प्रति दिन 40,000 से अधिक है, यह सामग्री केवल समुदाय के सदस्यों के लिए आरक्षित है।
> लॉगिन < या > रजिस्टर < इस सामग्री और अन्य सभी प्रतिबंधित सामग्रियों और उपकरणों तक पहुंच (100% निःशुल्क) है।

संबंधित विषय: कंपाइलर डिजाइन, फ्रंट एंड, मिडिल एंड, बैक एंड, इंटरमीडिएट रिप्रेजेंटेशन, आईआर, ऑप्टिमाइजेशन, कोड जनरेशन, मॉड्यूलरिटी, जीसीसी, एलएलवीएम।

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

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

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

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

संबंधित आविष्कार, नवाचार और तकनीकी सिद्धांत

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