गतिशील पुनर्संकलन: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{Use dmy dates|date=July 2019|cs1-dates=y}} | {{Use dmy dates|date=July 2019|cs1-dates=y}} | ||
{{Program execution}} | {{Program execution}} | ||
'''[[कंप्यूटर विज्ञान]] एक गतिशील पुनर्संकलन(रीकंपलर)''',अनुकरणकर्ताओं और [[आभासी मशीन|आभासी मशीनो]] की एक विशेषता है, जो प्रणाली निष्पादन के दौरान [[कंप्यूटर प्रोग्राम|कंप्यूटर कूट भाषा]] के कुछ भाग को संकलित करता है। | '''[[कंप्यूटर विज्ञान]] एक गतिशील पुनर्संकलन(रीकंपलर)''',अनुकरणकर्ताओं और [[आभासी मशीन|आभासी मशीनो]] की एक विशेषता है, जो प्रणाली निष्पादन के दौरान [[कंप्यूटर प्रोग्राम|कंप्यूटर कूट भाषा]] के कुछ भाग को संकलित करता है। कार्यान्वयन के दौरान संकलन करके सिस्टम प्रोग्राम के कार्यावधि वातावरण को प्रतिबिंबित करके उत्पन्न किए गए कोड को तैयार कर सकता है, और संभावित रूप से एक पारंपरिक स्थिर संकलक के लिए उपलब्ध जानकारी को प्राप्त करके अधिक अच्छा कोड का उत्पादन करता है। | ||
== उपयोग करता है == | == उपयोग करता है == | ||
कार्यावधि पर आर्किटेक्चर के बीच मशीन कोड को परिवर्तित करने के लिए अधिकांश गतिशील पुनर्संकलन(रीकंपलर) का उपयोग किया जाता है। लीगेसी गेमिंग प्लेटफॉर्म के अनुकरण में यह एक ऐसा कार्य है जिसकी अक्सर आवश्यकता होती है। अन्य मामलों में, [[जावा (प्रोग्रामिंग भाषा)]] या [[सामान्य भाषा रनटाइम|सामान्य भाषा क्रम]] बायटेकोड जैसे पोर्टेबल प्रोग्राम प्रतिनिधित्व को निष्पादित करने के लिए एक अनुकूलन विधि के भाग के रूप में गतिशील पुनर्संकलन(रीकंपलर) को नियोजित कर सकता है। फुल-स्पीड डिबगर्स गतिशील पुनर्संकलन(रीकंपलर) का भी उपयोग करते हैं ताकि अधिकांश अनुकूलन तकनीक में खर्च किए गए ओवरहेड को कम किया जा सके और इसके गतिक थ्रेड माइग्रेशन जैसी अन्य विशेषताएं भी है | | कार्यावधि पर आर्किटेक्चर के बीच मशीन कोड को परिवर्तित करने के लिए अधिकांश गतिशील पुनर्संकलन(डायनमिक रीकंपलर) का उपयोग किया जाता है। लीगेसी गेमिंग प्लेटफॉर्म के अनुकरण में यह एक ऐसा कार्य है जिसकी अक्सर आवश्यकता होती है। अन्य मामलों में, [[जावा (प्रोग्रामिंग भाषा)]] या [[सामान्य भाषा रनटाइम|सामान्य भाषा क्रम]] बायटेकोड जैसे पोर्टेबल प्रोग्राम प्रतिनिधित्व को निष्पादित करने के लिए एक अनुकूलन विधि के भाग के रूप में गतिशील पुनर्संकलन(डायनमिक रीकंपलर) को नियोजित कर सकता है। फुल-स्पीड डिबगर्स गतिशील पुनर्संकलन(डायनमिक रीकंपलर) का भी उपयोग करते हैं ताकि अधिकांश अनुकूलन तकनीक में खर्च किए गए ओवरहेड को कम किया जा सके और इसके गतिक थ्रेड माइग्रेशन जैसी अन्य विशेषताएं भी है | | ||
== कार्य == | == कार्य == | ||
गतिशील पुनर्संकलक(रीकंपलर) | गतिशील पुनर्संकलक(डायनमिक रीकंपलर) को जिन मुख्य कार्यों को करना होता है, वे निम्न हैं: | ||
* सोर्स प्लेटफॉर्म से मशीन कोड में पढ़ना | * सोर्स प्लेटफॉर्म से मशीन कोड में पढ़ना | ||
* लक्ष्य प्लेटफॉर्म के लिए | * लक्ष्य प्लेटफॉर्म के लिए उत्पन मशीन कोड | ||
एक गतिशील पुनर्संकलन(रीकंपलर) कुछ सहायक कार्य भी कर सकता है: | एक गतिशील पुनर्संकलन(रीकंपलर) कुछ सहायक कार्य भी कर सकता है: | ||
Line 28: | Line 28: | ||
* Vx32 वर्चुअल मशीन सुरक्षित एप्लिकेशन प्लगइन्स के लिए OS-स्वतंत्र x86 आर्किटेक्चर सैंडबॉक्स बनाने के लिए गतिशील पुनर्संकलक(रीकंपलर) को नियोजित करती है। | * Vx32 वर्चुअल मशीन सुरक्षित एप्लिकेशन प्लगइन्स के लिए OS-स्वतंत्र x86 आर्किटेक्चर सैंडबॉक्स बनाने के लिए गतिशील पुनर्संकलक(रीकंपलर) को नियोजित करती है। | ||
* मैक के लिए [[माइक्रोसॉफ्ट वर्चुअल पीसी]], पावरपीसी पर एक्स86 कूट भाषा चलाने के लिए प्रयोग किया जाता है। | * मैक के लिए [[माइक्रोसॉफ्ट वर्चुअल पीसी]], पावरपीसी पर एक्स86 कूट भाषा चलाने के लिए प्रयोग किया जाता है। | ||
* फ्री कीब, एक अंतर्राष्ट्रीय DOS कीबोर्ड और कंसोल ड्राइवर जिसमें कई प्रयोज्य संवर्द्धन के साथ स्व-संशोधित कोड और गतिशील मृत कोड उन्मूलन का उपयोग किया गया है ताकि इसके उपयोगकर्ता विन्यास (चयनित सुविधाओं, भाषाओं, लेआउट) और वास्तविक रनटाइम वातावरण (OS संस्करण) के आधार पर इसकी इन-मेमोरी छवि को कम किया जा सके। और संस्करण, लोड किए गए ड्राइवर, अंतर्निहित हार्डवेयर), स्वचालित रूप से निर्भरताओं को हल करना, बाइट-स्तरीय पठन पर कोड अनुभागों को गतिशील रूप से स्थानांतरित करना और पुनर्संयोजन करना और स्रोत कोड में प्रदान की गई | * फ्री कीब, एक अंतर्राष्ट्रीय DOS कीबोर्ड और कंसोल ड्राइवर जिसमें कई प्रयोज्य संवर्द्धन के साथ स्व-संशोधित कोड और गतिशील मृत कोड उन्मूलन का उपयोग किया गया है ताकि इसके उपयोगकर्ता विन्यास (चयनित सुविधाओं, भाषाओं, लेआउट) और वास्तविक रनटाइम वातावरण (OS संस्करण) के आधार पर इसकी इन-मेमोरी छवि को कम किया जा सके। और संस्करण, लोड किए गए ड्राइवर, अंतर्निहित हार्डवेयर), स्वचालित रूप से निर्भरताओं को हल करना, बाइट-स्तरीय पठन पर कोड अनुभागों को गतिशील रूप से स्थानांतरित करना और पुनर्संयोजन करना और स्रोत कोड में प्रदान की गई अर्थगत जानकारी के आधार पर प्रस्तुत करना,असेंबली के दौरान विशेष उपकरणों द्वारा उत्पन्न स्थानांतरण जानकारी और लोड समय पर जानकारी प्राप्त करना |<ref name="Paul_1997_FreeKEYB">{{citation | ||
|title=FreeKEYB - Enhanced DOS keyboard and console driver |edition=v6.5 |first1=Matthias R. |last1=Paul |first2=Axel C. |last2=Frinke |type=User Manual |date=1997-10-13 |orig-year=first published 1991}}</ref> | |title=FreeKEYB - Enhanced DOS keyboard and console driver |edition=v6.5 |first1=Matthias R. |last1=Paul |first2=Axel C. |last2=Frinke |type=User Manual |date=1997-10-13 |orig-year=first published 1991}}</ref> | ||
* Xbox 360 (अर्थात् मूल Xbox के लिए लिखे गए रनिंग गेम) की पश्चगामी संगतता कार्यात्मकता व्यापक रूप से गतिशील पुनर्संकलन का उपयोग करने के लिए मानी जाती है | * Xbox 360 (अर्थात् मूल Xbox के लिए लिखे गए रनिंग गेम) की पश्चगामी संगतता कार्यात्मकता व्यापक रूप से गतिशील पुनर्संकलन का उपयोग करने के लिए मानी जाती है | ||
Line 39: | Line 39: | ||
*जेम<sup>[7]</sup> एमएसए के लिए एक गेम बॉय इम्यूलेटर एक डायनेमिक रीकंपलर का अनुकूलन का उपयोग करता है। | *जेम<sup>[7]</sup> एमएसए के लिए एक गेम बॉय इम्यूलेटर एक डायनेमिक रीकंपलर का अनुकूलन का उपयोग करता है। | ||
* डीएसएमयूएमई<ref>{{cite web|url=http://desmume.org/2013/04/30/desmume-0-9-9-released/|title=DeSmuME v0.9.9}}</ref> एक [[Nintendo डी एस|निंटेंडो डी एस]] एमुलेटर, एक डायनारेक विकल्प का रूप है | | * डीएसएमयूएमई<ref>{{cite web|url=http://desmume.org/2013/04/30/desmume-0-9-9-released/|title=DeSmuME v0.9.9}}</ref> एक [[Nintendo डी एस|निंटेंडो डी एस]] एमुलेटर, एक डायनारेक विकल्प का रूप है | | ||
* | * सोयविज का पीएसपी,<ref>{{cite web|author=Publicado por Carlos Ballesteros Velasco |url=http://pspemu.soywiz.com/2013/07/release-soywizs-psp-emulator-2013-07-28.html |title=Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525) |publisher=Pspemu.soywiz.com |date=2013-07-28 |access-date=2014-01-12}}</ref> एक [[प्लेस्टेशन पोर्टेबल]] इम्यूलेटर का डायनारेक विकल्प है। | ||
* [[Mupen64Plus|मुपेन 64 प्लस]], एक निन्टेंडो 64 एमुलेटर एक से अधिक प्लेटफोर्म है।<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref> | * [[Mupen64Plus|मुपेन 64 प्लस]], एक निन्टेंडो 64 एमुलेटर के एक से अधिक प्लेटफोर्म है।<ref>[http://pandorawiki.org/Mupen64plus_dynamic_recompiler Mupen64Plus]</ref> | ||
* याबॉस, एक बहु-मंच [[अब शनि| | * याबॉस, एक बहु-मंच [[अब शनि|शैटर्न]] एमुलेटर है।<ref>{{cite web|url=http://wiki.yabause.org/index.php5?title=SH2_dynamic_recompiler|title=SH2}}</ref> | ||
*[[PPSSPP|पीपीएसएसपीपी]],एक बहु-मंच प्लेस्टेशन पोर्टेबल एमुलेटर, डिफाल्ट रूप से एक जेआईटी गतिशील रीकंपलर का उपयोग करता है।<ref>{{Cite web|title=PPSSPP - PPSSPP - PSP emulator for Android, Windows, Linux, iOS, MacOSX|url=https://ppsspp.org/|access-date=2021-11-17|website=ppsspp.org}}</ref> | *[[PPSSPP|पीपीएसएसपीपी]],एक बहु-मंच प्लेस्टेशन पोर्टेबल एमुलेटर, डिफाल्ट रूप से एक जेआईटी गतिशील रीकंपलर का उपयोग करता है।<ref>{{Cite web|title=PPSSPP - PPSSPP - PSP emulator for Android, Windows, Linux, iOS, MacOSX|url=https://ppsspp.org/|access-date=2021-11-17|website=ppsspp.org}}</ref> | ||
Revision as of 08:07, 24 April 2023
कार्यक्रम निष्पादन |
---|
सामान्य अवधारणाएँ |
कोड के प्रकार |
संकलन रणनीतियाँ |
उल्लेखनीय रनटाइम्स |
|
उल्लेखनीय संकलक और टूलचेन |
|
कंप्यूटर विज्ञान एक गतिशील पुनर्संकलन(रीकंपलर),अनुकरणकर्ताओं और आभासी मशीनो की एक विशेषता है, जो प्रणाली निष्पादन के दौरान कंप्यूटर कूट भाषा के कुछ भाग को संकलित करता है। कार्यान्वयन के दौरान संकलन करके सिस्टम प्रोग्राम के कार्यावधि वातावरण को प्रतिबिंबित करके उत्पन्न किए गए कोड को तैयार कर सकता है, और संभावित रूप से एक पारंपरिक स्थिर संकलक के लिए उपलब्ध जानकारी को प्राप्त करके अधिक अच्छा कोड का उत्पादन करता है।
उपयोग करता है
कार्यावधि पर आर्किटेक्चर के बीच मशीन कोड को परिवर्तित करने के लिए अधिकांश गतिशील पुनर्संकलन(डायनमिक रीकंपलर) का उपयोग किया जाता है। लीगेसी गेमिंग प्लेटफॉर्म के अनुकरण में यह एक ऐसा कार्य है जिसकी अक्सर आवश्यकता होती है। अन्य मामलों में, जावा (प्रोग्रामिंग भाषा) या सामान्य भाषा क्रम बायटेकोड जैसे पोर्टेबल प्रोग्राम प्रतिनिधित्व को निष्पादित करने के लिए एक अनुकूलन विधि के भाग के रूप में गतिशील पुनर्संकलन(डायनमिक रीकंपलर) को नियोजित कर सकता है। फुल-स्पीड डिबगर्स गतिशील पुनर्संकलन(डायनमिक रीकंपलर) का भी उपयोग करते हैं ताकि अधिकांश अनुकूलन तकनीक में खर्च किए गए ओवरहेड को कम किया जा सके और इसके गतिक थ्रेड माइग्रेशन जैसी अन्य विशेषताएं भी है |
कार्य
गतिशील पुनर्संकलक(डायनमिक रीकंपलर) को जिन मुख्य कार्यों को करना होता है, वे निम्न हैं:
- सोर्स प्लेटफॉर्म से मशीन कोड में पढ़ना
- लक्ष्य प्लेटफॉर्म के लिए उत्पन मशीन कोड
एक गतिशील पुनर्संकलन(रीकंपलर) कुछ सहायक कार्य भी कर सकता है:
- पुनःसंकलित किय गये कोड के कैश (कंप्यूटिंग) को प्रबंध करना
- चक्र गणना रजिस्टर के साथ बीते हुए चक्र की गिनती को प्लेटफॉर्म पर अपडेट करना
- व्यवधान(इंटरप्ट) जाँच का प्रबंधन करना
- हार्डवेयर के वास्तविक सपोर्ट के लिए एक इंटरफेस प्रदान करना, उदाहरण के लिए एक जीपीयू
- लक्ष्य हार्डवेयर पर कुशलतापूर्वक चलाने के लिए उच्च-स्तरीय कोड संरचनाओं का अनुकूलन (नीचे देखें)
अनुप्रयोग
- कई जावा आभासी मशीनों में गतिशील पुनर्संकलक(रीकंपलर) की सुविधा होती है
- एक्स86 पर मैक ओएस एक्स के लिए एप्प्ल का रोसेटा (सॉफ्टवेयर), पावरपीसी कूट भाषा को एक्स86 आर्किटेक्चर पर चलाने की अनुमति देता है।
- मैक 68K एमुलेटर के बाद के संस्करणों का उपयोग क्लासिक मैक ओएस में पावरपीसी हार्डवेयर पर 680x0 कूट भाषा चलाने के लिए किया गया।
- साइको, पायथन (प्रोग्रामिंग भाषा) के लिए एक विशेष संकलक है ।
- एचपी डायनेमो परियोजना, एक पारदर्शी बाइनरी गतिशील संकलक अनुकूलन का एक उदाहरण है।[1]
- डायनेमो रियो, डायनेमो का एक ओपन-सोर्स है जो एआरएम, x86-64 और IA-64 (इटेनियम) निर्देश सेट के साथ काम करता है।[2][3]
- Vx32 वर्चुअल मशीन सुरक्षित एप्लिकेशन प्लगइन्स के लिए OS-स्वतंत्र x86 आर्किटेक्चर सैंडबॉक्स बनाने के लिए गतिशील पुनर्संकलक(रीकंपलर) को नियोजित करती है।
- मैक के लिए माइक्रोसॉफ्ट वर्चुअल पीसी, पावरपीसी पर एक्स86 कूट भाषा चलाने के लिए प्रयोग किया जाता है।
- फ्री कीब, एक अंतर्राष्ट्रीय DOS कीबोर्ड और कंसोल ड्राइवर जिसमें कई प्रयोज्य संवर्द्धन के साथ स्व-संशोधित कोड और गतिशील मृत कोड उन्मूलन का उपयोग किया गया है ताकि इसके उपयोगकर्ता विन्यास (चयनित सुविधाओं, भाषाओं, लेआउट) और वास्तविक रनटाइम वातावरण (OS संस्करण) के आधार पर इसकी इन-मेमोरी छवि को कम किया जा सके। और संस्करण, लोड किए गए ड्राइवर, अंतर्निहित हार्डवेयर), स्वचालित रूप से निर्भरताओं को हल करना, बाइट-स्तरीय पठन पर कोड अनुभागों को गतिशील रूप से स्थानांतरित करना और पुनर्संयोजन करना और स्रोत कोड में प्रदान की गई अर्थगत जानकारी के आधार पर प्रस्तुत करना,असेंबली के दौरान विशेष उपकरणों द्वारा उत्पन्न स्थानांतरण जानकारी और लोड समय पर जानकारी प्राप्त करना |[4]
- Xbox 360 (अर्थात् मूल Xbox के लिए लिखे गए रनिंग गेम) की पश्चगामी संगतता कार्यात्मकता व्यापक रूप से गतिशील पुनर्संकलन का उपयोग करने के लिए मानी जाती है
- Apple सिलिकॉन के लिए Apple का रोसेटा 2, x86-64-आधारित प्रोसेसर के लिए संकलित कई अनुप्रयोगों को Apple सिलिकॉन पर निष्पादन के लिए अनुवादित करने की अनुमति देता है।
एमुलेटर
- PCSX2, एक प्लेस्टेशन 2 एमुलेटर, में एक पुनर्संकलक है जिसे माइक्रो वीयू कहा जाता है, जो सुपरवीयू का पार्ट है।
- जीसीईएमयू,[5] एक खेल घन एमुलेटर है।
- जीसीईएमयू[6]एक गेमक्यूब इम्यूलेटर है।
- जेम[7] एमएसए के लिए एक गेम बॉय इम्यूलेटर एक डायनेमिक रीकंपलर का अनुकूलन का उपयोग करता है।
- डीएसएमयूएमई[7] एक निंटेंडो डी एस एमुलेटर, एक डायनारेक विकल्प का रूप है |
- सोयविज का पीएसपी,[8] एक प्लेस्टेशन पोर्टेबल इम्यूलेटर का डायनारेक विकल्प है।
- मुपेन 64 प्लस, एक निन्टेंडो 64 एमुलेटर के एक से अधिक प्लेटफोर्म है।[9]
- याबॉस, एक बहु-मंच शैटर्न एमुलेटर है।[10]
- पीपीएसएसपीपी,एक बहु-मंच प्लेस्टेशन पोर्टेबल एमुलेटर, डिफाल्ट रूप से एक जेआईटी गतिशील रीकंपलर का उपयोग करता है।[11]
यह भी देखें
- बाइनरी रीकंपाइलर
- बाइनरी अनुवाद
- प्लेटफॉर्म वर्चुअलाइजेशन सॉफ्टवेयर की तुलना
- अभी-अभी संकलन
- इंस्ट्रुमेंटेशन (कंप्यूटर प्रोग्रामिंग)
संदर्भ
- ↑ "डायनेमो पर एचपी लैब्स की तकनीकी रिपोर्ट".
- ↑ "DynamoRIO डायनेमिक इंस्ट्रूमेंटेशन टूल प्लेटफॉर्म". Archived from the original on 2019-09-05. Retrieved 2016-04-12.
- ↑ "डायनेमोरियो". GitHub. 2021-10-15.
- ↑ Paul, Matthias R.; Frinke, Axel C. (1997-10-13) [first published 1991], FreeKEYB - Enhanced DOS keyboard and console driver (User Manual) (v6.5 ed.)
- ↑ petebernert. "जीसीएम". SourceForge.
- ↑ "Gameboy Emulator for MSX | The New Image". GEM. Retrieved 2014-01-12.
- ↑ "DeSmuME v0.9.9".
- ↑ Publicado por Carlos Ballesteros Velasco (2013-07-28). "Soywiz's PSP Emulator: Release : Soywiz's Psp Emulator 2013-07-28 (r525)". Pspemu.soywiz.com. Retrieved 2014-01-12.
- ↑ Mupen64Plus
- ↑ "SH2".
- ↑ "PPSSPP - PPSSPP - PSP emulator for Android, Windows, Linux, iOS, MacOSX". ppsspp.org. Retrieved 2021-11-17.