मुझे लगता है कि कोई भेद किया जाना चाहिए, हालांकि यह "संकलित" और "प्रबंधित" के बीच जरूरी नहीं है। ये विपरीत नहीं हैं; एक भाषा को संकलित और प्रबंधित नहीं किया जा सकता है, या व्याख्या नहीं की जा सकती है (संकलित नहीं) और प्रबंधित, या दोनों, या यहां तक कि न तो।
एक "संकलित" भाषा बस एक है जिसमें एक कदम है जो डेवलपर द्वारा लिखे गए स्रोत कोड को कुछ और नियमित "बाइटकोड" में बदल देता है जिसे मशीन द्वारा निष्पादित किया जाता है। "मशीन" वास्तविक प्रोसेसर हो सकता है, या "वर्चुअल मशीन" हो सकता है जो उन्हें "देशी" मशीन निर्देशों में अनुवाद करने के लिए बाइटकोड पर अतिरिक्त संचालन करता है। एक "संकलित" भाषा के लिए एनटोनियम एक "व्याख्या की गई" भाषा है, जिसमें स्रोत कोड रनटाइम पर बायटेकोड निर्देशों में बदल दिया जाता है, लाइन द्वारा लाइन के रूप में वे निष्पादित होते हैं, एक संकलन कदम के बिना। उनके बीच एक हाइब्रिड "JIT" है, "JIT" (जस्ट इन टाइम) से, जिसे आमतौर पर एक्ज़ीक्यूटिंग मशीन द्वारा एक बार के चरण के रूप में व्याख्या की जाती है;
एक "प्रबंधित" भाषा एक प्रोग्राम है जो एक विशिष्ट रनटाइम वातावरण में खपत होने वाले कार्यक्रमों का उत्पादन करने के लिए डिज़ाइन किया गया है, जिसमें लगभग हमेशा एक बायटेकोड दुभाषिया शामिल होता है; एक "वर्चुअल मशीन" जो प्रोग्राम का कोड लेती है और कुछ अतिरिक्त मशीन या पर्यावरण-विशिष्ट परिवर्तन करती है। वातावरण में स्मृति प्रबंधन भी शामिल हो सकता है, जैसे कि "कचरा संग्रहकर्ता" और अन्य "सुरक्षा" सुविधाओं का अर्थ है अंतरिक्ष और उपकरणों के "सैंडबॉक्स" के भीतर कार्यक्रम का संचालन करना, हालांकि ऐसी विशेषताएं "प्रबंधित" रनटाइम के एकमात्र डोमेन नहीं हैं । वस्तुतः सभी व्याख्या की गई भाषाओं को प्रबंधित किया जा सकता है, क्योंकि उन्हें "उपयोगकर्ता" कोड की तर्ज पर चलाने वाले दुभाषिया की आवश्यकता होती है। इसके अलावा, JVM और .NET भाषाएँ (जावा, स्काला, C #, VB, F #, IronWhatever) को एक मध्यवर्ती भाषा या IL में संकलित किया जाता है, जो सतही रूप से और बाइनरी असेंबली भाषा के फ़ंक्शन के समान है, लेकिन किसी भी "देशी" निर्देश सेट का 100% पालन नहीं करता है। इन निर्देशों को JVM या .NET के CLR द्वारा निष्पादित किया जाता है, जो प्रभावी रूप से मशीन के सीपीयू आर्किटेक्चर और / या ओएस के लिए विशिष्ट देशी द्विआधारी निर्देशों का अनुवाद करता है।
इसलिए, भाषाओं को आम तौर पर "संकलित" या "व्याख्या" के रूप में वर्णित किया जा सकता है, और "अप्रबंधित" (या "मूल") और "प्रबंधित" के रूप में। ऐसी भाषाएं हैं जिन्हें संभव "व्याख्यायित देशी" को छोड़कर इनमें से किसी भी संयोजन के रूप में वर्णित किया जा सकता है (जो केवल हाथ से लिखे हेक्साडेसिमल ऑपकोड के लिए सच होगा, जहां डेवलपर द्वारा लिखित क्या निष्पादित होता है); यदि आप व्याख्या परत को "रनटाइम" के रूप में मानते हैं (जिसके लिए बहस करना आसान है और इसके खिलाफ बहस करना मुश्किल है), तो सभी व्याख्या की गई भाषाओं को "प्रबंधित" किया जाता है।
यदि आप तकनीकी प्राप्त करना चाहते हैं, तो आजकल मल्टीटास्किंग ओएस को लक्षित करने वाले लगभग सभी कार्यक्रम "प्रबंधित" होते हैं; OS चल रहे प्रत्येक प्रोग्राम के लिए एक "वर्चुअल मशीन" बनाएगा, जिसमें प्रोग्राम सोचता है (या कम से कम उसे अन्यथा नहीं जानना है) कि यह केवल चल रही चीज है। कोड स्वयं के भीतर और अन्य संदर्भित पुस्तकालयों में कॉल कर सकता है जैसे कि वह कार्यक्रम केवल मेमोरी में भरी हुई चीज थी; इसी तरह, डेटा और नियंत्रण उपकरणों को स्टोर करने और हेरफेर करने के लिए रैम और अन्य उच्चतर मेमोरी आवंटित करने के लिए कॉल को कोडित किया जाता है जैसे कि संपूर्ण मेमोरी आर्किटेक्चर उपलब्ध था। वीएम (और इसके पीछे का ओएस) तब विभिन्न मेमोरी पॉइंटर्स को प्रोग्राम के वास्तविक स्थान, उसके डेटा, और डिवाइस ड्राइवरों को हुक आदि में अनुवाद करता है। यह अक्सर मेमोरी ऑफसेट को लागू करके किया जाता है (प्रत्येक वीएम को 2 जीबी का एक ब्लॉक मिलता है। या जो भी स्मृति, पता X पर शुरू करना, जो कार्यक्रम को मान सकता है जैसे कि X पता 0 था) और ऐसा करने के लिए बहुत सस्ता है, लेकिन अन्य चीजें हैं जो ओएस कर्नेल के लिए जिम्मेदार हैं, जैसे कि प्रक्रिया निर्धारण और अंतर-प्रक्रिया संचार, जो हैं प्रबंधन करने के लिए मुश्किल। हालांकि, इस मूल पैटर्न को आमतौर पर "प्रबंधित" नहीं माना जाता है, क्योंकि कार्यक्रम को यह जानने की जरूरत नहीं है कि यह एक वर्चुअल मशीन द्वारा चलाया जा रहा है और अक्सर अपनी आवंटित मेमोरी को "साफ" रखने के लिए जिम्मेदार है। एक प्रोग्राम जिसे MS-DOS कमांड लाइन पर चलाने के लिए डिज़ाइन किया गया था, उसे नए विंडोज OS पर चलाया जा सकता है, जिसमें MS-DOS का वातावरण भी उनके नीचे नहीं है; कार्यक्रम को इसके बजाय "वर्चुअल कंसोल" वातावरण दिया गया है, और बशर्ते यह "सैंडबॉक्स" छोड़ने की कोशिश न करे