सिंटेक्स (प्रोग्रामिंग भाषाएं)

From alpha
Jump to navigation Jump to search
वाक्य - विन्यास पर प्रकाश डालना और इंडेंट शैली का उपयोग अक्सर प्रोग्रामर्स को सोर्स कोड के तत्वों को पहचानने में मदद करने के लिए किया जाता है। यह पायथन (प्रोग्रामिंग भाषा) कोड रंग कोडित हाइलाइटिंग का उपयोग करता है।

इंटरनेट कंप्यूटर विज्ञान , कंप्यूटर भाषा का सिंटैक्स वे नियम हैं जो प्रतीकों के संयोजन को परिभाषित करते हैं जिन्हें उस भाषा में सही ढंग से संरचित कथन (कंप्यूटर विज्ञान) या अभिव्यक्ति (कंप्यूटर विज्ञान) माना जाता है। यह प्रोग्रामिंग भाषा ओं पर लागू होता है, जहाँ दस्तावेज़ स्रोत कोड का प्रतिनिधित्व करता है, और मार्कअप भाषाओं पर, जहाँ दस्तावेज़ डेटा का प्रतिनिधित्व करता है।

किसी भाषा का वाक्य-विन्यास उसके सतही रूप को परिभाषित करता है।[1] पाठ-आधारित उपयोगकर्ता इंटरफ़ेस | पाठ-आधारित कंप्यूटर भाषाएँ वर्ण (कंप्यूटिंग) के अनुक्रम पर आधारित होती हैं, जबकि दृश्य प्रोग्रामिंग भाषाएँ स्थानिक लेआउट और प्रतीकों के बीच कनेक्शन (जो पाठ्य या चित्रमय हो सकती हैं) पर आधारित होती हैं। दस्तावेज़ जो वाक्यात्मक रूप से अमान्य हैं, उन्हें सिंटैक्स त्रुटि कहा जाता है। किसी भाषा के वक्य रचना त्रुटि डिजाइन करते समय, एक डिजाइनर इन उदाहरणों से सामान्य नियमों का पता लगाने की कोशिश करने से पहले कानूनी और अवैध स्ट्रिंग (कंप्यूटर विज्ञान) दोनों के उदाहरणों को लिखकर शुरू कर सकता है।[2] सिंटेक्स इसलिए कोड के रूप को संदर्भित करता है, और शब्दार्थ (कंप्यूटर विज्ञान) - अर्थ के विपरीत है। कंप्यूटर भाषाओं के प्रसंस्करण में सिमेंटिक प्रोसेसिंग आमतौर पर सिंटैक्टिक प्रोसेसिंग के बाद आती है; हालाँकि, कुछ मामलों में, सिमेंटिक प्रोसेसिंग पूर्ण सिंटैक्टिक शब्दार्थ विश्लेषण (संकलक) आवश्यक है, और ये एक साथ या संगामिति (कंप्यूटर विज्ञान) में किए जाते हैं। एक संकलक में, सिमेंटिक एनालिसिस में संकलक दृश्यपटल शामिल होता है, जबकि सिमेंटिक एनालिसिस (कंपाइलर्स) में संकलक बैकएंड (और मिडिल एंड, अगर यह फेज अलग होता है) शामिल होता है।

सिंटैक्स के स्तर

कंप्यूटर भाषा सिंटैक्स को आम तौर पर तीन स्तरों में विभाजित किया जाता है:

  • शब्द - शाब्दिक स्तर, यह निर्धारित करना कि वर्ण टोकन (पार्सर) कैसे बनाते हैं;
  • वाक्यांश - व्याक रण स्तर, संकीर्ण रूप से बोलना, यह निर्धारित करना कि टोकन कैसे वाक्यांश बनाते हैं;
  • संदर्भ - यह निर्धारित करना कि कौन से ऑब्जेक्ट या वेरिएबल नाम संदर्भित हैं, यदि प्रकार मान्य हैं, आदि।

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

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

स्तर आम तौर पर चॉम्स्की पदानुक्रम में स्तरों के अनुरूप होते हैं। शब्द एक नियमित भाषा में हैं, जो शाब्दिक व्याकरण में निर्दिष्ट है, जो कि टाइप -3 व्याकरण है, जिसे आमतौर पर नियमित अभिव्यक्ति के रूप में दिया जाता है। वाक्यांश एक संदर्भ-मुक्त भाषा (सीएफएल) में हैं, आम तौर पर एक नियतात्मक संदर्भ-मुक्त भाषा (डीसीएफएल), एक वाक्यांश संरचना व्याकरण में निर्दिष्ट है, जो कि टाइप -2 व्याकरण है, जिसे आमतौर पर बैकस-नौर में उत्पादन (कंप्यूटर विज्ञान) के रूप में दिया जाता है। फॉर्म (बीएनएफ)। वाक्यांश व्याकरण को अक्सर पूर्ण संदर्भ-मुक्त व्याकरण की तुलना में बहुत अधिक विवश व्याकरण में निर्दिष्ट किया जाता है, ताकि उन्हें पार्स करना आसान हो सके; जबकि एलआर पार्सर किसी भी डीसीएफएल को रैखिक समय में पार्स कर सकता है, सरल एलएएलआर पार्सर और यहां तक ​​​​कि सरल एलएल पार्सर अधिक कुशल हैं, लेकिन केवल उन व्याकरणों को पार्स कर सकते हैं जिनके उत्पादन नियम विवश हैं। सिद्धांत रूप में, प्रासंगिक संरचना को संदर्भ-संवेदनशील व्याकरण द्वारा वर्णित किया जा सकता है, और विशेषता व्याकरण जैसे माध्यमों द्वारा स्वचालित रूप से विश्लेषण किया जा सकता है, हालांकि, सामान्य तौर पर, यह चरण मैन्युअल रूप से, नाम रिज़ॉल्यूशन (प्रोग्रामिंग भाषाओं) नियमों और प्रकार की जाँच के माध्यम से किया जाता है, और कार्यान्वित किया जाता है एक प्रतीक तालिका के माध्यम से जो प्रत्येक दायरे के लिए नाम और प्रकार संग्रहीत करता है।

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

त्रुटियों के उदाहरण

उदहारण के लिए, (add 1 1) एक वाक्यात्मक रूप से मान्य लिस्प प्रोग्राम है (यह मानते हुए कि 'एड' फ़ंक्शन मौजूद है, अन्यथा नाम समाधान विफल हो जाता है), 1 और 1 को जोड़ना। हालाँकि, निम्नलिखित अमान्य हैं:

(_ 1 1) शाब्दिक त्रुटि: '_' मान्य नहीं है
(1 1 पार्सिंग त्रुटि जोड़ें: लापता समापन ')'

ध्यान दें कि लेक्सर पहली त्रुटि की पहचान करने में असमर्थ है - यह केवल इतना जानता है कि टोकन LEFT_PAREN बनाने के बाद, '(' प्रोग्राम का शेष अमान्य है, क्योंकि कोई शब्द नियम '_' से शुरू नहीं होता है। दूसरी त्रुटि का पता चला है पार्सिंग चरण में: पार्सर ने '(' टोकन (एकमात्र मैच के रूप में) के कारण सूची उत्पादन नियम की पहचान की है, और इस प्रकार एक त्रुटि संदेश दे सकता है; सामान्य तौर पर यह अस्पष्ट व्याकरण हो सकता है।

टाइप एरर और अघोषित वेरिएबल एरर को कभी-कभी सिंटैक्स एरर माना जाता है जब उन्हें कंपाइल-टाइम पर पता चलता है (जो आमतौर पर दृढ़ता से टाइप की गई भाषाओं को कंपाइल करते समय होता है), हालांकि इस प्रकार की एरर को प्रोग्रामिंग लैंग्वेज#सेमेंटिक्स के रूप में वर्गीकृत करना आम है इसके बजाय त्रुटियाँ।[3][4][5] उदाहरण के तौर पर, पायथन कोड

'ए' + 1

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

एक गतिशील रूप से टाइप की गई भाषा में, जहाँ प्रकार केवल रनटाइम पर निर्धारित किया जा सकता है, कई प्रकार की त्रुटियों को केवल रनटाइम पर ही पहचाना जा सकता है। उदाहरण के लिए, पायथन कोड

ए + बी

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

सिंटेक्स परिभाषा

File:Python add5 parse.svg
इनसेट टोकनाइजेशन के साथ पायथन कोड का पार्स ट्री

पाठ्य प्रोग्रामिंग भाषाओं के वाक्य-विन्यास को आमतौर पर नियमित अभिव्यक्तियों (शाब्दिक विश्लेषण संरचना के लिए) और बैकस-नौर रूप (संदर्भ-मुक्त व्याकरण संरचना के लिए) के संयोजन का उपयोग करके परिभाषित किया जाता है ताकि वाक्य-विन्यास श्रेणी (गैर-टर्मिनल) और टर्मिनल प्रतीकों को निर्दिष्ट किया जा सके। सिंटैक्टिक श्रेणियों को प्रोडक्शंस नामक नियमों द्वारा परिभाषित किया जाता है, जो किसी विशेष वाक्यात्मक श्रेणी से संबंधित मानों को निर्दिष्ट करते हैं।[1]टर्मिनल प्रतीक ठोस अक्षर या वर्णों के तार हैं (उदाहरण के लिए कीवर्ड (कंप्यूटर प्रोग्रामिंग) जैसे कि परिभाषित करें, अगर, जाने दें, या शून्य) जिससे वाक्य रचनात्मक रूप से मान्य प्रोग्राम बनाए जाते हैं।

एक भाषा के अलग-अलग समकक्ष व्याकरण हो सकते हैं, जैसे समकक्ष नियमित अभिव्यक्तियाँ (शाब्दिक स्तरों पर), या अलग-अलग वाक्यांश नियम जो एक ही भाषा उत्पन्न करते हैं। व्याकरण की एक व्यापक श्रेणी का उपयोग करना, जैसे LR व्याकरण, अधिक प्रतिबंधित श्रेणियों की तुलना में छोटे या सरल व्याकरण की अनुमति दे सकता है, जैसे LL व्याकरण, जिसके लिए अधिक नियमों के साथ लंबे व्याकरण की आवश्यकता हो सकती है। अलग-अलग लेकिन समकक्ष वाक्यांश व्याकरण अलग-अलग पार्स पेड़ उत्पन्न करते हैं, हालांकि अंतर्निहित भाषा (वैध दस्तावेजों का सेट) समान है।

उदाहरण: लिस्प एस-अभिव्यक्ति

नीचे एक सरल व्याकरण है, जिसे रेगुलर एक्सप्रेशंस और विस्तारित बैकस-नौर फॉर्म के नोटेशन का उपयोग करके परिभाषित किया गया है। यह एस-एक्सप्रेशन के सिंटैक्स का वर्णन करता है, प्रोग्रामिंग लैंग्वेज लिस्प प्रोग्रामिंग भाषा का एक डेटा सिंटैक्स, जो सिंटैक्टिक कैटेगरी एक्सप्रेशन, एटम, नंबर, सिंबल और लिस्ट के लिए प्रोडक्शंस को परिभाषित करता है:

<वाक्यविन्यास लैंग = ईबीएनएफ> अभिव्यक्ति = परमाणु | सूची परमाणु = संख्या | चिन्ह, प्रतीक संख्या = [+-]?['0'-'9']+ प्रतीक = ['ए'-'जेड'] ['ए'-'जेड0'-'9']।* सूची = '(', अभिव्यक्ति *, ')' </वाक्यविन्यास हाइलाइट>

यह व्याकरण निम्नलिखित निर्दिष्ट करता है:

  • एक अभिव्यक्ति या तो परमाणु या सूची है;
  • एक परमाणु या तो एक संख्या या प्रतीक है;
  • एक संख्या एक या अधिक दशमलव अंकों का एक अखंड क्रम है, वैकल्पिक रूप से प्लस या माइनस चिह्न से पहले;
  • एक प्रतीक एक अक्षर है जिसके बाद शून्य या अधिक वर्ण होते हैं (व्हाट्सएप को छोड़कर); और
  • एक सूची कोष्ठकों की एक मिलान जोड़ी है, इसके अंदर शून्य या अधिक भाव हैं।

यहाँ दशमलव अंक, अपर-केस और लोअर-केस वर्ण, और कोष्ठक टर्मिनल प्रतीक हैं।

इस व्याकरण में सुगठित टोकन अनुक्रमों के उदाहरण निम्नलिखित हैं: '12345', '()', '(A B C232 (1))'

जटिल व्याकरण

प्रोग्रामिंग भाषा को निर्दिष्ट करने के लिए आवश्यक व्याकरण को चॉम्स्की पदानुक्रम में अपनी स्थिति के अनुसार वर्गीकृत किया जा सकता है। अधिकांश प्रोग्रामिंग भाषाओं के वाक्यांश व्याकरण को टाइप-2 व्याकरण का उपयोग करके निर्दिष्ट किया जा सकता है, अर्थात, वे संदर्भ-मुक्त व्याकरण हैं,[6] हालांकि समग्र सिंटैक्स संदर्भ-संवेदनशील है (परिवर्तनीय घोषणाओं और नेस्टेड स्कोप के कारण), इसलिए टाइप -1। हालाँकि, अपवाद हैं, और कुछ भाषाओं के लिए वाक्यांश व्याकरण टाइप-0 (ट्यूरिंग-पूर्ण) है।

पर्ल और लिस्प जैसी कुछ भाषाओं में भाषा के विनिर्देश (या कार्यान्वयन) उन निर्माणों की अनुमति देते हैं जो पार्सिंग चरण के दौरान निष्पादित होते हैं। इसके अलावा, इन भाषाओं का निर्माण होता है जो प्रोग्रामर को पार्सर के व्यवहार को बदलने की अनुमति देता है। यह संयोजन प्रभावी रूप से पार्सिंग और निष्पादन के बीच के अंतर को धुंधला कर देता है, और इन भाषाओं में सिंटैक्स विश्लेषण को एक अनिर्णीत समस्या बना देता है, जिसका अर्थ है कि पार्सिंग चरण समाप्त नहीं हो सकता है। उदाहरण के लिए, पर्ल में a का उपयोग करके पार्सिंग के दौरान कोड को निष्पादित करना संभव है BEGIN कथन, और पर्ल फ़ंक्शन प्रोटोटाइप वाक्य-विन्यास व्याख्या को बदल सकते हैं, और संभवतः शेष कोड की वाक्य-विन्यास वैधता भी।[7] बोलचाल की भाषा में इसे केवल पर्ल पार्सल के रूप में संदर्भित किया जाता है (क्योंकि कोड को पार्सिंग के दौरान निष्पादित किया जाना चाहिए, और व्याकरण को संशोधित कर सकता है), या अधिक दृढ़ता से पर्ल भी पर्ल को पार्स नहीं कर सकता (क्योंकि यह अनिर्णीत है)। इसी तरह, लिस्प मैक्रो निर्देश द्वारा पेश किया गया defmacro सिंटैक्स पार्सिंग के दौरान भी निष्पादित होता है, जिसका अर्थ है कि एक लिस्प कंपाइलर में संपूर्ण लिस्प रन-टाइम सिस्टम मौजूद होना चाहिए। इसके विपरीत, सी मैक्रोज़ केवल स्ट्रिंग प्रतिस्थापन हैं, और कोड निष्पादन की आवश्यकता नहीं है।[8][9]


सिंटैक्स बनाम शब्दार्थ

किसी भाषा का सिंटैक्स एक मान्य प्रोग्राम के रूप का वर्णन करता है, लेकिन प्रोग्राम के अर्थ या उस प्रोग्राम को निष्पादित करने के परिणामों के बारे में कोई जानकारी प्रदान नहीं करता है। प्रतीकों के संयोजन को दिया गया अर्थ शब्दार्थ द्वारा नियंत्रित किया जाता है (या तो प्रोग्रामिंग भाषाओं का औपचारिक शब्दार्थ या संदर्भ कार्यान्वयन (कंप्यूटिंग) में हार्ड-कोडेड)। सभी वाक्यात्मक रूप से सही कार्यक्रम शब्दार्थ की दृष्टि से सही नहीं होते हैं। भाषा के नियमों के अनुसार कई वाक्यात्मक रूप से सही कार्यक्रम अभी भी खराब हैं; और (भाषा विनिर्देश और कार्यान्वयन की सुदृढ़ता के आधार पर) अनुवाद या निष्पादन में त्रुटि हो सकती है। कुछ मामलों में, ऐसे प्रोग्राम अपरिभाषित व्यवहार प्रदर्शित कर सकते हैं। यहां तक ​​​​कि जब एक प्रोग्राम किसी भाषा के भीतर अच्छी तरह से परिभाषित होता है, तब भी इसका एक अर्थ हो सकता है जो इसे लिखने वाले व्यक्ति द्वारा अभिप्रेत नहीं है।

एक उदाहरण के रूप में प्राकृतिक भाषा का प्रयोग करना, व्याकरणिक रूप से सही वाक्य को अर्थ देना संभव नहीं हो सकता है या वाक्य गलत हो सकता है:

  • रंगहीन हरे विचार करुण सोई। व्याकरणिक रूप से अच्छी तरह से गठित है लेकिन इसका कोई आम तौर पर स्वीकृत अर्थ नहीं है।
  • जॉन एक विवाहित अविवाहित है। व्याकरणिक रूप से अच्छी तरह से बना है लेकिन एक ऐसा अर्थ व्यक्त करता है जो सच नहीं हो सकता।

निम्नलिखित सी भाषा खंड वाक्य रचनात्मक रूप से सही है, लेकिन एक ऑपरेशन करता है जो शब्दार्थ परिभाषित नहीं है (क्योंकि p एक अशक्त सूचक है, Operations p->real और p->im कोई अर्थ नहीं है): <वाक्यविन्यास लैंग = सी>

जटिल * पी = न्यूल;
जटिल एब्स_पी = वर्ग (पी-> वास्तविक * पी-> वास्तविक + पी-> आईएम * पी-> आईएम);

</वाक्यविन्यास हाइलाइट>

एक सरल उदाहरण के रूप में, <वाक्यविन्यास लैंग = सी>

इंट एक्स;
प्रिंटफ (% डी, एक्स);

</वाक्यविन्यास हाइलाइट> वाक्यात्मक रूप से मान्य है, लेकिन शब्दार्थ परिभाषित नहीं है, क्योंकि यह एक गैर-प्रारंभिक चर का उपयोग करता है। भले ही कुछ प्रोग्रामिंग भाषाओं (जैसे, जावा और सी #) के लिए कंपाइलर्स इस तरह की गैर-प्रारंभिक चर त्रुटियों का पता लगाएंगे, उन्हें सिंटैक्स त्रुटियों के बजाय प्रोग्रामिंग भाषा # अर्थ विज्ञान त्रुटियों के रूप में माना जाना चाहिए।[5][10]


यह भी देखें

विभिन्न प्रोग्रामिंग भाषाओं के सिंटैक्स की शीघ्रता से तुलना करने के लिए, हैलो, वर्ल्ड की सूची पर एक नज़र डालें! कार्यक्रम के उदाहरण:

संदर्भ

  1. 1.0 1.1 Friedman, Daniel P.; Mitchell Wand; Christopher T. Haynes (1992). प्रोग्रामिंग भाषाओं की अनिवार्यता (1st ed.). The MIT Press. ISBN 0-262-06145-7.
  2. Smith, Dennis (1999). रखरखाव योग्य सॉफ्टवेयर डिजाइन करना. Springer Science & Business Media.
  3. Aho, Alfred V.; Monica S. Lam; Ravi Sethi; Jeffrey D. Ullman (2007). संकलक: सिद्धांत, तकनीक और उपकरण (2nd ed.). Addison Wesley. ISBN 0-321-48681-1.Section 4.1.3: Syntax Error Handling, pp.194–195.
  4. Louden, Kenneth C. (1997). संकलक निर्माण: सिद्धांत और अभ्यास. Brooks/Cole. ISBN 981-243-694-4. Exercise 1.3, pp.27–28.
  5. 5.0 5.1 Semantic Errors in Java
  6. Michael Sipser (1997). संगणना के सिद्धांत का परिचय. PWS Publishing. ISBN 0-534-94728-X. Section 2.2: Pushdown Automata, pp.101–114.
  7. The following discussions give examples:
  8. "सामान्य लिस्प मैक्रोज़ का परिचय". Apl.jhu.edu. 1996-02-08. Archived from the original on 2013-08-06. Retrieved 2013-08-17.
  9. "द कॉमन लिस्प कुकबुक - मैक्रोज़ और बैककोट". Cl-cookbook.sourceforge.net. 2007-01-16. Retrieved 2013-08-17.
  10. Issue of syntax or semantics?


इस पेज में लापता आंतरिक लिंक की सूची

  • पाठ के प्रस्तुतिकरण के लिए प्रयुक्त भाषा
  • बयान (कंप्यूटर विज्ञान)
  • सोर्स कोड
  • चरित्र (कंप्यूटिंग)
  • टेक्स्ट-आधारित यूजर इंटरफेस
  • समवर्ती (कंप्यूटर विज्ञान)
  • नियतात्मक संदर्भ मुक्त भाषा
  • संदर्भ मुक्त व्याकरण
  • नाम संकल्प (प्रोग्रामिंग भाषाएं)
  • रंगहीन हरे विचार सो जाते हैं
  • नल पॉइंटर
  • अप्रारंभीकृत चर
  • प्रोग्रामिंग भाषाओं की तुलना (वाक्यविन्यास)

बाहरी कड़ियाँ

श्रेणी: प्रोग्रामिंग भाषा विषय श्रेणी:स्रोत कोड