जैसे कोड के लिए A = A + B
, जो एक या दो मशीन निर्देशों को संकलित कर सकता है, प्रत्येक एक निश्चित संख्या में चक्र ले सकता है। कोई भी दुभाषिया एक साधारण कारण के लिए चक्रों की संख्या में एक ही काम नहीं कर सकता है।
दुभाषिया अपने स्वयं के एक निर्देश सेट को भी निष्पादित करता है (उन्हें बाइट-कोड, पी-कोड, मध्यवर्ती भाषा, जो भी कहे)। हर बार जब वह ADD की तरह बाइट-कोड देखता है, तो उसे किसी तरह देखना होता है और उस कोड को ब्रांच करना पड़ता है जो एडिशन करता है।
अगले समय यह देखता है, यह करने के लिए है दोहराने कि देखने, जब तक कि यह पहले देखने को याद करने के लिए एक रास्ता है। यदि इसके पास पूर्व लुकअप को याद रखने का एक तरीका है, तो यह अब वह नहीं है जिसे हम "इंटरप्रेटर" कहते हैं, बल्कि एक टाइम-इन-कंपाइलर या जेटर भी है।
दूसरी ओर...
जैसे कोड के लिए callSomeFunction( ... some args ...)
, उस कोड को दर्ज करने और छोड़ने के बीच कितने चक्र खर्च होते हैं? यह सब इस बात पर निर्भर करता है कि अंदर क्या होता है callSomeFunction
। यह कुछ ही हो सकता है, और यह अरबों हो सकता है, भले callSomeFunction
ही खुद को संकलित किया जाए। यदि यह बहुत है, तो उस कोड की व्याख्या लागत पर बहस करने का कोई मतलब नहीं है - पैसा कहीं और है।
याद रखें व्याख्या की गई भाषाओं का अपना मूल्य होता है, जैसे कि, उन्हें संकलित करने की आवश्यकता नहीं है। (बाइट कोड के लिए सतह सिंटैक्स का "संकलन" तुच्छ समय लेता है। उदाहरण के लिए, R या MATLAB को लें।)
इसके अलावा, प्रोग्रामिंग के बुद्धिमान स्तरों के लिए आवश्यक लचीलापन है। Minsky's Society of Mind , Chapter 6.4 B -Brains में, ए प्रोग्राम हैं जो दुनिया से निपटते हैं, और बी प्रोग्राम हैं जो ए प्रोग्राम से निपटते हैं, और आगे के स्तर हो सकते हैं। अन्य कार्यक्रमों को लिखने और प्रबंधित करने वाले प्रोग्राम व्याख्यात्मक प्रणालियों में अधिक आसानी से किए जा सकते हैं।
लिस्प में, आप (+ A B)
ए और बी को जोड़ने के लिए लिख सकते हैं , लेकिन एक बार यह लिखे जाने के बाद आपके पास इसे चलाने का विकल्प है या नहीं। आप यह भी लिख सकते हैं (eval (list '+ 'A 'B))
जो प्रोग्राम का निर्माण करता है और फिर उसे निष्पादित करता है। यह कुछ अलग निर्माण कर सकता है।
कार्यक्रम का विषय एक और कार्यक्रम है । व्याख्यात्मक भाषा में लिखना आसान है (हालांकि, जैसा कि जार्ग बताते हैं, लिस्प के नए संस्करण, जबकि उनके पास eval
संकलन-ऑन-द-फ्लाई है, इसलिए उन्हें व्याख्या करने की गति का दंड नहीं है)।