गतिशील पुनर्संकलन

कंप्यूटर विज्ञान एक गतिशील पुनर्संकलन(रीकंपलर),अनुकरणकर्ताओं और आभासी मशीनो की एक विशेषता है, जो प्रणाली निष्पादन के दौरान कंप्यूटर कूट भाषा के कुछ भाग को संकलित करता है। निष्पादन के दौरान संकलन करके सिस्टम प्रोग्राम के कार्यावधि वातावरण को प्रतिबिंबित करने के लिए उत्पन्न किए गए कोड को तैयार कर सकता है,और संभावित रूप से एक पारंपरिक स्थिर संकलक के लिए उपलब्ध जानकारी को प्राप्त करके अधिक कुशल कोड का उत्पादन करता है।

उपयोग करता है
कार्यावधि पर आर्किटेक्चर के बीच मशीन कोड को परिवर्तित करने के लिए अधिकांश गतिशील पुनर्संकलन(रीकंपलर) का उपयोग किया जाता है। लीगेसी गेमिंग प्लेटफॉर्म के अनुकरण में यह एक ऐसा कार्य है जिसकी अक्सर आवश्यकता होती है। अन्य मामलों में, जावा (प्रोग्रामिंग भाषा) या सामान्य भाषा क्रम बायटेकोड जैसे पोर्टेबल प्रोग्राम प्रतिनिधित्व को निष्पादित करने के लिए एक अनुकूलन विधि के भाग के रूप में गतिशील पुनर्संकलन(रीकंपलर) को नियोजित कर सकता है। फुल-स्पीड डिबगर्स गतिशील पुनर्संकलन(रीकंपलर) का भी उपयोग करते हैं ताकि अधिकांश अनुकूलन तकनीक में खर्च किए गए ओवरहेड को कम किया जा सके और इसके गतिक थ्रेड माइग्रेशन जैसी अन्य विशेषताएं भी है |

कार्य
गतिशील पुनर्संकलक(रीकंपलर) को जिन मुख्य कार्यों को करना होता है, वे हैं:
 * सोर्स प्लेटफॉर्म से मशीन कोड में पढ़ना
 * लक्ष्य प्लेटफॉर्म के लिए एमिटिंग मशीन कोड

एक गतिशील पुनर्संकलन(रीकंपलर) कुछ सहायक कार्य भी कर सकता है:
 * पुनःसंकलित किय गये कोड के कैश (कंप्यूटिंग) को प्रबंध करना
 * चक्र गणना रजिस्टर के साथ बीते हुए चक्र की गिनती को प्लेटफॉर्म पर अपडेट करना
 * व्यवधान(इंटरप्ट) जाँच का प्रबंधन
 * हार्डवेयर के वास्तविक सपोर्ट के लिए एक इंटरफेस प्रदान करना, उदाहरण के लिए एक जीपीयू
 * लक्ष्य हार्डवेयर पर कुशलतापूर्वक चलाने के लिए उच्च-स्तरीय कोड संरचनाओं का अनुकूलन (नीचे देखें)

अनुप्रयोग

 * कई जावा आभासी मशीनों में गतिशील पुनर्संकलक(रीकंपलर) की सुविधा होती है
 * एक्स86 पर मैक ओएस एक्स के लिए एप्प्ल का रोसेटा (सॉफ्टवेयर), पावरपीसी कूट भाषा को एक्स86 आर्किटेक्चर पर चलाने की अनुमति देता है।
 * मैक 68K एमुलेटर के बाद के संस्करणों का उपयोग क्लासिक मैक ओएस में पावरपीसी हार्डवेयर पर 680x0 कूट भाषा चलाने के लिए किया गया।
 * साइको, पायथन (प्रोग्रामिंग भाषा) के लिए एक विशेष संकलक है ।
 * एचपी डायनेमो परियोजना, एक पारदर्शी बाइनरी गतिशील संकलक अनुकूलन का एक उदाहरण है।
 * डायनेमो रियो, डायनेमो का एक ओपन-सोर्स है जो एआरएम, x86-64 और IA-64 (इटेनियम) निर्देश सेट के साथ काम करता है।


 * Vx32 वर्चुअल मशीन सुरक्षित एप्लिकेशन प्लगइन्स के लिए OS-स्वतंत्र x86 आर्किटेक्चर सैंडबॉक्स बनाने के लिए गतिशील पुनर्संकलक(रीकंपलर) को नियोजित करती है।
 * मैक के लिए माइक्रोसॉफ्ट वर्चुअल पीसी, पावरपीसी पर एक्स86 कूट भाषा चलाने के लिए प्रयोग किया जाता है।
 * फ्री कीब, एक अंतरराष्ट्रीय डॉस कीबोर्ड और कंसोल संचालक है जिसमें कई प्रयोज्य संवर्द्धन के साथ स्वयं-संशोधित कूट भाषा और गतिशील मृत कूट भाषा उन्मूलन का उपयोग किया गया है ताकि इसके उपयोगकर्ता विन्यास (चयनित सुविधाओं, भाषाओं, अभिविन्यास ) और वास्तविक क्रम पर्यावरण (ओएस) के आधार पर इसकी इन-मेमोरी छवि को कम किया जा सके। संस्करण और संस्करण, लोड किए गए संचालक,अंतर्निहित धातु सामग्री), स्वचालित रूप से निर्भरता को हल करना, बाइट-स्तरीय कणिकता पर कूट भाषा अनुभागों को गतिशील रूप से स्थानांतरित करना और पुनर्संयोजित करना और स्रोत कूट भाषा में प्रदान की गई अर्थ-संबंधी जानकारी के आधार पर अनुकूलन, सभा और रूपरेखा जानकारी के दौरान विशेष उपकरणों द्वारा उत्पन्न स्थानांतरण जानकारी लोड समय पर प्राप्त किया।
 * Xbox 360 (यानी मूल Xbox (कंसोल) के लिए लिखे गए चल रहे गेम) की पश्चगामी संगतता कार्यक्षमता को व्यापक रूप से गतिशील पुनर्संकलन का उपयोग करने के लिए माना जाता है।
 * Apple सिलिकॉन के लिए Apple का रोसेटा 2, x86-64-आधारित प्रोसेसर के लिए संकलित कई अनुप्रयोगों को Apple सिलिकॉन पर निष्पादन के लिए अनुवादित करने की अनुमति देता है।

एम्युलेटर्स

 * पीसीएसएक्स2,

एमुलेटर

 * एक प्लेस्टेशन 2 एमुलेटर, में एक पुनर्संकलक है जिसे माइक्रो वीयू कहा जाता है, जो सुपरवीयू का उत्तराधिकारी है।
 * जीसीईएमयू, एक खेल घन एमुलेटर है।
 * रत्न,
 * जेम, [7] एमएसए के लिए एक गेम बॉय इम्यूलेटर एक ऑप्टिमाइजिंग गतिशील रीकंपलर का उपयोग करता है।
 * डीएसएमयूएमई, एक निंटेंडो डी एस एमुलेटर, एक डायनारेक विकल्प है |
 * सोयविज़ का पीएसपी, एक प्लेस्टेशन पोर्टेबल इम्यूलेटर, एक डायनारेक विकल्प है।
 * मुपेन 64 प्लस, एक मल्टी-प्लेटफ़ॉर्म निन्टेंडो 64 एमुलेटर है।
 * Yabause, एक बहु-मंच अब शनि एमुलेटर है।
 * पीपीएसएसपीपी, एक बहु-मंच प्लेस्टेशन पोर्टेबल इम्यूलेटर, डिफ़ॉल्ट रूप से समय-समय पर संकलन गतिशील रीकंपलर का उपयोग करता है।

यह भी देखें

 * बाइनरी रीकंपाइलर
 * बाइनरी अनुवाद
 * प्लेटफॉर्म वर्चुअलाइजेशन सॉफ्टवेयर की तुलना
 * अभी-अभी संकलन
 * इंस्ट्रुमेंटेशन (कंप्यूटर प्रोग्रामिंग)

बाहरी संबंध

 * Dynamic recompiler tutorial
 * Blog posts about writing a MIPS to PPC dynamic recompiler