यह निर्धारित करने के लिए कि कोई प्रोग्रामिंग भाषा वर्बोज़ है या ट्रिक?


17

प्रोग्रामिंग लैंग्वेज को अक्सर वर्बोज़ या ट्रिक के रूप में वर्णित किया जा सकता है ।

मेरी समझ से, एक क्रिया भाषा को पढ़ना और समझना आसान है, जबकि एक कठिन भाषा संक्षिप्त और साफ-सुथरी है, लेकिन पढ़ने में अधिक कठिन है। क्या परिभाषाओं पर विचार करने के लिए अन्य चीजें होनी चाहिए?

ऐसा लगता है कि आज की अधिकांश लोकप्रिय प्रोग्रामिंग भाषाएं क्रियात्मक हैं, और ये शब्द दो शब्दों का उपयोग केवल एक भाषा का वर्णन करने के लिए किया जाता है, जो किसी अन्य भाषा की तुलना में कम या ज्यादा है।

हम कैसे निर्धारित करते हैं कि एक प्रोग्रामिंग भाषा अधिक क्रिया / दूसरे पर निर्भर है?

उदाहरण: क्या जावा की तुलना में C # अधिक क्रिया है?

जवाबों:


30

मेरी समझ से, एक क्रिया भाषा को पढ़ना और समझना आसान है, जबकि एक कठिन भाषा संक्षिप्त और साफ-सुथरी है, लेकिन पढ़ने में अधिक कठिन है।

यह गलत है। Verbose का अर्थ है बहुत सारे प्रतीक। ट्रिक का अर्थ है कम प्रतीक।

यह पढ़ने में आसानी या समझने में आसानी से कोई लेना- देना नहीं है।

कुछ लोगों को वर्बोस COBOL पढ़ने में आसान लगता है, दूसरे इसे भ्रामक पाते हैं क्योंकि इतने कम करने के लिए बहुत सारे प्रतीकों की आवश्यकता होती है।

कुछ लोगों को I / J / K और APL पढ़ने में आसानी होती है क्योंकि प्रोग्राम बहुत छोटा है। दूसरों को पढ़ने में मुश्किल होती है क्योंकि प्रतीक अस्पष्ट हैं।

Terse / Verbose का पढ़ने या समझने में आसान के साथ कोई संबंध नहीं है।

क्या परिभाषाओं पर विचार करने के लिए अन्य चीजें होनी चाहिए?

नहीं। पद और क्रिया की परिभाषाएँ ठीक हैं।

यह महत्वपूर्ण है कि इन परिभाषाओं का "पढ़ने और समझने में आसान" से कोई लेना-देना नहीं है

ऐसा लगता है कि आज की अधिकांश लोकप्रिय प्रोग्रामिंग भाषाएं क्रियात्मक हैं।

वास्तव में?

हम कैसे निर्धारित करते हैं कि एक प्रोग्रामिंग भाषा अधिक क्रिया / दूसरे पर निर्भर है?

कुछ करने के लिए टोकन गिनें।

Add 2 TO A GIVING B.

7 टोकन

b = a + 2;

6 टोकन

http://dictionary.reference.com/browse/verbose

http://dictionary.reference.com/browse/terse


5
+1 के लिए "Terse / Verbose का पढ़ने या समझने में आसान के साथ कोई संबंध नहीं है।" मैं हमेशा गणितीय संकेतन के बारे में सोचता हूं, जो जब ठीक से किया जाता है, तो उल्लेखनीय रूप से घना होता है, फिर भी अपेक्षाकृत पठनीय होता है।
फ्रैंक शीयर

5
@sunpech: यही अंग्रेजी के शब्दों का अर्थ है। "क्रिया" का अर्थ बहुत सारे शब्द हैं। "terse" का अर्थ है कम शब्द। पठनीयता से कोई लेना-देना नहीं। बस शब्द मायने रखता है। मैंने जो कुछ किया वह "शब्द" को "टोकन" से बदल दिया गया। यह सिर्फ अंग्रेजी है, कुछ खास नहीं।
S.Lott

1
हम टोकन की लंबाई पर भी विचार कर सकते हैं। आम लिस्प चिंताजनक लगता है क्योंकि बहुत सारे कीवर्ड लंबे होते हैं, और यह भी COBOL की क्रियाशीलता को जोड़ता है।
डेविड थॉर्नले

1
@ फ्रेंक शीयर: बिल्कुल असत्य, छात्रों द्वारा गणित सीखने में लगने वाले समय के बारे में सोचें। यह उतना ही अपठनीय है जितना इसे (गंभीर गणित) मिल सकता है और 6 साल की माध्यमिक शिक्षा के बाद भी बहुमत अभी भी इसे गंभीरता से पढ़ने में असमर्थ है। यह नहीं कि अपठनीय होना बुरी बात है! लेकिन कह रही है कि गणित एक पठनीय संकेतन है एक संक्षिप्त टिप्पणी ओ.टी. कम से कम कहते हैं।
डेविड मुल्डर

2
@ दाविदुल्लर: गणितीय संकेतन बेतहाशा भिन्न होता है, इसलिए मुझे संदेह है कि हम दोनों अतिशयोक्ति के पाप कर रहे हैं। निश्चित रूप से आप बीजगणित, सेट सिद्धांत, मूल गणना के लिए अंकन को पारदर्शी मानते हैं? दूसरी ओर, मैं दसियों के अमूर्त अंकन को अपठनीय बकवास मानता हूं। (लेकिन फिर, मैंने भी नोटेशन को ठीक से जानने के लिए समय नहीं लिया।)
फ्रैंक शियरार

6

हम कैसे निर्धारित करते हैं कि एक प्रोग्रामिंग भाषा अधिक क्रिया / दूसरे पर निर्भर है?

समान या समान भाषा के निर्माणों की तुलना करके, विशेष रूप से समान या समान कार्य को एक भाषा बनाम दूसरी भाषा में कैसे हल किया जा सकता है।

क्या जावा की तुलना में C # अधिक क्रिया है?

जावा सामान्य रूप से C # से अधिक क्रिया है। सबसे स्पष्ट अंतरों में प्रतिनिधि और लैम्ब्डा अभिव्यक्ति शामिल हैं, जहां जावा को परिभाषित करने की आवश्यकता है, एक अलग इंटरफ़ेस को परिभाषित करने, उप-व्यवस्थित करने और तात्कालिकता प्राप्त करने के लिए जो संभवतः C # में एक एकल लैम्ब्डा अभिव्यक्ति का उपयोग करके किया जाता है।


1
जावा अब Java 8 ( docs.oracle.com/javase/tutorial/java/javaOO/… ) के साथ लैम्बडा एक्सप्रेशन का समर्थन करता है
shanraisshan

1
@ शनैश्चर: हाँ, यह समय के साथ बेहतर हो गया, लेकिन AFAIK जावा अभी भी थोड़ी अधिक क्रिया है। उदाहरण के लिए, आपके द्वारा लिंक किए गए डॉक्स में, कोड में बहुत सारे p.getAge()कथन हैं। C # में, मैं एक संपत्ति बनाऊंगा Age, जो सदस्य फ़ंक्शन के रूप में एक ही डिग्री का एनकैप्सुलेशन लाता है getAge, लेकिन p.Ageइसके बजाय लिखना संभव बनाता है ।
डॉक ब्राउन

1
इसके अलावा, जब जावा में सुधार हुआ है, तो C # वास्तव में या तो स्थैतिक लक्ष्य नहीं रहा है ... इस उत्तर के बाद से जेनरेटर फ़ंक्शंस और एसिंक्स / वेट जैसी नई सुविधाएँ भी सी # कोड को जावा समकक्ष से कम होने की अनुमति देती हैं।
जूल्स

3

गैर-प्रोग्रामर को एक कोड स्निपेट दें और उसे यह बताने के लिए कहें कि वह स्निपेट क्या करने की कोशिश कर रहा है। यदि आपको निकटतम उत्तर मिलता है, तो यह क्रिया है। अगर आपको डब्ल्यूटीएफ एक्सप्रेशन मिलता है, तो यह बहुत ही कठिन है।


2

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

विकी के कुछ मूल्य - C कोड की कितनी कथनों / पंक्तियों में एक कथन / पंक्ति की एक कार्यक्षमता को लागू करने में मदद मिलती है:

  • सी - कथन: 1 पंक्ति: 1
  • सी ++ - कथन: 2.5 लाइनें: 1
  • फोरट्रान - कथन: 2.5 लाइनें: 0.8
  • जावा - कथन: 2.5 लाइनें: 1.5
  • पर्ल - कथन: 6 लाइनें: 6
  • स्मालटाक - कथन: 6 लाइनें: 6.25
  • पायथन - कथन: 6 लाइनें: 6.5

मुझे लगता है कि इन मापों में से एक यह बताता है कि फोरट्रान सी के मुकाबले कुछ मार्जिन (!) की तुलना में अधिक अभिव्यंजक है, जबकि दूसरा बताता है कि सी ++ समान रूप से अभिव्यक्त होता है, सी (!!) ऐसे मैट्रिक्स की उपयोगिता को बताता है !! "।
जूल्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.