क्या सी ++, सी # या जावा भाषा संदर्भ-मुक्त या संदर्भ-संवेदनशील हैं?क्या आधुनिक प्रोग्रामिंग भाषाओं के व्याकरण संदर्भ-मुक्त या संदर्भ-संवेदनशील हैं?
उत्तर
सी ++ न तो संदर्भ मुक्त है और न ही संदर्भ-संवेदनशील है, template system is Turing-complete के बाद से और यह निर्धारित करना कि सी ++ कोड का एक टुकड़ा कानूनी सी ++ अनिवार्य रूप से कठिन है या नहीं। उदाहरण के लिए, मैं एक टेम्पलेट क्लास को परिभाषित कर सकता हूं जो एक स्ट्रिंग पर एक टीएम अनुकरण करता है और फिर यदि मशीन स्वीकार करता है और 0 नहीं करता है तो मान 1 के साथ स्थिर बनाता है। अगर मैं ऐसा ही किया, उसके बाद निम्न कोड कानूनी होगा iff टीएम दिए गए इनपुट पर रोका:
int myArray[TMTemplate</* ... args ... */>::value];
के बाद से यदि टीएम को खारिज कर दिया, इस आकार 0 की एक सरणी, जिसकी अनुमति नहीं है बनाता है।
न तो सी # और न ही जावा संदर्भ-मुक्त है, क्योंकि यह जांच कर रहा है कि किसी चर के दौरान एक चर का सही ढंग से और लगातार उपयोग किया जाता है, यह संदर्भ-मुक्त नहीं है (सबूत जटिल है और Ogden's lemma पर निर्भर करता है)। हालांकि, मुझे यकीन नहीं है कि वे संदर्भ-संवेदनशील हैं या नहीं।
आशा है कि यह आपके प्रश्नों का आंशिक उत्तर देगा!
मुझे यकीन नहीं है कि टेम्पलेट्स की ट्यूरिंग-पूर्णता सी ++ के व्याकरण * को प्रभावित करती है या नहीं। निश्चित रूप से, टेम्पलेट मेटाप्रोग्रामिंग के परिणाम गीलेर का निर्णय ले सकते हैं कि एक प्रोग्राम कुछ अर्थपूर्ण चेक पास करता है, लेकिन यह व्याकरण के दायरे से काफी दूर है। और टेम्पलेट्स सिंटैक्स के बारे में कुछ भी नहीं बदलते हैं: यदि प्रोग्राम में सिंटैक्स त्रुटि है, तो टेम्पलेट्स को कम नहीं किया जाता है, और यदि वे तत्काल होते हैं, तो वे कभी भी वाक्यविन्यास त्रुटियों का परिणाम नहीं देते हैं। क्या आप सभी स्थैतिक रूप से टाइप की गई भाषाओं को संदर्भ-संवेदनशील मानते हैं क्योंकि आपको गीलेर का निर्णय लेने के लिए शामिल सभी प्रकारों को जानने की आवश्यकता है। एक असाइनमेंट स्टेटमेंट वैध है? – delnan
@ delnan- मैं इस सवाल की व्याख्या कर रहा था कि कोई भी स्थैतिक रूप से टाइप की गई भाषा संदर्भ-मुक्त नहीं है, क्योंकि कार्यक्रम की शुद्धता इस बात पर निर्भर करती है कि प्रकार कैसे संबंधित हैं। मैं इस दृष्टिकोण से आ रहा हूं "यदि आप कानूनी एक्स कार्यक्रमों का प्रतिनिधित्व करने वाले सभी तारों को इकट्ठा करते हैं, तो आप किस तरह की भाषा वापस लेते हैं?" यह सेट संदर्भ-मुक्त नहीं है, भले ही मान्य होने के लिए पूर्व शर्त के रूप में स्ट्रिंग व्याकरण में होनी चाहिए। क्या इसका कोई मतलब है? और क्या यह सवाल की एक अनुचित व्याख्या है? – templatetypedef
उस व्याख्या के तहत, आपका उत्तर समझ में आता है। ऐसा नहीं है कि मैंने सवाल का अर्थ कैसे लिया होगा, लेकिन ऐसा इसलिए है क्योंकि मुझे लगता है कि "संदर्भ-मुक्त भाषा" (जैसा कि ओपी द्वारा उपयोग किया जाता है) "संदर्भ-मुक्त व्याकरण वाली भाषा" के लिए सिर्फ एक लघुरूप है। लेकिन मुझे लगता है कि यह समझ में आता है (और यदि वह वास्तव में सवाल था, तो आपका जवाब सही है)। आगे गलतफहमी को रोकने के लिए, आपको उत्तर में उस स्पष्टीकरण को जोड़ना चाहिए। – delnan
- 1. आधुनिक प्रोग्रामिंग भाषाओं में वास्तव में "संदर्भ संवेदनशील व्याकरण" में "regex" है?
- 2. कौन सी प्रोग्रामिंग भाषाओं में नियमित व्याकरण होता है?
- 3. (आधुनिक या ऐतिहासिक) प्रोग्रामिंग भाषा डिज़ाइन पर कुछ अत्यधिक सम्मानित पुस्तकें क्या हैं?
- 4. आपके लिए प्रोग्रामिंग भाषाओं के सबसे महत्वपूर्ण गुण क्या हैं?
- 5. प्रोग्रामिंग भाषाओं
- 6. गणितीय प्रोग्रामिंग भाषाओं
- 7. SIMD प्रोग्रामिंग भाषाओं
- 8. प्रोग्रामिंग भाषाओं में समाप्ति
- 9. क्या आधुनिक संपादक emacs/vi के साथ प्रतिस्पर्धा करते हैं?
- 10. क्या Yacc व्याकरण डिबगर्स हैं?
- 11. प्रोग्रामिंग भाषाओं में सांस्कृतिक मुद्दे
- 12. भाषाओं के बीच प्रोग्रामिंग कौशल कैसे हस्तांतरण कर रहे हैं?
- 13. प्रोग्रामिंग भाषा व्याकरण में पिछला कॉमा का इतिहास
- 14. प्रोग्रामिंग भाषाओं के लिए पार्सर्स का स्रोत?
- 15. सिस्टम प्रोग्रामिंग भाषा और अनुप्रयोग प्रोग्रामिंग भाषाओं के बीच अंतर
- 16. घोषणात्मक प्रोग्रामिंग भाषाओं grokking के लिए युक्तियाँ?
- 17. ओपन सोर्स कामयाब प्रोग्रामिंग भाषाओं
- 18. क्यों कई प्रोग्रामिंग भाषाओं प्रकार * बाद * परिवर्तनीय नाम डालते हैं?
- 19. कई प्रोग्रामिंग भाषाओं में स्ट्रिंग्स अपरिवर्तनीय क्यों हैं?
- 20. प्रोग्रामिंग भाषाओं में 'उपयोग' या 'उपयोग' का उपयोग
- 21. विभिन्न प्रोग्रामिंग भाषाओं में संचारित सॉकेट संचार कर सकते हैं?
- 22. प्रोग्रामिंग भाषाओं के बीच माइग्रेट करने वाले डेवलपर के लिए वास्तविक चुनौतियां क्या हैं?
- 23. कौन सी प्रोग्रामिंग भाषाएं संदर्भ-मुक्त हैं?
- 24. कौन सी प्रोग्रामिंग भाषाओं में जेआईटी कंपाइलर्स हैं?
- 25. सैद्धांतिक और/या प्रयोगात्मक प्रोग्रामिंग-भाषा विशेषताएं क्या हैं?
- 26. आधुनिक प्रोग्रामिंग में ASCII delimiters (2 9 -31) का उपयोग
- 27. क्या बी-विधि पारंपरिक प्रोग्रामिंग भाषाओं का विकल्प है?
- 28. समेकित प्रोग्रामिंग भाषाओं का वास्तविक विश्व उपयोग
- 29. कई आउटपुट भाषाओं में मेटा प्रोग्रामिंग
- 30. बूस्ट :: व्याकरण से व्याकरण रचनात्मक व्याकरण
http://stackoverflow.com/questions/2929507/chomsky-hierarchy-and-programming- भाषाएं –