आप जिस धारणा की तलाश कर रहे हैं उसे अभिव्यक्ति कहा जाता है और माथियास फेलेसेन की गणितीय रूप से कठोर परिभाषा है:
" प्रोग्रामिंग भाषाओं की अभिव्यंजक शक्ति पर "
www.ccs.neu.edu/scheme/pubs/scp91-felleisen.ps.gz (पोस्टस्क्रिप्ट)
इस विचार के पीछे अंतर्ज्ञान यह है कि यदि आपके पास दो अलग-अलग भाषाओं में दो समान कार्यक्रम हैं - कहते हैं, प्रोग्राम ए में भाषा X में और प्रोग्राम Y में भाषा Y-- और यदि आप A में स्थानीय परिवर्तन करते हैं, तो B के लिए वैश्विक परिवर्तन की आवश्यकता होती है , तब X, Y से अधिक अभिव्यंजक है।
एक उदाहरण Felleisen प्रदान करता है असाइनमेंट: योजना प्रोग्रामिंग भाषाओं में आप असाइनमेंट ऑपरेटर को निकाल सकते हैं और अभी भी ट्यूरिंग पूरी भाषा है। हालांकि, इस तरह की प्रतिबंधित भाषा में, एक ऐसी सुविधा को जोड़ना, जिसे स्थानीयकृत किया जाएगा यदि असाइनमेंट की अनुमति दी गई थी, तो असाइनमेंट के साथ कार्यक्रम में वैश्विक परिवर्तन की आवश्यकता होगी।
मेरी चर्चा ने कुछ विवरणों को सरल बना दिया है, और आपको पूर्ण खाते के लिए कागज को स्वयं पढ़ना चाहिए।
अपने अन्य प्रश्न का उत्तर देने के लिए: आप कह सकते हैं कि जावा असेंबली की तुलना में अधिक अभिव्यंजक है क्योंकि आप अपने जावा प्रोग्राम में एक नया वर्ग जोड़ सकते हैं, और फिर अपने कार्यक्रम के अन्य हिस्सों को वैश्विक संशोधन के बिना अपने तरीकों से कॉल करके बहुरूपता का लाभ प्राप्त कर सकते हैं। एक्सेप्शन हैंडलिंग एक और उदाहरण है जहां जावा असेंबली की तुलना में अधिक अभिव्यंजक है: throw
स्टैक पर नियंत्रण स्थानांतरित करने के लिए आपको बस एक स्टेटमेंट लिखने की आवश्यकता है । अधिक प्राथमिक स्तर पर, आप एक case
शुरुआत के पास एक नया बयान भी जोड़ सकते हैं switch
और आपको हाथ से किसी भी कूदने वाले ऑफसेट को फिर से शुरू करने के बारे में चिंता करने की आवश्यकता नहीं होगी।