क्या "अर्थपूर्ण" का क्या मतलब है जब प्रोग्रामिंग भाषाओं की चर्चा करते हुए?

वोट
56

मैं इस शब्द की तरह जावास्क्रिप्ट एक बहुत अर्थपूर्ण भाषा है वाक्यों में एक बहुत सुना है। यह सिर्फ मतलब यह है वहाँ नियमों का एक बहुत नहीं हैं, या करता है अर्थपूर्ण एक अधिक विशिष्ट अर्थ है?

12/03/2009 को 15:32
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


7 जवाब

वोट
50

'अभिव्यंजक' का अर्थ है कि यह कोड, समझने में आसान है कि दोनों संकलक के लिए और एक मानव पाठक के लिए लिखने के लिए आसान है।

कि अभिव्यक्ति के लिए बनाने के दो कारक:

  • सहज पठनीय निर्माणों
  • बॉयलरप्लेट कोड की कमी

तुलना इस अर्थपूर्ण ग्रूवी, कम अर्थपूर्ण जावा eqivalent साथ:

3.times {
   println 'Hip hip hooray'
}

बनाम

for(int i=0; i<3; i++) {
    System.out.println("Hip hip hooray");
}

कभी-कभी आप अभिव्यक्ति के लिए सटीक व्यापार - ग्रूवी उदाहरण काम करता है क्योंकि यह सामान मानता जावा आप स्पष्ट रूप से निर्दिष्ट करने के लिए बनाता है।

12/03/2009 को 15:41
का स्रोत उपयोगकर्ता

वोट
14

मैं इसे ले मतलब है कि यह करने में सक्षम है व्यक्त पढ़ने में आसान करने के लिए और संक्षिप्त तरीके से विचारों / एल्गोरिदम / कार्य।

आम तौर पर मैं एक भाषा वाक्यात्मक चीनी के साथ अर्थपूर्ण जा रहा है सहयोगी, हालांकि कि हमेशा ऐसा नहीं है। यह होगा अर्थपूर्ण होने के सी # में उदाहरण:

  • foreach (के बजाय स्पष्ट रूप से यात्रा लेखन)
  • usingबयान (के बजाय स्पष्ट रूप से लिखने की कोशिश / अंत में)
  • क्वेरी भाव (लेखन LINQ प्रश्नों के लिए सरल वाक्य रचना)
  • विस्तार तरीकों (विधि कॉल की श्रंखला अनुमति देता है, फिर LINQ के लिए मुख्य रूप से)
  • गुमनाम तरीके और लैम्ब्डा भाव (आसान प्रतिनिधि और अभिव्यक्ति पेड़ निर्माण की अनुमति)

एक अलग उदाहरण जेनरिक होगा: पहले सी # जेनरिक मिला है, आप में से "एक विचार व्यक्त नहीं कर सकता ArrayListकोड में युक्त केवल तार"। (आप इसे दस्तावेज़ सकता है, ज़ाहिर है, या अपने खुद के बारे में StringListप्रकार है, लेकिन यह काफी एक ही नहीं है।)

12/03/2009 को 15:36
का स्रोत उपयोगकर्ता

वोट
10

नील grafter एक ब्लॉग है इस विषय पर इसे से एक अच्छा उद्धरण के साथ ...

मेरे मन में, एक भाषा निर्माण अर्थपूर्ण अगर यह आपको लिखने के लिए (और का उपयोग करें) एक API कि लिखा नहीं किया जा सकता है (और प्रयोग किया जाता) निर्माण के बिना सक्षम बनाता है।

मैं कहेंगे इसका मतलब है कि आप और अधिक स्वाभाविक रूप से कोड में अपने विचार व्यक्त कर सकते हैं।

12/03/2009 को 15:37
का स्रोत उपयोगकर्ता

वोट
4

वह काफी मुश्किल है।

मेरे लिए, यह आसानी जिस पर आप अपने इरादे को व्यक्त कर सकते से कोई लेना देना नहीं है। यह अलग अलग भाषाओं में अलग है, और यह भी कि आप क्या करना चाहते हैं पर बहुत कुछ निर्भर करता है, तो यह एक ऐसा क्षेत्र है जहां सामान्यीकरण आम हो रहा है। यह भी व्यक्तिपरक और व्यक्तिगत ज़ाहिर है, है।

यह लगता है कि एक और अधिक उच्च स्तरीय भाषा हमेशा अधिक अर्थपूर्ण है आसान है, लेकिन मुझे नहीं लगता है कि सच है है। यह क्या आप समस्या डोमेन पर IE व्यक्त करने के लिए कोशिश कर रहे हैं, पर निर्भर करता है।

आप द्विआधारी पैटर्न है कि फ्लोटिंग प्वाइंट संख्या मुद्रित करने के लिए चाहता है तो 0xdeadbeef, कि अब तक बैश की तुलना में सी में करने के लिए, उदाहरण के लिए आसान है। फिर भी बैश सी, एक अति उच्च स्तर की भाषा की तुलना में, है। दूसरी ओर, यदि आप एक कार्यक्रम चलाने के लिए और एक पाठ फ़ाइल में इसके उत्पादन एकत्र करना चाहते हैं, कि इतना आसान यह बैश में लगभग अदृश्य है, अभी तक कम से कम एक सी में कोड की पृष्ठ (एक POSIX पर्यावरण कल्पना करते हुए) की आवश्यकता होगी है।

12/03/2009 को 15:39
का स्रोत उपयोगकर्ता

12/03/2009 को 15:36
का स्रोत उपयोगकर्ता

वोट
2

इधर, एक बहुत ही विवादास्पद तुलना:

http://redmonk.com/dberkholz/2013/03/25/programming-languages-ranked-by-expressiveness/

तो, इन मीट्रिक द्वारा सबसे अच्छा भाषाओं क्या हैं?

आप शीर्ष 10 मंझला द्वारा और IQR द्वारा रैंकिंग के आधार पर चुनते हैं तो फिर उन्हें के चौराहे लेते हैं, यहाँ क्या बचा है। मंझला और IQR नाम के तुरंत बाद सूचीबद्ध हैं:

Augeas (48, 28): विन्यास फाइल के लिए एक डोमेन विशिष्ट भाषाओं

कठपुतली (52, 65): विन्यास REBOL (57, 47) के लिए एक और डीएसएल: वितरित अभिकलन के लिए बनाया गया एक भाषा

चुनाव आयोग (75, 75): Ecere सी, वस्तु उन्मुखीकरण के साथ एक सी व्युत्पन्न

CoffeeScript (100, 23): एक उच्च स्तर की भाषा है कि जावास्क्रिप्ट को transcompiles

Clojure (101,51): कार्यात्मक, समवर्ती प्रोग्रामिंग के लिए एक लिस्प बोली

वाला (123, 61): एक वस्तु उन्मुख सूक्ति द्वारा प्रयुक्त भाषा

हास्केल (127, 71): एक पूरी तरह कार्यात्मक, संकलित मजबूत स्थिर टाइपिंग के साथ भाषा

21/10/2014 को 15:39
का स्रोत उपयोगकर्ता

वोट
1

हो सकता है कि इस साइट http://gafter.blogspot.com/2007/03/on-expressive-power-of-programming.html आप मदद कर सकते हैं

संक्षेप में वे कहते हैं : मेरे मन में, एक भाषा निर्माण है अर्थपूर्ण अगर यह आपको लिखने के लिए (और का उपयोग करें) एक API कि लिखा नहीं किया जा सकता है (और प्रयोग किया जाता) निर्माण के बिना सक्षम बनाता है। जावा प्रस्तावित विस्तार के लिए भाषा क्लोजर के संदर्भ में, नियंत्रण अमूर्त एपीआई बात की तरह है कि प्रतिस्पर्धा प्रस्तावों द्वारा समर्थित होने की नहीं है लग रहे हैं।

12/03/2009 को 15:38
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more