पृष्ठभूमि
सिंथेटिक चीनी पर विकिपीडिया पृष्ठ :
कंप्यूटर विज्ञान में, वाक्य रचना चीनी एक प्रोग्रामिंग भाषा के भीतर वाक्यविन्यास है जो चीजों को पढ़ने या व्यक्त करने के लिए आसान बनाने के लिए डिज़ाइन किया गया है। यह मानव को उपयोग करने के लिए भाषा को "मीठा" बनाता है: चीजों को अधिक स्पष्ट रूप से, अधिक संक्षिप्त रूप से या वैकल्पिक शैली में व्यक्त किया जा सकता है जिसे कुछ लोग पसंद कर सकते हैं।
मुझे वास्तव में समझ में नहीं आता है कि Syntactic Sugar और Syntax के बीच क्या अंतर है।
मैं इस बिंदु की सराहना करता हूं कि शर्करा संस्करण स्पष्ट हो सकता है, अधिक संक्षिप्त हो सकता है, शायद कुछ बॉयलरप्लेट को उबाल लें। लेकिन मुझे लगता है कि कुछ स्तर पर, सभी वाक्यविन्यास अनिवार्य रूप से कर रहे हैं कि कोड को नीचे संकलित करने पर एक अमूर्त बनाने के लिए।
उसी विकिपीडिया पृष्ठ से:
कंपाइलर्स, स्टैटिक एनालिसर्स और लाइक सहित भाषा प्रोसेसर, प्रसंस्करण से पहले अधिक मौलिक निर्माणों में अक्सर सुव्यवस्थित निर्माणों का विस्तार करते हैं, एक प्रक्रिया जिसे कभी-कभी "डीजेरिंग" कहा जाता है।
एक विचार अभ्यास के रूप में, यदि मैं "हमेशा" इस कथन में "हमेशा" का अर्थ लेता हूं: यदि अंतर सिर्फ यह था कि क्या कंपाइलर अगले चरण में जाने से पहले सिंटैक्स "डिसुगर" करता है, तो एक कोडर कैसे हो सकता है, जो सराय नहीं जानता है संकलक को पता है (या देखभाल) कि क्या Sugar'd सिंटैक्स है या नहीं?
इस साइट पर एक बहुत ही संबंधित प्रश्न "कठोर चीनी की परिभाषा?" एक जवाब है जो शुरू होता है:
IMHO मुझे नहीं लगता कि आपके पास सिंथैटिक शुगर के लिए एक परिभाषा हो सकती है, क्योंकि वाक्यांश बीएस है और लोगों द्वारा "वास्तविक प्रोग्रामर" के बारे में "वास्तविक ऑपरेटिंग सिस्टम" का उपयोग करके "वास्तविक प्रोग्रामर" के बारे में बात करने की संभावना है।
जो मुझे संकेत दे सकता है कि शायद भाषा का उपयोग करने वाले कोडर के लिए बहुत बड़ा अंतर नहीं है? शायद अंतर केवल संकलक लेखक के लिए बोधगम्य है? हालांकि ऐसे उदाहरण भी हो सकते हैं जिनमें यह कोडर के लिए सहायक हो कि भाषा का उपयोग करके यह जान सकें कि सिंथेटिक शुगर के घेरे में क्या है? (लेकिन शायद वास्तव में विषय पर कोई भी प्रवचन लौ शब्द के रूप में उपयोग करने के लिए जाता है?)
सवाल का दिल
तो ... प्रश्न का संक्षिप्त संस्करण:
- क्या सिंटैक्स और सिन्सेटिक शुगर में वास्तविक अंतर है?
- यह किसके लिए मायने रखता है?
अतिरिक्त भोजन के लिए सोचा
विषय विरोधाभास पर बोनस:
विकिपीडिया पृष्ठ पर एक उदाहरण दिया गया है:
उदाहरण के लिए, C भाषा में
a[i]
संकेतन चीनी के लिए संकेतन है*(a + i)
जबकि उपरोक्त लिंक पर एक और उत्तर उसी उदाहरण के बारे में बात करता है:
अब विचार करो
a[i] == *(a + i)
। किसी भी C प्रोग्राम के बारे में सोचें जो किसी भी तरह से सरणियों का उपयोग करता है।
और सारांश है कि:
[]
अंकन इस अमूर्त की सुविधा। यह सिंटैक्टिक शुगर नहीं है।
उसी उदाहरण के लिए विपरीत निष्कर्ष!