संकलक के कार्यान्वयन और संकलक के उत्पादन के बीच कोई आवश्यक संबंध नहीं है। आप पायथन या रूबी जैसी भाषा में एक कंपाइलर लिख सकते हैं, जिसका सबसे आम कार्यान्वयन बहुत धीमा है, और वह कंपाइलर उच्च अनुकूलित मशीन कोड को आउटपुट कर सकता है जो सी को आउटपरफॉर्म करने में सक्षम है। कंपाइलर को चलाने में लंबा समय लगेगा, क्योंकि इसकेकोड धीमी भाषा में लिखा जाता है। (अधिक सटीक होने के लिए, एक भाषा में धीमी गति से कार्यान्वयन के साथ लिखा गया। भाषा वास्तव में तेज या धीमी गति से नहीं होती है, जैसा कि राफेल एक टिप्पणी में इंगित करता है। मैं इस विचार पर विस्तार करता हूं।) संकलित कार्यक्रम उतना ही तेज होगा। स्वयं के कार्यान्वयन की अनुमति है - हम पायथन में एक कंपाइलर लिख सकते हैं जो एक फोरट्रान कंपाइलर के समान मशीन कोड बनाता है, और हमारे संकलित प्रोग्राम फोरट्रान के समान तेज़ होंगे, भले ही उन्हें संकलन करने में लंबा समय लगेगा।
यदि हम एक दुभाषिया के बारे में बात कर रहे हैं तो यह एक अलग कहानी है। दुभाषियों को चलाना पड़ता है जबकि जिस कार्यक्रम की वे व्याख्या कर रहे हैं वह चल रहा है, इसलिए भाषा के बीच एक संबंध है जिसमें दुभाषिया लागू किया जाता है और व्याख्या किए गए कोड का प्रदर्शन होता है। एक व्याख्या की गई भाषा बनाने के लिए कुछ चतुर रनटाइम ऑप्टिमाइज़ेशन लेता है जो इंटरप्रेटर लागू होने वाली भाषा की तुलना में तेज़ी से चलता है, और अंतिम प्रदर्शन इस बात पर निर्भर कर सकता है कि इस तरह के अनुकूलन के लिए कोड का एक टुकड़ा कितना सामान्य है। कई भाषाएं, जैसे कि जावा और सी #, हाइब्रिड मॉडल के साथ रनटाइम का उपयोग करती हैं जो कंपाइलर के कुछ लाभों के साथ दुभाषियों के कुछ लाभों को जोड़ती हैं।
एक ठोस उदाहरण के रूप में, आइए अजगर पर अधिक बारीकी से देखें। पायथन में कई कार्यान्वयन हैं। सबसे आम सीपीथॉन है, जो सी में लिखा गया एक बाईटेकोड दुभाषिया है। पाइपी भी है, जिसे पायथन की एक विशेष बोली में लिखा गया है जिसे आरपीथॉन कहा जाता है, और जो जेवीएम की तरह कुछ हाइब्रिड संकलन मॉडल का उपयोग करता है। अधिकांश बेंचमार्क में PyPy CPython की तुलना में बहुत तेज़ है; यह रनटाइम पर कोड को ऑप्टिमाइज़ करने के लिए सभी प्रकार के अद्भुत ट्रिक्स का उपयोग करता है। हालाँकि, Python भाषा, जो PyPy चलती है , वही Python भाषा है जो CPython चलती है, कुछ अंतरों को छोड़कर जो प्रदर्शन को प्रभावित नहीं करते हैं।
मान लीजिए कि हमने फोर्टन के लिए पायथन भाषा में एक कंपाइलर लिखा। हमारे संकलक GFortran के समान मशीन कोड का उत्पादन करते हैं। अब हम एक फोरट्रान कार्यक्रम संकलित करते हैं। हम अपने कंपाइलर को CPython के ऊपर चला सकते हैं, या हम इसे PyPy पर चला सकते हैं, क्योंकि यह Python में लिखा गया है और ये दोनों कार्यान्वयन समान Python भाषा को चलाते हैं। हम यह जानेंगे कि यदि हम अपने संकलक को CPython पर चलाते हैं, तो उसे PyPy पर चलाते हैं, फिर उसी फ़ोर्ट्रन स्रोत को GFortran के साथ संकलित करते हैं, हम तीनों बार बिल्कुल एक ही मशीन कोड प्राप्त करेंगे, इसलिए संकलित प्रोग्राम हमेशा चलेगा लगभग उसी गति से। हालांकि, उस संकलित कार्यक्रम का उत्पादन करने में लगने वाला समय अलग होगा। CPython को संभवतः PyPy की तुलना में अधिक समय लगेगा, और PyPy को संभवतः GFortran की तुलना में अधिक समय लगेगा, भले ही वे सभी अंत में एक ही मशीन कोड का उत्पादन करेंगे।
जूलिया वेबसाइट की बेंचमार्क टेबल को स्कैन करने से, ऐसा लगता है कि दुभाषियों (पायथन, आर, मैटलैब / ऑक्टेव, जावास्क्रिप्ट) पर चलने वाली भाषाओं में से कोई भी ऐसा नहीं है, जहां वे सी को हराते हों। यह आम तौर पर संगत होती है जो मैं देखने की उम्मीद करता हूं। यद्यपि मैं पायथन के अत्यधिक अनुकूलित Numpy लाइब्रेरी (C और फोरट्रान में लिखित) के साथ लिखे गए कोड की कल्पना कर सकता हूं, समान कोड के कुछ संभावित सी कार्यान्वयन को हरा सकता है। वे भाषाएँ जो C के बराबर या उससे बेहतर हैं उन्हें संकलित किया जा रहा है (फोरट्रान, जूलिया ) या आंशिक संकलन (जावा, और शायद LuaJIT) के साथ एक हाइब्रिड मॉडल का उपयोग कर रहा है। PyPy एक हाइब्रिड मॉडल का भी उपयोग करता है, इसलिए यह पूरी तरह से संभव है कि अगर हम CPython के बजाय PyPy पर समान Python कोड चलाएं, तो हम वास्तव में इसे कुछ बेंचमार्क पर C को हराते हुए देखेंगे।