एक्सप्रेसिव पावर को विकिपीडिया द्वारा परिभाषित किया गया है:
आइए उस पेज को फिर से पढ़ें। ध्यान देने वाली पहली चीजों में से एक यह है कि यह "भाषा" कहती है, न कि "प्रोग्रामिंग भाषा", और इसके अधिकांश उदाहरण प्रोग्रामिंग भाषा नहीं हैं, उदाहरण के लिए दिया गया पहला उदाहरण OWL2 EL और OWL2 RL की तुलना है, जो दोनों ही मनोविज्ञान है भाषाओं।
कोई भी प्रोग्रामिंग भाषाओं में अवधारणा को लागू कर सकता है, लेकिन पैटर्न-मिलान वाले लैंगग्यूज, मार्कअप लैंग्वेज, क्वेरी लैंग्वेज, विजुअल स्टाइलशीट लैंगगेज, रेग्युलर एक्सप्रेशंस (और वे सभी रेगुलर लैंग्वेजेस जिन्हें वे कहते हैं) और भी। यहां तक कि अंग्रेजी जैसी प्राकृतिक भाषाओं की अभिव्यंजक शक्ति का भी उल्लेख किया जा सकता है, जो अक्सर अनौपचारिक रूप से किया जाता है, लेकिन प्राकृतिक भाषा प्रसंस्करण से संबंधित समस्याओं पर विचार करते समय अधिक गंभीरता के साथ।
क्या "विचार" चीजों (संचालन, संरचना, एल्गोरिदम, आदि) को संदर्भित करता है? हम मशीन से संवाद कर सकते हैं? या क्या यह "मानव" अवधारणाओं को संदर्भित करता है जिन्हें अन्य मनुष्यों को भाषा के साथ पकड़ा और संचार किया जा सकता है?
यह संदर्भित करता है कि उस भाषा में क्या व्यक्त किया जा सकता है, विशुद्ध रूप से अपने आप में एक चीज के रूप में माना जाता है।
उदाहरण के लिए, (मैं अपने उदाहरणों के लिए पूरे जावास्क्रिप्ट का उपयोग करूँगा, क्योंकि आपका प्रश्न इंगित करता है कि इसकी एक भाषा जिसे आप जानते हैं) जावास्क्रिप्ट कथन पर विचार करें:
var x = 3 + 4;
यह दर्शाता है कि 3 और 4 के मूल्य योग की गणना की गई है और x
किसी दिए गए नाम स्थान के दायरे में एक लेबल के साथ जुड़े मूल्य ।
अगर हमने दुनिया के सभी कंप्यूटरों को नष्ट कर दिया और उस कोड को कागज के एक टुकड़े पर लिखा, तो यह रहेगा कि जावास्क्रिप्ट में यह अभी भी वही अर्थ रखता है; हम किसी भी चीज़ पर इस तरह का कोड नहीं चला पाएंगे, लेकिन भाषा की अमूर्त परिभाषा अभी भी कुछ ऐसी है जिसके बारे में हम बात कर सकते हैं।
यह पांडित्यपूर्ण लग सकता है, लेकिन यह वास्तव में काफी महत्वपूर्ण है कि भाषाएं ऐसी चीजें हैं जिनके बारे में वास्तविक कंप्यूटर के विचार के बिना अमूर्त में तर्क दिया जा सकता है। एक बात के लिए, कंप्यूटर भाषाओं के सैद्धांतिक बिंदुओं के बारे में तर्क करने वाले लोग, जो व्यवहार में अभी तक संभव नहीं थे, उन चीजों में से एक है जो हमें आज हम कहाँ हैं; कंप्यूटर को कंप्यूटर विज्ञान की आवश्यकता है, लेकिन कंप्यूटर विज्ञान को कंप्यूटर की आवश्यकता नहीं है, बस एक संगणना का विचार है।
बेशक, हम वास्तविक दुनिया में कंप्यूटर का उपयोग करते हैं, और इन दिनों सिद्धांत में चर्चा करने वाले कुछ विशेषज्ञों के बजाय अभ्यास में उनका उपयोग करने वाले बहुत से लोग हैं। आपके द्वारा लिंक किया गया पृष्ठ:
अर्थपूर्ण शक्ति शब्द का प्रयोग अर्थ की सीमा के साथ किया जा सकता है। इसका मतलब उस भाषा में व्यक्त विचारों का माप हो सकता है:
पहला अर्थ गणित और तर्क के क्षेत्रों पर हावी है जो भाषाओं के औपचारिक विवरण और उनके अर्थ, जैसे औपचारिक भाषा सिद्धांत, गणितीय तर्क और प्रक्रिया बीजगणित से संबंधित है।
अनौपचारिक चर्चा में, शब्द का अर्थ अक्सर दूसरे अर्थ या दोनों के लिए होता है। प्रोग्रामिंग भाषाओं पर चर्चा करते समय अक्सर ऐसा होता है। शब्द के इन अनौपचारिक उपयोगों को औपचारिक रूप देने के प्रयास किए गए हैं
शब्द के इन दो उपयोगों में से, पहला व्यावहारिक प्रभाव पूरी तरह से संबंधित है से कंप्यूटर से अवगत कराया जा सकता है।
दूसरा पठन और लेखन दोनों में मानवीय समझ से अधिक संबंधित है, हालांकि यह जिस हद तक ऐसा करता है, उपयोग के बीच बहुत भिन्न होता है, क्योंकि वे अनौपचारिक हैं और जैसे कि कठोरता से परिभाषित नहीं हैं।
उदाहरण के लिए, यदि हमने जावास्क्रिप्ट की तरह एक भाषा ली और चर नामों पर एक अजीब प्रतिबंध लगा दिया, जैसे कि चर को अंडरस्कोर से पहले 8-अंकीय संख्या होना चाहिए, तो मिलान करना /^_[0-9]{8}$/
, क्या हम अभिव्यंजक शक्ति खो देंगे?
औपचारिक परिभाषा के अनुसार, हमने कोई अभिव्यंजक शक्ति नहीं खोई है: हम 100,000,000 चर तक ही सीमित हैं, लेकिन अगर हमें वास्तव में जरूरत है तो हम नए बनाए गए नाम स्थान के भीतर अधिक चर रखने के लिए ऑब्जेक्ट बनाकर इसके आसपास प्राप्त कर सकते हैं। जैसा कि आज जावास्क्रिप्ट में लिखा गया कोई भी कार्यक्रम इस नए रूप में फिर से लिखा जा सकता है, इसलिए वे समान रूप से अभिव्यंजक हैं।
अनौपचारिक परिभाषा के अनुसार, हमने कुछ खो दिया है, लेकिन अभी हम कितना अनौपचारिक हैं, इस पर निर्भर करता है, जो कि भिन्न होगा क्योंकि फिर से आप यह नहीं कह सकते कि अनौपचारिक उपयोग के बारे में "नियम" क्या है। हम कह सकते हैं कि हमने एक छोटी राशि खो दी है, क्योंकि एक ही नामस्थान में 100,000,000 से अधिक चर वाले कार्यक्रमों को एक साधारण प्रतिस्थापन से आगे फिर से लिखना पड़ता है। एक और भी अनौपचारिक उपयोग फिर से मानव व्यापक पर ऐसे अस्पष्ट चर नामों के मानसिक प्रभाव को संदर्भित करेगा।
यह भी ध्यान देने योग्य है कि लोग अनौपचारिक रूप से करेंगे उन चीजों पर विचार जो भाषा का कड़ाई से हिस्सा नहीं हैं। आज तक इसके निर्माण से जावास्क्रिप्ट में परिवर्तन पर विचार करें।
सबसे औपचारिक परिभाषा से, अभिव्यंजना में बहुत अपरिवर्तित रहा है; यह सब के बाद शुरू करने के लिए पूरा हो गया था।
अधिक अनौपचारिक परिभाषा के अनुसार, यह कुछ चीजों में बहुत अधिक अभिव्यंजक हो गया है जैसे कि सरणी में हेरफेर, अपवाद से निपटने और (शायद सबसे अधिक) नियमित अभिव्यक्तियों के समावेश में। ये कुछ भी ऐसा नहीं करते हैं जो पहले जावास्क्रिप्ट में नहीं किया जा सकता था, हालांकि वे अक्सर कुछ लाइनों और एक सबसिंड निष्पादन समय में कुछ कर सकते हैं जो कि किलोबाइट्स को जावास्क्रिप्ट 1.0 में लिखने के लिए और चलाने के लिए एक लंबा समय लगेगा।
फिर से बहुत अधिक अनौपचारिक परिभाषा द्वारा, जावास्क्रिप्ट के ब्राउज़र में पहले उपयोग से परिवर्तन (फॉर्म इनपुट के मूल्यों को बदलने में सक्षम) document.write
जबकि पृष्ठ को पहले पार्स किया जा रहा है और एक नए स्थान पर चला जाता है या इतिहास में वापस या आगे बढ़ जाता है, लेकिन बहुत सुंदर है) आज के लिए इतना कुछ नहीं) (सर्वर कॉल से डेटा के आधार पर पृष्ठ पर किसी भी चीज़ को बदलने में सक्षम) पूरी तरह से अपार है, हालांकि यह अधिकांश जावास्क्रिप्ट से संबंधित नहीं है, लेकिन ऑब्जेक्ट मॉडल और एपीआई से बना है भाषा के बजाय उपलब्ध (जैसे IE में vbscript समान रूप से उन परिवर्तनों से लाभान्वित)।
मेरे दिमाग में, वह अंतिम उपयोग इतना अनौपचारिक है कि वास्तव में सही नहीं होना चाहिए, लेकिन यह अनौपचारिक परिभाषाओं के साथ समस्या है।
औपचारिक अवज्ञा से, यह वास्तव में अधिक अभिव्यंजक नहीं है।