5

मुझे पता है कि यह बहुत सार है, हालांकि मुझे विश्वास है कि यह बहुत केंद्रित है।उच्च स्तरीय भाषाओं को कितना उच्च/जाना चाहिए?

उच्च स्तरीय भाषाओं के बहुत सारे हैं आज: सी #, जावा, वीबी, अजगर, आदि, सभी सार दूर निम्न स्तर जटिलता करने के लिए बनाया है और एक अधिक उपयोगकर्ता के अनुकूल प्रदान प्रोग्रामिंग अनुभव। उच्च स्तरीय भाषाएं कम हो सकती हैं, और अधिकांश समय पूरी तरह से हटा दिया जाता है, निम्न स्तर को करने की आवश्यकता, प्रक्रिया विशिष्ट संचालन (जैसे पॉइंटर मैनिपुलेशन और मेमोरी प्रबंधन)। कई भी हटाने मंच विवरण (फ़ाइल हेरफेर, यूजर इंटरफेस पीढ़ी, आदि)

मेरे दो प्रश्न हैं:

  1. और क्या/निकाला जाना चाहिए कर सकते हैं? क्या आज के उच्च स्तरीय भाषाओं में मौजूद कोई और निम्न स्तर के अर्थशास्त्र मौजूद हैं जिन्हें आगे दूर किया जाना चाहिए?
  2. किस बिंदु पर एक सामान्य उद्देश्य, उच्च स्तरीय भाषा very high-level बन जाती है, a.k.a लक्ष्य उन्मुख?
+1

मुझे लगता है कि इस सवाल * जरूरतों सीडब्ल्यू जीवित रहने के लिए होने के लिए *। – alex

+0

सीडब्ल्यू –

+1

@SimpleCoder में कनवर्ट किया गया दिलचस्प सवाल हालांकि। – alex

उत्तर

4

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

जावा, उदाहरण के लिए, यह उच्च स्तर की भाषा भी नहीं है, लेकिन यह सुरक्षित होने के लिए डिज़ाइन किया गया है (इस अर्थ में कि अवशोषण रिसाव नहीं होता) पहले और सबसे महत्वपूर्ण। इसलिए, जावा में कुछ चीजें करना असंभव है। उदाहरण के लिए, आप जावा के भीतर जावा के कचरा कलेक्टर नहीं लिख सकते हैं, या पॉइंटर कास्ट पॉलिमॉर्फिज्म का उपयोग करके अपनी ऑब्जेक्ट सिस्टम रोल नहीं कर सकते हैं, या एक ऑपरेटिंग सिस्टम (कम से कम पारंपरिक नहीं) लिख सकते हैं।

इसके विपरीत, डी उच्च स्तर और निम्न स्तर की दोनों सुविधाएं प्रदान करता है। डी कचरा कलेक्टर, उदाहरण के लिए, डी में लिखा गया है। यह अच्छा लगता है और अधिकांश भाग के लिए यह अच्छा लगता है। हालांकि, जब आप एक कोडबेस में अमूर्त स्तरों को मिश्रण करना शुरू करते हैं तो अवशोषण रिसाव कर सकते हैं, खासकर यदि आप टाइप सिस्टम को हराने के लिए कास्ट या यूनियन का उपयोग करते हैं। इसलिए, डी में सफलतापूर्वक प्रोग्राम करने के लिए आपको कभी-कभी कमजोर अबास्ट्रक्शन से निपटने के लिए कुछ निम्न-स्तरीय विवरणों के बारे में पता होना चाहिए, भले ही आपको उन्हें कार्य के लिए आवश्यकता न हो।

+2

सभी गैर-तुच्छ अवशोषण रिसाव - लेकिन यह वैसे भी एक अच्छा बिंदु है। लचीलापन, मजबूती और सादगी अक्सर संघर्ष में होती है। लीकी अबास्ट्रक्शन के विभिन्न स्तरों को मिलाकर निश्चित रूप से उस नियम को फिट कर दिया जाता है। – Steve314

4
  1. और क्या/निकाला जाना चाहिए कर सकते हैं? यह हमेशा आपके लक्ष्य पर निर्भर करता है। यहां कोई स्पष्ट रेखा नहीं है लेकिन मुझे लगता है कि यह आपको कितना नियंत्रण चाहिए? अमूर्तता और संभावनाओं के बीच आम तौर पर काफी भारी व्यापार होता है।
  2. सामान्य उद्देश्य के लिए, उच्च स्तरीय भाषा लक्ष्य उन्मुख बन जाती है? जैसे ही आप भाषा/प्रोग्रामिंग पर्यावरण को बता सकते हैं कि आप क्या करना चाहते हैं इसके बजाय आप क्या चाहते हैं।

वास्तविकता में हालांकि ... रेखा पूरी तरह से मनमाने ढंग से मनमानी है।

2

Tcl एक अधिकारी ने प्रस्ताव (Tcl Improvement Proposal (TIP) 131 कि काफी अच्छे के लिए समस्या का हल नहीं है। सभी यह की जरूरत है काम करने के लिए एक स्वयंसेवक है। यहां तक ​​कि सिर्फ एक विवरण बाहर छोड़ दिया की कुछ के साथ एक कंकाल कार्यान्वयन है।

+0

क्या वह आदेश दोबारा इस्तेमाल किया जा सकता है? :) –

+1

मैं एक वैकल्पिक कार्यान्वयन का सुझाव दे सकता हूं। मैंने कभी भी उपयोग किए गए प्रत्येक कंपाइलर और दुभाषिया में "मेरे दिमाग को पढ़ने और जो मेरा मतलब नहीं है" का एक पूर्ण कार्यान्वयन शामिल है। एक को चुनें और सही जगह पर "नहीं" डालें - बहुत अच्छी तरह से काम करना चाहिए। – Steve314

+0

@ स्टीव 314: कार्यान्वित करने में आसान। बस प्रोग्रामर के साथ 'rmmadwim' का उपयोग करें जो * आवश्यकताओं को समझता है और कोड को समझने के लिए कोड केवल तर्क के एक पफ में दिखाई देगा। –

1

मानव संसाधन विकास मंत्री मैं कुछ भाषाओं में कुछ अतिरिक्त कपोल-कल्पना की अगुवाई की कोशिश कर रहे लगता है:। इसके एसटीएम और Erlang अभिनेता मॉडल के साथ साथ Clojure

  1. केवल एक चीज के बारे में मैं देख सकता हूँ कि मैं नहीं देख सकते हैं यह कैसे किया जा जाएगा स्थिरता टाइपिंग जांच के समान समरूपता जांच वाली भाषा है। मैं यह कहता हूं क्योंकि हलिंग समस्या मौजूद है।
  2. जब यह मेरे लॉन को उड़ाता है, मुझे सुबह कॉफी बनाता है, मेरा ईमेल जांचता है और मुझे बताता है कि समाचार में क्या हुआ।
2

कुछ डोमेन विशिष्ट भाषाएं अत्यधिक "उच्च स्तर" हो सकती हैं। इसका एक अच्छा उदाहरण Inform (टेक्स्ट एडवेंचर्स लिखने के लिए उपयोग किया जाता है) जहां प्रोग्रामिंग भाषा सादे अंग्रेजी से बहुत अलग नहीं है।

The fireplace is scenery in the Entrance Hall. The description is "Unlit, vacant 
[if Search is happening]. It is almost as though you are not expected[end if]." 
The sound of the fireplace is "whistling wind". Understand "fire" or "whistling" 
or "wind" as the fireplace. Instead of burning the fireplace: say "There is no 
fuel prepared for a fire." 

यह वास्तविक स्रोत कोड है: यहाँ एक example project से एक अंश है।:)

+0

यह कमाल है! लेकिन मुझे आश्चर्य है कि भाषा कितनी तेजी से है? –

+1

यह उच्च स्तर नहीं है, यह सिर्फ शब्दशः है। –

+1

यह लक्ष्य विशिष्ट है (यानी बहुत उच्च स्तर: http://en.wikipedia.org/wiki/Very_high-level_programming_language) –

0

मुझे लगता है कि ढांचे अगले चरण हैं।

0
  • वर्तमान में कुछ "भाषाओं" के लिए UAT (जो एक एक लक्ष्य क्या कह सकते हैं करने के लिए और एक लक्ष्य के साथ करीब है परीक्षण की आवश्यकता है, क्योंकि यह एक ही तरीका है यह समझाया जा सकता है है कर रहे हैं जैसे फ़िट परीक्षण भाग के लिए); उन प्रोग्रामिंग भाषाओं के साथ विलय किया जा सकता है।
  • सुंदर बहुत हर भाषा है और अधिक से अधिक उच्च स्तरीय इंटरफेस तक पहुंच पाना (यानी, अमूर्त) आप से और कम से कम कोड की आवश्यकता होती है और ओएस से निकाला गया (देखें कितना आसान सी # में अब जीयूआई आवेदन करने का तरीका बताया सी ++ एमएफसी की तुलना में, सी ++ विन 32 एपीआई की तुलना में)।
  • प्रोग्रामिंग भाषाओं के लिए वे अन्य विकास विधियों की सबसे अच्छी विशेषताओं को प्राप्त कर सकते हैं: मैं विचार-उन्मुख प्रोग्रामिंग पर विचार कर रहा हूं जो कई ओओ मुद्दे को हल करने में मदद कर सकता है और पहले ही आंशिक रूप से सी # में कुछ रूप में कार्यान्वित किया गया है और जावा (लॉगिंग, लेनदेन के संबंध में मुद्दों की तरह ...)।
  • यूएमएल अंतिम लक्ष्य (था?) यूएमएल viesw प्रणाली के कोड के लिए पर्याप्त होने के लिए चित्रों के विवरण के साथ अनुमति देने के लिए; यूएमएल भी एक भाषा है (बड़े अर्थ में)।
  • आईडीई भी शामिल किया जाना चाहिए: अब आप आईडीई से एक संवाद का आकार बदलना चाहिए, जबकि आपको अक्सर इसे पहले कोड करना था। बाद में आप किसी भी त्वचा-सक्षम एप्लिकेशन की तरह विषयों की एक ड्रॉप सूची से शैली अपने पूरे एप्लिकेशन या वेबसाइट पर सक्षम हो सकते हैं। और बहुत कुछ आ सकता है।

एक एकीकृत वातावरण में उन लोगों के संघ की कल्पना कीजिए, क्योंकि विकास पर्यावरण विकास का एक बड़ा हिस्सा है जैसे कि पुस्तकालयों के पास पहुंच है और इसका उपयोग स्तर है।

2

मुझे लगता है कि एक अनुमानित भविष्य की भाषा आपको कार्यान्वयन के बजाय सत्यापनकर्ता लिखने की अनुमति देगी। संकलक तब उस सत्यापनकर्ता का विश्लेषण करता है और (आपके प्रयासों) को आपके spec से मेल खाने वाले कार्यान्वयन को लिखता है।(जाहिर है कि कंपाइलर कभी-कभी असफल हो सकता है या कभी भी बलपूर्वक बल नहीं ले सकता है, क्योंकि यह एक रोकथाम करने वाला सॉल्वर नहीं है।)

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

भले ही सत्यापन कोड कार्यान्वयन कोड से अधिक लंबा हो, फिर भी यह उतना ही बेहतर प्रलेखन करता है और यह एक कैसा दिखता है। आप कम दस्तावेज/spec/कोड desyncing के लिए अधिक कोड-टाइपिंग समय व्यापार करते हैं।

उदाहरण के लिए: में

int32 Remainder(int32 numerator, int32 denominator) { 
    requires denominator != 0 
    ensures Math.Abs(result) < Math.Abs(denominator) 
    ensures exists n suchthat n*denominator + result == numerator 
} 
int32 EuclideanRemainder(int32 numerator, int32 denominator) { 
    requires denominator != 0 
    ensures result >= 0 
    ensures result < Math.Abs(denominator) 
    ensures exists n suchthat n*denominator + result == numerator 
} 

परिणाम:

//warning: suggested precondition: denominator != int32.MinValue due to Math.Abs 
int32 Remainder(int32 numerator, int32 denominator) { 
    return numerator % denominator; 
} 
int32 EuclideanRemainder(int32 numerator, int32 denominator) { 
    return ((numerator % denominator) + denominator) % denominator; 
} 
संबंधित मुद्दे