प्रोग्रामिंग लैंग्वेजेज की तुलना (वाक्यविन्यास): Difference between revisions
No edit summary |
No edit summary |
||
Line 3: | Line 3: | ||
{{ProgLangCompare}} | {{ProgLangCompare}} | ||
[[प्रोग्रामिंग भाषा|प्रोग्रामिंग | [[प्रोग्रामिंग भाषा|प्रोग्रामिंग लैंग्वेजेज]] की यह तुलना 50 से अधिक कंप्यूटर प्रोग्रामिंग लैंग्वेजेज के लिए सिंटेक्स (प्रारूप) की विशेषताओं की तुलना करती है। | ||
== | == एक्सप्रेशंस == | ||
प्रोग्रामिंग | प्रोग्रामिंग लैंग्वेज [[अभिव्यक्ति (प्रोग्रामिंग)|एक्सप्रेशंस]] को मोटे तौर पर चार सिंटेक्स स्ट्रक्चरों में वर्गीकृत किया जा सकता है: | ||
; | ;प्रीफिक्स नोटेशन | ||
* [[लिस्प (प्रोग्रामिंग भाषा)]] <code>(* (+ 2 3) (expt 4 5))</code> | * [[लिस्प (प्रोग्रामिंग भाषा)|लिस्प]] <code>(* (+ 2 3) (expt 4 5))</code> | ||
;इन्फिक्स नोटेशन | ;इन्फिक्स नोटेशन | ||
*[[फोरट्रान]] <code>(2 + 3) * (4 ** 5)</code> | *[[फोरट्रान]] <code>(2 + 3) * (4 ** 5)</code> | ||
; | ;सफिक्स, पोस्टफिक्स, या [[रिवर्स पोलिश नोटेशन]] | ||
* [[फोर्थ (प्रोग्रामिंग भाषा)]] <code>2 3 + 4 5 ** *</code> | * [[फोर्थ (प्रोग्रामिंग भाषा)|फोर्थ]] <code>2 3 + 4 5 ** *</code> | ||
; | ;मैथ-लाइक नोटेशन | ||
* [[ट्यूटर (प्रोग्रामिंग भाषा)]] <code>(2 + 3)(4<sup>5</sup>) $$ note implicit multiply operator</code> | * [[ट्यूटर (प्रोग्रामिंग भाषा)|ट्यूटर]] <code>(2 + 3)(4<sup>5</sup>) $$ note implicit multiply operator</code> | ||
== | == स्टेटमेंट == | ||
जब किसी प्रोग्रामिंग भाषा में [[ वक्तव्य (प्रोग्रामिंग) ]] होता है, तो उनके पास सामान्यतः इसके लिए कन्वेंशन होते हैं: | जब किसी प्रोग्रामिंग [[प्रोग्रामिंग भाषा|लैंग्वेजेज]] में [[ वक्तव्य (प्रोग्रामिंग) |स्टेटमेंट]] होता है, तो उनके पास सामान्यतः इसके लिए कन्वेंशन होते हैं: | ||
* | * स्टेटमेंट सेपटर्स; | ||
* स्टेटमेंट टर्मिनेटर; और | * स्टेटमेंट टर्मिनेटर; और | ||
* लाइन कॉन्टीनुअशन | * लाइन कॉन्टीनुअशन | ||
एक | एक स्टेटमेंट सेपटर्स दो अलग-अलग स्टेटमेंटो के मध्य सीमा का सीमांकन करता है। एक स्टेटमेंट टर्मिनेटर एक इंडिविजुअल स्टेटमेंट के अंत को परिभाषित करता है। वे लैंग्वेज जो लाइन के अंत को किसी स्टेटमेंटो का अंत मानती हैं, लाइन-ओरिएंटेड लैंग्वेज कहलाती हैं। | ||
लाइन कॉन्टीनुअशन लाइन- | लाइन कॉन्टीनुअशन लाइन-ओरिएंटेड लैंग्वेजेज में एक कन्वेंशन है जहां न्यूलाइन करैक्टर को स्टेटमेंट टर्मिनेटर के रूप में संभावित रूप से गलत समझा जा सकता है। ऐसे लैंग्वेजेज में, यह एक ही स्टेटमेंट को केवल एक लाइन से अधिक फैलाने की अनुमति देता है। | ||
{| class="wikitable sortable" | {| class="wikitable sortable" | ||
Line 36: | Line 36: | ||
|- | |- | ||
| [[ABAP|एबीएपी]]<!-- Language !--> | | [[ABAP|एबीएपी]]<!-- Language !--> | ||
| | | पीरियड सेपरेटेड<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Ada (programming language)|एडीए]]<!-- Language !--> | | [[Ada (programming language)|एडीए]]<!-- Language !--> | ||
Line 53: | Line 53: | ||
| [[APL (programming language)|एपीएल]]<!-- Language !--> | | [[APL (programming language)|एपीएल]]<!-- Language !--> | ||
| न्यूलाइन टर्मिनेटेड<!-- Statement separator-terminator !--> | | न्यूलाइन टर्मिनेटेड<!-- Statement separator-terminator !--> | ||
| <code>[Direct_function ⋄]</code> सेपरेटेड | | <code>[Direct_function ⋄]</code> सेपरेटेड सेकेंडरी<!-- separator-terminator !--> | ||
|- | |- | ||
| [[AppleScript|एप्पलस्क्रिप्ट]]<!-- Language !--> | | [[AppleScript|एप्पलस्क्रिप्ट]]<!-- Language !--> | ||
Line 70: | Line 70: | ||
| [[C (programming language)|सी]]<!-- Language !--> | | [[C (programming language)|सी]]<!-- Language !--> | ||
| सेमीकोलन टर्मिनटेस स्टेटमेंट्स<!-- Statement terminator !--> | | सेमीकोलन टर्मिनटेस स्टेटमेंट्स<!-- Statement terminator !--> | ||
| कॉमा | | कॉमा सेपरेट्स एक्सप्रेशंस<!-- separator-terminator !--> | ||
|- | |- | ||
| [[C++|सी++]]<!-- Language !--> | | [[C++|सी++]]<!-- Language !--> | ||
| सेमीकोलन टर्मिनटेस स्टेटमेंट्स<!-- Statement separator-terminator !--> | | सेमीकोलन टर्मिनटेस स्टेटमेंट्स<!-- Statement separator-terminator !--> | ||
| कॉमा | | कॉमा सेपरेट्स एक्सप्रेशंस<!-- separator-terminator !--> | ||
|- | |- | ||
| [[C Sharp (programming language)|सी#]]<!-- Language !--> | | [[C Sharp (programming language)|सी#]]<!-- Language !--> | ||
Line 80: | Line 80: | ||
|- | |- | ||
| [[COBOL|कोबोल]]<!-- Language !--> | | [[COBOL|कोबोल]]<!-- Language !--> | ||
| | | वाइटस्पेस सेपरेटेड, कभी-कभी पीरियड सेपरेटेड, वैकल्पिक रूप से कॉमा और सेमीकोलन के साथ सेपरेट किया गया।<!-- Statement separator-terminator !--> | ||
| | | | ||
|- | |- | ||
Line 111: | Line 111: | ||
|- | |- | ||
| [[Forth (programming language)|फोर्थ]]<!-- Language !--> | | [[Forth (programming language)|फोर्थ]]<!-- Language !--> | ||
| | | सेमीकोलन सेपरेट किया गया (लेकिन प्रायः स्टेटमेंट टर्मिनेटर के रूप में इन्सर्ट किया जाता है) | ||
|- | |- | ||
| [[GFA BASIC|जीएफए बेसिक]]<!-- Language !--><!-- Statement separator-terminator !--> | | [[GFA BASIC|जीएफए बेसिक]]<!-- Language !--><!-- Statement separator-terminator !--> | ||
Line 117: | Line 117: | ||
|- | |- | ||
| [[Go (programming language)|गो]]<!-- Language !--> | | [[Go (programming language)|गो]]<!-- Language !--> | ||
| सेमीकोलन सेपरेटेड ( | | सेमीकोलन सेपरेटेड (इनसेरटेड बाय कम्पाइलर)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| हास्केल (डू-नोटेशन में)<!-- Language !--> | | हास्केल (डू-नोटेशन में)<!-- Language !--> | ||
| | | न्यूलाइन सेपरेटेड<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| हास्केल (डू-नोटेशन में, जब ब्रेसिज़ का उपयोग किया जाता है)<!-- Language !--> | | हास्केल (डू-नोटेशन में, जब ब्रेसिज़ का उपयोग किया जाता है)<!-- Language !--> | ||
Line 130: | Line 130: | ||
|- | |- | ||
| [[JavaScript|जावास्क्रिप्ट]]<!-- Language !--> | | [[JavaScript|जावास्क्रिप्ट]]<!-- Language !--> | ||
| सेमीकोलन सेपरेटेड ( | | सेमीकोलन सेपरेटेड (लेकिन प्रायः स्टेटमेंट टर्मिनेटर के रूप में इन्सर्ट किया जाता है)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
|[[Kotlin (programming language)|कोटलिन]]<!-- Language !--> | |[[Kotlin (programming language)|कोटलिन]]<!-- Language !--> | ||
|सेमीकोलन सेपरेटेड ( | |सेमीकोलन सेपरेटेड (लेकिन कभी-कभी न्यूलाइन्स पर अप्रत्यक्ष रूप से इन्सर्ट किया जाता है)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Lua (programming language)|लुआ]]<!-- Language !--> | | [[Lua (programming language)|लुआ]]<!-- Language !--> | ||
| | | वाइटस्पेस सेपरेटेड (सेमीकोलन ऑप्शनल)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| मेथेमेटिका | | मेथेमेटिका | ||
वोल्फ्राम भी कहा जाता है<!-- Language !--> | वोल्फ्राम भी कहा जाता है<!-- Language !--> | ||
| सेमीकोलन सेपरेटेड<!-- Statement separator-terminator !--> | | सेमीकोलन सेपरेटेड<!-- Statement separator-terminator !--> | ||
| | |||
|- | |- | ||
| [[MATLAB|मेटलैब]]<!-- Language !--> | | [[MATLAB|मेटलैब]]<!-- Language !--> | ||
| न्यूलाइन टर्मिनेटेड<!-- Statement separator-terminator !--> | | न्यूलाइन टर्मिनेटेड<!-- Statement separator-terminator !--> | ||
| सेमीकोलन | | सेमीकोलन या कॉमा<ref>semicolon – result of receding statement hidden, comma – result displayed</ref> | ||
|- | |- | ||
|[[MUMPS|एमयूएमपीएस]] <br /> '''M''' भी कहा जाता है<!-- Language !--> | |[[MUMPS|एमयूएमपीएस]] <br /> '''M''' भी कहा जाता है<!-- Language !--> | ||
| | |न्यूलाइन लाइन-स्कोप को टर्मिनेट करती है, जो M के "स्टेटमेंट" के सबसे निकट है।<!-- Statement separator-terminator !--> | ||
| | |एक स्पेस एक कमांड को सेपरेट्स/टर्मिनटेस करता है, जिससे दूसरे कमांड को अनुसरण करने की अनुमति मिलती है।<!-- separator-terminator !--> | ||
|- | |- | ||
|[[Nim (programming language)|निम]]<!-- Language !--> | |[[Nim (programming language)|निम]]<!-- Language !--> | ||
Line 181: | Line 182: | ||
|- | |- | ||
| [[Prolog|प्रोलॉग]]<!-- Language !--> | | [[Prolog|प्रोलॉग]]<!-- Language !--> | ||
| कॉमा सेपरेटेड ( | | कॉमा सेपरेटेड (कंजक्शन), सेमीकोलन सेपरेटेड (डिस्जंक्शन), पीरियड टर्मिनेटेड (क्लॉज़)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Python (programming language)|पायथन]]<!-- Language !--> | | [[Python (programming language)|पायथन]]<!-- Language !--> | ||
Line 195: | Line 196: | ||
|- | |- | ||
| [[Red (programming language)|रेड]]<!-- Language !--> | | [[Red (programming language)|रेड]]<!-- Language !--> | ||
| | | वाइटस्पेस सेपरेटेड<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Ruby (programming language)|रूबी]]<!-- Language !--> | | [[Ruby (programming language)|रूबी]]<!-- Language !--> | ||
Line 206: | Line 207: | ||
|- | |- | ||
| [[Scala (programming language)|स्काला]]<!-- Language !--> | | [[Scala (programming language)|स्काला]]<!-- Language !--> | ||
| न्यूलाइन टर्मिनेटेड (सेमीकोलन | | न्यूलाइन टर्मिनेटेड (सेमीकोलन ऑप्शनल)<!-- Statement separator-terminator !--> | ||
| सेमीकोलन<!-- separator-terminator !--> | | सेमीकोलन<!-- separator-terminator !--> | ||
|- | |- | ||
| [[Seed7|सीड7]]<!-- Language !--> | | [[Seed7|सीड7]]<!-- Language !--> | ||
| सेमीकोलन सेपरेटेड (सेमीकोलन | | सेमीकोलन सेपरेटेड (सेमीकोलन टर्मिनेशन की अनुमति है)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Simula|सिमुला]]<!-- Language !--> | | [[Simula|सिमुला]]<!-- Language !--> | ||
Line 225: | Line 226: | ||
|- | |- | ||
| [[Swift (programming language)|स्विफ्ट]]<!-- Language !--> | | [[Swift (programming language)|स्विफ्ट]]<!-- Language !--> | ||
| सेमीकोलन सेपरेटेड ( | | सेमीकोलन सेपरेटेड (इनसेरटेड बाय कम्पाइलर)<!-- Statement separator-terminator !--> | ||
|- | |- | ||
| [[Visual Basic|विज़ुअल बेसिक]]<!-- Language !--> | | [[Visual Basic|विज़ुअल बेसिक]]<!-- Language !--> | ||
Line 243: | Line 244: | ||
|-class="sortbottom" | |-class="sortbottom" | ||
! लैंग्वेज | ! लैंग्वेज | ||
! | ! स्टेटमेंट सेपरेटर-टर्मिनेटर | ||
! | ! सेकेंडरी सेपरेटर-टर्मिनेटर<ref name="ss1"/> | ||
|} | |} | ||
=== लाइन कॉन्टीनुअशन === | === लाइन कॉन्टीनुअशन === | ||
लाइन कॉन्टीनुअशन सामान्यतः [[शाब्दिक विश्लेषण]] के | लाइन कॉन्टीनुअशन सामान्यतः [[शाब्दिक विश्लेषण|लेक्सिकल एनालिसिस]] के भाग के रूप में की जाती है: एक न्यूलाइन के परिणामस्वरूप सामान्यतः टोकन स्ट्रीम में एक टोकन जोड़ा जाता है, जब तक कि लाइन कॉन्टीनुअशन का पता नहीं चलता। | ||
; | ;<nowiki>वाइटस्पेस करैक्टर - ऐसी लैंग्वेज जिन्हें कॉन्टीनुअशन की आवश्यकता नहीं है:</nowiki> | ||
* [[एडा (प्रोग्रामिंग भाषा)]] - | * [[एडा (प्रोग्रामिंग भाषा)|एडा]] - लाइन्स सेमीकोलन से समाप्त होती हैं। | ||
* | * सी# - लाइन्स सेमीकोलन से समाप्त होती हैं। | ||
* [[जावास्क्रिप्ट]] - | * [[जावास्क्रिप्ट]] - लाइन्स सेमीकोलन से समाप्त होती हैं (जिसका अनुमान लगाया जा सकता है)। | ||
* [[लुआ (प्रोग्रामिंग भाषा)]] | * [[लुआ (प्रोग्रामिंग भाषा)|लुआ]] | ||
* [[ओकैमल]] | * [[ओकैमल]] | ||
;[[ एम्पसेंड ]] | ;[[ एम्पसेंड ]]लाइन के लास्ट करैक्टर के रूप में | ||
* [[फोरट्रान 90]], [[फोरट्रान 95]], [[फोरट्रान 2003]], [[फोरट्रान 2008]] | * [[फोरट्रान 90]], [[फोरट्रान 95]], [[फोरट्रान 2003]], [[फोरट्रान 2008]] | ||
; | ;लाइन के लास्ट करैक्टर के रूप में [[बैकस्लैश]] | ||
* [[बैश (यूनिक्स शेल)]]<ref>''[https://www.gnu.org/software/bash/manual/bashref.html Bash Reference Manual],'' [https://www.gnu.org/software/bash/manual/bashref.html#Escape-Character 3.1.2.1 Escape Character]</ref> और अन्य यूनिक्स शैल | * [[बैश (यूनिक्स शेल)]]<ref>''[https://www.gnu.org/software/bash/manual/bashref.html Bash Reference Manual],'' [https://www.gnu.org/software/bash/manual/bashref.html#Escape-Character 3.1.2.1 Escape Character]</ref> और अन्य यूनिक्स शैल | ||
* | * सी और [[C++|सी++]] प्रीप्रोसेसर | ||
* | * मेथेमेटिका और [[वोल्फ्राम भाषा|वोल्फ्राम लैंग्वेज]] | ||
* [[पायथन (प्रोग्रामिंग भाषा)]]<ref>[https://docs.python.org/ Python Documentation], [https://docs.python.org/3/reference/lexical_analysis.html 2. Lexical analysis]: [https://docs.python.org/3/reference/lexical_analysis.html#explicit-line-joining 2.1.5. Explicit line joining]</ref> | * [[पायथन (प्रोग्रामिंग भाषा)|पायथन]] <ref>[https://docs.python.org/ Python Documentation], [https://docs.python.org/3/reference/lexical_analysis.html 2. Lexical analysis]: [https://docs.python.org/3/reference/lexical_analysis.html#explicit-line-joining 2.1.5. Explicit line joining]</ref> | ||
* [[रूबी (प्रोग्रामिंग भाषा)]] | * [[रूबी (प्रोग्रामिंग भाषा)|रूबी]] | ||
* जावास्क्रिप्ट - केवल एकल- या दोहरे-उद्धृत स्ट्रिंग के भीतर | * जावास्क्रिप्ट - केवल एकल- या दोहरे-उद्धृत स्ट्रिंग के भीतर | ||
; | ;लाइन के लास्ट करैक्टर के रूप में [[बैकटिक]] | ||
* [[पावरशेल]] | * [[पावरशेल]] | ||
; | ;लाइन के लास्ट करैक्टर के रूप में [[हैफ़ेन]] | ||
*[[एसक्यूएल*प्लस]] | *[[एसक्यूएल*प्लस]] | ||
; | ;लाइन के लास्ट करैक्टर के रूप मेंअंडरस्कोर | ||
* [[ऑटोआईट]] | * [[ऑटोआईट]] | ||
* [[कोबरा (प्रोग्रामिंग भाषा)]] | * [[कोबरा (प्रोग्रामिंग भाषा)|कोबरा]] | ||
* [[मूल दृश्य]] | * [[मूल दृश्य|विसुअल बेसिक]] | ||
*[[Xhojo]] | *[[Xhojo|ज़ोजो]] | ||
;[[ अंडाकार ]] (तीन अवधियों के रूप में-एक | ;[[ अंडाकार | एलिप्सिस]] (तीन अवधियों के रूप में-एक स्पेशल करैक्टर नहीं) | ||
* मैटलैब: इलिप्सिस टोकन को लाइन पर | * मैटलैब: इलिप्सिस टोकन को लाइन पर लास्ट करैक्टर होने की आवश्यकता नहीं है, लेकिन इसके बाद आने वाले किसी भी करैक्टर को इग्नॉर कर दिया जाएगा।<ref>[http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/f0-5789.html Mathworks.com] {{webarchive|url=https://web.archive.org/web/20100207151905/http://www.mathworks.com/access/helpdesk/help/techdoc/matlab_env/f0-5789.html |date=7 February 2010 }}</ref> संक्षेप में, यह एक कमेंट प्रारंभ करता है जो पहले बाद वाले न्यूलाइन करैक्टर तक विस्तारित होता है (अर्थात, इसमें सम्मिलित होता है)। एक इनलाइन कमेंट के साथ इसकी तुलना करें, जो पहले बाद वाले न्यूलाइन तक विस्तारित होती है। | ||
; | ;लाइन के लास्ट करैक्टर के रूप में कॉमा डिलिमिटर | ||
* रूबी (कमेंट | * रूबी (कमेंट डिलिमिटर का अनुसरण कर सकती है) | ||
; | ;लाइन के लास्ट करैक्टर के रूप में लेफ्ट ब्रैकेट डिलिमिटर | ||
* [[बैच फ़ाइल]]: एक | * [[बैच फ़ाइल]]: एक ब्रैकेट ब्लॉक प्रारंभ करने से लाइन को जारी रखने की अनुमति मिल सकती है।<ref>https://ss64.com/nt/syntax-brackets.html</ref> | ||
* रूबी: | * रूबी: लेफ्ट ब्रैकेट, लेफ्ट स्क्वायर ब्रैकेट, या लेफ्ट कर्ली ब्रैकेट | ||
;[[ऑपरेटर (कंप्यूटर प्रोग्रामिंग)]] | ;लाइन के अंतिम ऑब्जेक्ट के रूप में [[ऑपरेटर (कंप्यूटर प्रोग्रामिंग)|ऑपरेटर]] | ||
* रूबी (कमेंट ऑपरेटर का अनुसरण कर सकती है) | * रूबी (कमेंट ऑपरेटर का अनुसरण कर सकती है) | ||
; | ;लाइन के फर्स्ट करैक्टर के रूप में ऑपरेटर | ||
* [[ऑटोहॉटकी]]: ++ और --, साथ ही | * [[ऑटोहॉटकी]]: ++ और --, साथ ही कॉमा या पीरियड को छोड़कर कोई भी एक्सप्रेशन ऑपरेटर<ref>{{Cite web|url=https://autohotkey.com/docs/Scripts.htm#continuation|title = Scripts - Definition & Usage | AutoHotkey}}</ref> | ||
; | ;कन्टिन्यूड लाइन के फर्स्ट करैक्टर के रूप में बैकस्लैश | ||
*[[विम्सस्क्रिप्ट]] | *[[विम्सस्क्रिप्ट]] | ||
==== इनलाइन कमेंटों का कुछ रूप लाइन कॉन्टीनुअशन के रूप में कार्य करता है ==== | |||
* [[टर्बो असेंबलर]]: <code>\</code> | * [[टर्बो असेंबलर]]: <code>\</code> | ||
* [[M4 (कंप्यूटर भाषा)]]: <code>dnl</code> | * [[M4 (कंप्यूटर भाषा)|एम4]]: <code>dnl</code> | ||
* टीएक्स: <code>%</code> | * टीएक्स: <code>%</code> | ||
; | ;करैक्टर पोजीशन | ||
* [[फोरट्रान 77]]: यदि कोई | * [[फोरट्रान 77]]: यदि कॉलम 6 में कोई नॉन-स्पेस वर्ण दिखाई देता है तो एक नॉन-कमेंट लाइन पिछली नॉन-कमेंट लाइन की कॉन्टीनुअशन है। कमेंट लाइन्स को जारी नहीं रखा जा सकता है। | ||
* [[COBOL]]: पिक्चर क्लॉज में | * [[COBOL|कोबोल]]: स्ट्रिंग कांस्टेंट को पिक्चर क्लॉज में ओरिजिनल स्ट्रिंग को <code>'</code>,के साथ समाप्त न करके, फिर कॉलम 7 में <code>-</code> इन्सर्टकर जारी रखा जा सकता है( कमेंट के लिए <code>*</code> के समान स्थिति का उपयोग किया जाता है)। | ||
* ट्यूटर | * ट्यूटर: एक टैब से प्रारंभ होने वाली लाइनें (संदर्भ द्वारा आवश्यक किसी भी इंडेंटेशन के बाद) पिछले कमांड को जारी रखती हैं। | ||
;[अंत और आरंभ] सामान्य उद्धरण चिह्नों का उपयोग करते हुए | ;[अंत और आरंभ] सामान्य उद्धरण चिह्नों का उपयोग करते हुए | ||
* सी | * सी और सी++ प्रीप्रोसेसर: स्ट्रिंग सामान्य रूप से समाप्त हो जाती है और अगली लाइन पर एक उद्धरण के साथ प्रारंभ होकर जारी रहती है। | ||
== | == [[सॉफ्टवेयर लाइब्रेरी|लाइब्रेरी]] == | ||
{{Expand section|date= | {{Expand section|date=दिसम्बर 2009}} | ||
लाइब्रेरी को इम्पोर्ट करना, संभवतः कपिलेड, रूटीन, प्रोग्राम या पैकेज के रीड एक्सटर्नल एक तरीका है। इम्पोर्ट्स को स्तर (मॉड्यूल, पैकेज, क्लास, प्रोसीजर,...) और सिंटैक्स (डायरेक्टिव नेम, ऐट्रिब्यूट्स,...) द्वारा वर्गीकृत किया जा सकता है। | |||
;फ़ाइल | ;फ़ाइल इम्पोर्ट | ||
* <code>addpath(''directory'')</code>[[मतलब|मेटलैब]]<ref>For an M-file (MATLAB source) to be accessible by name, its parent directory must be in the search path (or current directory).</ref> | * <code>addpath(''directory'')</code> [[मतलब|मेटलैब]]<ref>For an M-file (MATLAB source) to be accessible by name, its parent directory must be in the search path (or current directory).</ref> | ||
* {{code|COPY filename.|cobolfree}} कोबोल | * {{code|COPY filename.|cobolfree}} कोबोल | ||
* <code>:-include("''filename''").</code> [[प्रोलॉग]] | * <code>:-include("''filename''").</code> [[प्रोलॉग]] | ||
* <code>#include file="''filename''"</code> [[सक्रिय सर्वर पेज]] | * <code>#include file="''filename''"</code> [[सक्रिय सर्वर पेज|एएसपी]] | ||
* <code>#include "''filename''"</code>, ऑटोहॉटकी, ऑटोइट, सी | * <code>#include "''filename''"</code>, ऑटोहॉटकी, ऑटोइट, सी, सी++ | ||
* <code>#include <''filename''></code>ऑटोहॉटकी, ऑटोइट, सी | * <code>#include <''filename''></code> ऑटोहॉटकी, ऑटोइट, सी, सी++ | ||
* <code>#import "''filename''"</code>, [[उद्देश्य सी|ऑब्जेक्टिव सी]] | * <code>#import "''filename''"</code>, [[उद्देश्य सी|ऑब्जेक्टिव सी]] | ||
* <code>#import <''filename''></code> ऑब्जेक्टिव सी | * <code>#import <''filename''></code> ऑब्जेक्टिव सी | ||
* {{code|Import["filename"]|mathematica}} | * {{code|Import["filename"]|mathematica}} मेथेमेटिका और वोल्फ्राम लैंग्वेज | ||
* {{code|include 'filename'|fortran}} [[फोरट्रान]] | * {{code|include 'filename'|fortran}} [[फोरट्रान]] | ||
* <code>include "''filename''";</code>[[पीएचपी]] | * <code>include "''filename''";</code> [[पीएचपी]] | ||
* <code>include [filename] program</code>, | * <code>include [filename] program</code>, पिक बेसिक | ||
* <code>#include [filename] program</code> बेसिक | * <code>#include [filename] program</code> पिक बेसिक | ||
* <code>include!("''filename''");</code>[[जंग (प्रोग्रामिंग भाषा)|रस्ट | * <code>include!("''filename''");</code> [[जंग (प्रोग्रामिंग भाषा)|रस्ट]] | ||
* <code>load "''filename''"</code>रूबी | * <code>load "''filename''"</code> रूबी | ||
* {{code|load %filename|red}} [[लाल (प्रोग्रामिंग भाषा)]] | * {{code|load %filename|red}} [[लाल (प्रोग्रामिंग भाषा)|रेड]] | ||
* {{ml-lua|filename}} लुआ | * {{ml-lua|filename}} लुआ | ||
* <code>require "''filename''";</code> [[पर्ल]], पीएचपी | * <code>require "''filename''";</code> [[पर्ल]], पीएचपी | ||
* {{code|require "filename"|ruby}} रूबी | * {{code|require "filename"|ruby}} रूबी | ||
* {{code|source(""filename"")|r}} [[आर (प्रोग्रामिंग भाषा)]] | * {{code|source(""filename"")|r}} [[आर (प्रोग्रामिंग भाषा)|आर]] | ||
;पैकेज | ;पैकेज इम्पोर्ट | ||
* <code>#include ''filename''</code> सी | * <code>#include ''filename''</code> सी, सी++ | ||
* <code>#[path = "''filename''"] mod ''altname'';</code>, रस्ट | * <code>#[path = "''filename''"] mod ''altname'';</code>, रस्ट | ||
* <code>@import ''module'';</code> ऑब्जेक्टिव सी | * <code>@import ''module'';</code> ऑब्जेक्टिव सी | ||
* <code><<''name''</code> | * <code><<''name''</code> मेथेमेटिका और वोल्फ्राम लैंग्वेज | ||
* {{code|:-use_module(module).|prolog}} प्रोलॉग: | * {{code|:-use_module(module).|prolog}} प्रोलॉग: | ||
* <code>from ''module'' import *</code> पायथन | * <code>from ''module'' import *</code> पायथन | ||
* <code>extern crate ''libname'';</code>, रस्ट | * <code>extern crate ''libname'';</code>, रस्ट | ||
* <code>extern crate ''libname'' as ''altname'';</code> रस्ट | * <code>extern crate ''libname'' as ''altname'';</code> रस्ट | ||
* <code>mod ''modname'';</code>, रस्ट | * <code>mod ''modname'';</code>, रस्ट | ||
* <code>IMPORT ''module''</code> [[ओबेरॉन (प्रोग्रामिंग भाषा)|ओबेरॉन]] | |||
* <code>IMPORT ''module''</code> [[ओबेरॉन (प्रोग्रामिंग भाषा)]] | * <code>import ''altname'' "''package/name''"</code> [[जाओ (प्रोग्रामिंग भाषा)|गो]] | ||
* <code>import ''altname'' "''package/name''"</code> [[जाओ (प्रोग्रामिंग भाषा)]] | * <code>import ''package.module'';</code>, [[डी (प्रोग्रामिंग भाषा)|डी]] | ||
* <code>import ''package.module'';</code>, [[डी (प्रोग्रामिंग भाषा)]] | * <code>import ''altname'' = ''package.module'';</code> डी | ||
* <code>import ''altname'' = ''package.module'';</code> डी | * <code>import ''Module''</code>, [[हास्केल (प्रोग्रामिंग भाषा)|हास्केल]] | ||
* <code>import ''Module''</code>, [[हास्केल (प्रोग्रामिंग भाषा)]] | * <code>import qualified ''Module'' as ''M''</code> हास्केल | ||
* <code>import qualified ''Module'' as ''M''</code> हास्केल | * <code>import ''package''.*</code> [[जावा (प्रोग्रामिंग भाषा)|जावा]], मेटलैब, [[कोटलिन (प्रोग्रामिंग भाषा)|कोटलिन]] | ||
* <code>import ''package''.*</code> [[जावा (प्रोग्रामिंग भाषा)]], मेटलैब, [[कोटलिन (प्रोग्रामिंग भाषा)]] | |||
* <code>import "''modname''";</code> जावास्क्रिप्ट: | * <code>import "''modname''";</code> जावास्क्रिप्ट: | ||
* <code>import ''altname'' from "''modname''";</code>, जावास्क्रिप्ट: | * <code>import ''altname'' from "''modname''";</code>, जावास्क्रिप्ट: | ||
* <code>import ''package''</code> [[स्काला (प्रोग्रामिंग भाषा)]] | * <code>import ''package''</code> [[स्काला (प्रोग्रामिंग भाषा)|स्काला]] | ||
* <code>import ''package''._</code>, स्काला | * <code>import ''package''._</code>, स्काला | ||
* <code>import ''module''</code> [[स्विफ्ट (प्रोग्रामिंग भाषा)]] | * <code>import ''module''</code> [[स्विफ्ट (प्रोग्रामिंग भाषा)|स्विफ्ट]] | ||
* <code>import ''module''</code>, पायथन | * <code>import ''module''</code>, पायथन | ||
* {{ml-lua|modname}} लुआ | * {{ml-lua|modname}} लुआ | ||
* {{code|require "gem"|ruby}}, रूबी | * {{code|require "gem"|ruby}}, रूबी | ||
* <code>use ''module''</code>, फोरट्रान 90+ | * <code>use ''module''</code>, फोरट्रान 90+ | ||
* <code>use ''module'', only : ''identifier''</code> फोरट्रान 90+ | * <code>use ''module'', only : ''identifier''</code> फोरट्रान 90+ | ||
* <code>use ''Module'';</code>, पर्ल | * <code>use ''Module'';</code>, पर्ल | ||
* <code>use Module qw(''import options'');</code>पर्ल | * <code>use Module qw(''import options'');</code> पर्ल | ||
* <code>use ''Package''.''Name''</code> कोबरा | * <code>use ''Package''.''Name''</code> कोबरा | ||
* <code>uses ''unit''</code> [[पास्कल (प्रोग्रामिंग भाषा)]] | * <code>uses ''unit''</code> [[पास्कल (प्रोग्रामिंग भाषा)|पास्कल]] | ||
* <code>with ''package''</code> एडा | * <code>with ''package''</code> एडा | ||
; | ;क्लास इम्पोर्ट | ||
* <code>from ''module'' import ''Class''</code> पायथन | * <code>from ''module'' import ''Class''</code> पायथन | ||
* <code>import ''package''.''class''</code> जावा | * <code>import ''package''.''class''</code> जावा, मेटलैब, कोटलिन | ||
* <code>import ''class'' from "''modname''";</code>, जावास्क्रिप्ट | * <code>import ''class'' from "''modname''";</code>, जावास्क्रिप्ट | ||
* <code>import {''class''} from "''modname''";</code>, जावास्क्रिप्ट | * <code>import {''class''} from "''modname''";</code>, जावास्क्रिप्ट | ||
* <code>import {''class'' as ''altname''} from "''modname''";</code>जावास्क्रिप्ट | * <code>import {''class'' as ''altname''} from "''modname''";</code>जावास्क्रिप्ट | ||
* <code>import ''package''.''class''</code>, स्काला | * <code>import ''package''.''class''</code>, स्काला | ||
* <code>import ''package''.{ ''class1'' => ''alternativeName'', ''class2'' }</code>, स्काला | * <code>import ''package''.{ ''class1'' => ''alternativeName'', ''class2'' }</code>, स्काला | ||
* <code>import ''package''._</code>स्काला | * <code>import ''package''._</code>स्काला | ||
* <code>use ''Namespace\ClassName'';</code>, पीएचपी | * <code>use ''Namespace\ClassName'';</code>, पीएचपी | ||
* <code>use ''Namespace\ClassName as AliasName'';</code> पीएचपी | * <code>use ''Namespace\ClassName as AliasName'';</code> पीएचपी | ||
; | ;प्रोसीजर/फंक्शन इम्पोर्ट | ||
* <code>from ''module'' import ''function''</code> पायथन | * <code>from ''module'' import ''function''</code> पायथन | ||
* <code>import ''package.module'' : ''symbol'';</code>, डी | * <code>import ''package.module'' : ''symbol'';</code>, डी | ||
* <code>import ''package.module'' : ''altsymbolname'' = ''symbol'';</code> डी | * <code>import ''package.module'' : ''altsymbolname'' = ''symbol'';</code> डी | ||
* <code>import ''Module'' (''function'')</code> हास्केल | * <code>import ''Module'' (''function'')</code> हास्केल: | ||
* <code>import ''function'' from "modname";</code>, जावास्क्रिप्ट: | * <code>import ''function'' from "modname";</code>, जावास्क्रिप्ट: | ||
* <code>import {''function''} from "''modname''";</code>, जावास्क्रिप्ट: | * <code>import {''function''} from "''modname''";</code>, जावास्क्रिप्ट: | ||
* <code>import {''function'' as ''altname''} from "''modname''";</code> जावास्क्रिप्ट | * <code>import {''function'' as ''altname''} from "''modname''";</code> जावास्क्रिप्ट | ||
* <code>import ''package''.''function''</code> मेटलैब: | * <code>import ''package''.''function''</code> मेटलैब: | ||
* <code>import ''package''.''class''.''function''</code>, स्काला | * <code>import ''package''.''class''.''function''</code>, स्काला: | ||
* <code>import ''package''.''class''.{ ''function'' => ''alternativeName'', ''otherFunction'' }</code>स्काला | * <code>import ''package''.''class''.{ ''function'' => ''alternativeName'', ''otherFunction'' }</code>स्काला: | ||
* {{code|use Module ('symbol');|perl}} पर्ल | * {{code|use Module ('symbol');|perl}} पर्ल | ||
* <code>use function ''Namespace\function_name'';</code>, पीएचपी: | * <code>use function ''Namespace\function_name'';</code>, पीएचपी: | ||
* <code>use ''Namespace\function_name as function_alias_name'';</code> पीएचपी: | * <code>use ''Namespace\function_name as function_alias_name'';</code> पीएचपी: | ||
* <code>use ''module''::''submodule''::''symbol'';</code>, रस्ट | * <code>use ''module''::''submodule''::''symbol'';</code>, रस्ट: | ||
* <code>use ''module''::''submodule''::{''symbol1'', ''symbol2''};</code>, रस्ट | * <code>use ''module''::''submodule''::{''symbol1'', ''symbol2''};</code>, रस्ट: | ||
* <code>use ''module''::''submodule''::''symbol'' as ''altname'';</code> रस्ट | * <code>use ''module''::''submodule''::''symbol'' as ''altname'';</code> रस्ट: | ||
; | ;कांस्टेंट इम्पोर्ट | ||
* <code>use const ''Namespace\CONST_NAME'';</code> पीएचपी | * <code>use const ''Namespace\CONST_NAME'';</code> पीएचपी | ||
उपरोक्त | उपरोक्त स्टेटमेंटो को इस आधार पर भी वर्गीकृत किया जा सकता है कि क्या वे सिंटैक्टिक कन्वेनैंस हैं (चीज़ों को छोटे नाम से संदर्भित करने की अनुमति देते हैं, लेकिन उन्हें अभी भी इम्पोर्ट के बिना कुछ पूर्णतः योग्य नाम से संदर्भित किया जा सकता है), या क्या उन्हें वास्तव में एक्सेस कोड करने की आवश्यकता है (जिसके बिना कोड तक पहुंचना असंभव है, यहां तक कि पूर्णतया से योग्य नामों के साथ भी)। | ||
; | ;सिंटैक्टिक कन्वेनैंस | ||
* <code>import ''package''.*</code> जावा | * <code>import ''package''.*</code> जावा | ||
* <code>import ''package''.''class''</code> जावा | * <code>import ''package''.''class''</code> जावा | ||
* <code>open ''module''</code> ओकैमल | * <code>open ''module''</code> ओकैमल | ||
;कोड | ;एक्सेस कोड के लिए आवश्यक है | ||
* <code>import altname "''package/name''"</code> | * <code>import altname "''package/name''"</code> गो | ||
* <code>import ''altname'' from "''modname''";</code>जावास्क्रिप्ट | * <code>import ''altname'' from "''modname''";</code> जावास्क्रिप्ट | ||
* <code>import ''module''</code>पायथन | * <code>import ''module''</code> पायथन | ||
== ब्लॉक == | == ब्लॉक == | ||
एक ब्लॉक दो या दो से अधिक | एक ब्लॉक दो या दो से अधिक स्टेटमेंटो, एक्सप्रेशनों या कोड की अन्य यूनिट के समूह के लिए एक नोटेशन है जो इस तरह से संबंधित होते हैं कि एक संपूर्ण को समाहित करते हैं। | ||
;ब्रेसेस (उर्फ घुंघराले ब्रैकेट) <code>{</code> ... <code>}</code>: | ;ब्रेसेस (उर्फ घुंघराले ब्रैकेट) <code>{</code> ... <code>}</code>: | ||
[[घुंघराले ब्रैकेट प्रोग्रामिंग भाषा]] लैंग्वेज: सी (प्रोग्रामिंग | [[घुंघराले ब्रैकेट प्रोग्रामिंग भाषा|घुंघराले ब्रैकेट प्रोग्रामिंग लैंग्वेज]] लैंग्वेज: सी (प्रोग्रामिंग लैंग्वेज), सी++, ऑब्जेक्टिव-सी, गो (प्रोग्रामिंग लैंग्वेज), जावा (प्रोग्रामिंग लैंग्वेज), जावास्क्रिप्ट/ईसीएमएस्क्रिप्ट, सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी#, डी (प्रोग्रामिंग लैंग्वेज), पर्ल , पीएचपी (<code>for</code> & <code>loop</code> लूप, या किसी ब्लॉक को तर्क के रूप में पास करें), आर (प्रोग्रामिंग लैंग्वेज), रस्ट (प्रोग्रामिंग लैंग्वेज), स्काला (प्रोग्रामिंग लैंग्वेज), [[केवल एस]], स्विफ्ट (प्रोग्रामिंग लैंग्वेज), पावरशेल, हास्केल (प्रोग्रामिंग लैंग्वेज) (डू-नोटेशन में) ), ऑटोहॉटकी | ||
; | ;ब्रैकेट <code>(</code> ... <code>)</code> | ||
* बैच फ़ाइल, एफ शार्प (प्रोग्रामिंग | * बैच फ़ाइल, एफ शार्प (प्रोग्रामिंग लैंग्वेज)|एफ# (लाइटवेट सिंटैक्स),<ref name="fsharp">{{cite web |url = https://learn.microsoft.com/en-us/dotnet/fsharp/language-reference/verbose-syntax |title = Verbose Syntax - F# <nowiki>|</nowiki> Microsoft Learn |date = 2021-11-05 |access-date = 17 November 2022 |website = Microsoft Learn}}</ref> ओकैमल, प्रोलॉग, [[ मानक एमएल ]] | ||
;वर्ग | ;वर्ग ब्रैकेट <code>[</code> ... <code>]</code> | ||
* [[विद्रोह]], रेड (प्रोग्रामिंग | * [[विद्रोह]], रेड (प्रोग्रामिंग लैंग्वेज), सेल्फ (प्रोग्रामिंग लैंग्वेज), स्मॉलटॉक (ब्लॉक प्रथम श्रेणी के ऑब्जेक्ट हैं। उर्फ क्लोजर) | ||
;<code>begin</code> ... <code>end</code>: | ;<code>begin</code> ... <code>end</code>: | ||
* Ada (प्रोग्रामिंग | * Ada (प्रोग्रामिंग लैंग्वेज), [[ALGOL]], F शार्प (प्रोग्रामिंग लैंग्वेज)|F# (वर्बोज़ सिंटैक्स),<ref name = "fsharp"/>पास्कल (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज) (<code>for</code>, <code>do/while</code> & <code>do/until</code> लूप्स), ओकैमल, आईसीएल वीएमई#एससीएल, [[ शुरुआत ]], [[एरलांग (प्रोग्रामिंग भाषा)|एरलांग (प्रोग्रामिंग लैंग्वेज)]]। | ||
;<code>do</code> ... <code>end</code>: | ;<code>do</code> ... <code>end</code>: | ||
* पीएल/आई, आरईएक्सएक्स | * पीएल/आई, आरईएक्सएक्स | ||
;<code>do</code> ... <code>done</code>: | ;<code>do</code> ... <code>done</code>: | ||
* बैश (यूनिक्स शेल) (<code>for</code> & <code>while</code> लूप्स), एफ शार्प (प्रोग्रामिंग | * बैश (यूनिक्स शेल) (<code>for</code> & <code>while</code> लूप्स), एफ शार्प (प्रोग्रामिंग लैंग्वेज)|एफ# (वर्बोज़ सिंटैक्स)<ref name = "fsharp"/>विजुअल बेसिक, फोरट्रान, ट्यूटर (प्रोग्रामिंग लैंग्वेज) (ब्लॉक बॉडी के अनिवार्य इंडेंटिंग के साथ), [[ दृश्य प्रोलॉग ]] | ||
;<code>do</code> ... <code>end</code> | ;<code>do</code> ... <code>end</code> | ||
* लुआ (प्रोग्रामिंग | * लुआ (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज) (तर्क के रूप में ब्लॉक पास करें, <code>for</code> लूप), [[सही]] (लूप बॉडी को बीच में घेरता है<code>do</code>और<code>end</code>) | ||
;एक्स ... <code>end</code>(उदा <code>if</code> ... <code>end</code>): | ;एक्स ... <code>end</code>(उदा <code>if</code> ... <code>end</code>): | ||
* रूबी (प्रोग्रामिंग | * रूबी (प्रोग्रामिंग लैंग्वेज) (<code>if</code>, <code>while</code>, <code>until</code>, <code>def</code>, <code>class</code>, <code>module</code> कथन), OCaml (<code>for</code> & <code>while</code> लूप्स), मेटलैब (<code>if</code> & <code>switch</code> सशर्त, <code>for</code> & <code>while</code> लूप, <code>try</code> उपवाक्य, <code>package</code>, <code>classdef</code>, <code>properties</code>, <code>methods</code>, <code>events</code>, & <code>function</code> ब्लॉक), लुआ (प्रोग्रामिंग लैंग्वेज) (<code>then</code> / <code>else</code> & <code>function</code>) | ||
;(<code>begin</code> ...): | ;(<code>begin</code> ...): | ||
* [[योजना (प्रोग्रामिंग भाषा)]] | * [[योजना (प्रोग्रामिंग भाषा)|योजना (प्रोग्रामिंग लैंग्वेज)]] | ||
;(प्रोग्न...): | ;(प्रोग्न...): | ||
* लिस्प (प्रोग्रामिंग | * लिस्प (प्रोग्रामिंग लैंग्वेज) | ||
;(<code>do</code> ...): | ;(<code>do</code> ...): | ||
* [[क्लोजर]] | * [[क्लोजर]] | ||
;इंडेंटेशन | ;इंडेंटेशन | ||
* ऑफ-साइड नियम#ऑफ-साइड नियम लैंग्वेज|ऑफ-साइड नियम लैंग्वेज: [[बू (प्रोग्रामिंग भाषा)]], कोबरा (प्रोग्रामिंग | * ऑफ-साइड नियम#ऑफ-साइड नियम लैंग्वेज|ऑफ-साइड नियम लैंग्वेज: [[बू (प्रोग्रामिंग भाषा)|बू (प्रोग्रामिंग लैंग्वेज)]], कोबरा (प्रोग्रामिंग लैंग्वेज), [[ कॉफ़ीस्क्रिप्ट ]], एफ शार्प (प्रोग्रामिंग लैंग्वेज)|एफ#, हास्केल (प्रोग्रामिंग लैंग्वेज) (इन डू- जब ब्रेसिज़ छोड़े जाते हैं तो नोटेशन), [[लाइवस्क्रिप्ट (प्रोग्रामिंग भाषा)|लाइवस्क्रिप्ट (प्रोग्रामिंग लैंग्वेज)]], ओकैम (प्रोग्रामिंग लैंग्वेज), पायथन (प्रोग्रामिंग लैंग्वेज), नेमेरले (वैकल्पिक; यदि उपयोगकर्ता चाहें तो कर्ली-ब्रेस सिंटैक्स के बजाय व्हाइट-स्पेस संवेदनशील सिंटैक्स का उपयोग कर सकते हैं) , [[निम (प्रोग्रामिंग भाषा)|निम (प्रोग्रामिंग लैंग्वेज)]], स्काला (प्रोग्रामिंग लैंग्वेज) (वैकल्पिक, जैसा कि [[नेमर्ले]] में है) | ||
* फ्री-फ़ॉर्म लैंग्वेज: ALGOL के अधिकांश वंशज (C (प्रोग्रामिंग | * फ्री-फ़ॉर्म लैंग्वेज: ALGOL के अधिकांश वंशज (C (प्रोग्रामिंग लैंग्वेज), पास्कल (प्रोग्रामिंग लैंग्वेज), और पर्ल सहित); लिस्प (प्रोग्रामिंग लैंग्वेज) लैंग्वेज | ||
;अन्य | ;अन्य | ||
* एडा (प्रोग्रामिंग | * एडा (प्रोग्रामिंग लैंग्वेज), विजुअल बेसिक, सीड7: <code>if</code> ... <code>end if</code> | ||
* [[एपीएल (प्रोग्रामिंग भाषा)]]: <code>:If</code> ... <code>:EndIf</code> या <code>:If</code> ... <code>:End</code> | * [[एपीएल (प्रोग्रामिंग भाषा)|एपीएल (प्रोग्रामिंग लैंग्वेज)]]: <code>:If</code> ... <code>:EndIf</code> या <code>:If</code> ... <code>:End</code> | ||
* बैश (यूनिक्स शेल), [[बॉर्न शैल]], और [[ के शेल ]]: <code>if</code> ... <code>fi</code>, <code>do</code> ... <code>done</code>, <code>case</code> ... <code>esac</code>; | * बैश (यूनिक्स शेल), [[बॉर्न शैल]], और [[ के शेल ]]: <code>if</code> ... <code>fi</code>, <code>do</code> ... <code>done</code>, <code>case</code> ... <code>esac</code>; | ||
* अल्गोल 68: <code>begin</code> ... <code>end</code>, <code>(</code> ... <code>)</code>, <code>if</code> ... <code>fi</code>, <code>do</code> ... <code>od</code> | * अल्गोल 68: <code>begin</code> ... <code>end</code>, <code>(</code> ... <code>)</code>, <code>if</code> ... <code>fi</code>, <code>do</code> ... <code>od</code> | ||
* लुआ (प्रोग्रामिंग | * लुआ (प्रोग्रामिंग लैंग्वेज), पास्कल (प्रोग्रामिंग लैंग्वेज), [[मॉड्यूल-2]], सीड7: <code>repeat</code> ... <code>until</code> | ||
*कोबोल: <code>IF</code> ... <code>END-IF</code>, <code>PERFORM</code> ... <code>END-PERFORM</code>, आदि कथनों के लिए; ... <code>.</code> वाक्यों के लिए. | *कोबोल: <code>IF</code> ... <code>END-IF</code>, <code>PERFORM</code> ... <code>END-PERFORM</code>, आदि कथनों के लिए; ... <code>.</code> वाक्यों के लिए. | ||
* विजुअल बेसिक .नेट: <code>If</code> ... <code>End If</code>, <code>For</code> ... <code>Next</code>, <code>Do</code> ... <code>Loop</code> | * विजुअल बेसिक .नेट: <code>If</code> ... <code>End If</code>, <code>For</code> ... <code>Next</code>, <code>Do</code> ... <code>Loop</code> | ||
Line 509: | Line 509: | ||
|- | |- | ||
|<code>;</code> | |<code>;</code> | ||
|अधिकांश असेंबली | |अधिकांश असेंबली लैंग्वेजएँ, ऑटोहॉटकी, ऑटोइट, लिस्प, कॉमन लिस्प, क्लोजर, पीजीएन, रीबोल, रेड, स्कीम | ||
|- | |- | ||
|<code><nowiki>--</nowiki></code> | |<code><nowiki>--</nowiki></code> | ||
Line 531: | Line 531: | ||
=== कमेंट ब्लॉक | === कमेंट ब्लॉक === | ||
ब्लॉक कमेंट सामान्यतः वे होती हैं जो किसी कमेंट की शुरुआत को इंगित करने के लिए एक सीमांकक का उपयोग करती हैं, और किसी कमेंट के अंत को इंगित करने के लिए एक अन्य सीमांकक का उपयोग करती हैं। इस संदर्भ में, व्हाइटस्पेस वर्ण और न्यूलाइन वर्णों को सीमांकक के रूप में नहीं गिना जाता है। उदाहरणों में, प्रतीक ~ कमेंट का प्रतिनिधित्व करता है; और, इसके आस-पास के प्रतीकों को व्याख्याकारों/संकलकों द्वारा सीमांकक के रूप में समझा जाता है। | ब्लॉक कमेंट सामान्यतः वे होती हैं जो किसी कमेंट की शुरुआत को इंगित करने के लिए एक सीमांकक का उपयोग करती हैं, और किसी कमेंट के अंत को इंगित करने के लिए एक अन्य सीमांकक का उपयोग करती हैं। इस संदर्भ में, व्हाइटस्पेस वर्ण और न्यूलाइन वर्णों को सीमांकक के रूप में नहीं गिना जाता है। उदाहरणों में, प्रतीक ~ कमेंट का प्रतिनिधित्व करता है; और, इसके आस-पास के प्रतीकों को व्याख्याकारों/संकलकों द्वारा सीमांकक के रूप में समझा जाता है। | ||
Line 611: | Line 611: | ||
|- | |- | ||
| <code>--<nowiki>[[</nowiki></code> ~ <code>]]</code>,<br /><code>--[=[</code> ~ <code>]=]</code>,<br /><code>--[=</code>...<code>=[</code> ~ <code>]=</code>...<code>=]</code> | | <code>--<nowiki>[[</nowiki></code> ~ <code>]]</code>,<br /><code>--[=[</code> ~ <code>]=]</code>,<br /><code>--[=</code>...<code>=[</code> ~ <code>]=</code>...<code>=]</code> | ||
|लुआ ( | |लुआ (ब्रैकेट में मिलान = वर्णों की कोई भी संख्या हो सकती है; गैर-मिलान सीमांकक के भीतर नेस्ट किया जा सकता है) | ||
|- | |- | ||
| <code>"</code> ~ <code>"</code> | | <code>"</code> ~ <code>"</code> | ||
Line 633: | Line 633: | ||
;फोरट्रान | ;फोरट्रान | ||
* फोरट्रान 66/77 में इंडेंटिंग लाइनें महत्वपूर्ण हैं। वास्तविक विवरण एक पंक्ति के कॉलम 7 से 72 में है। कॉलम 6 में कोई भी गैर-स्पेस वर्ण इंगित करता है कि यह पंक्ति पिछली पंक्ति की निरंतरता है। ए '<code>C</code>' कॉलम 1 में यह दर्शाया गया है कि यह पूरी पंक्ति एक कमेंट है। कॉलम 1 यद्यपि 5 में एक संख्या हो सकती है जो एक लेबल के रूप में कार्य करती है। कॉलम 73 हालांकि 80 को नजरअंदाज कर दिया गया है और कमेंटों के लिए इस्तेमाल किया जा सकता है; [[पंच्ड कार्ड युग में कंप्यूटर प्रोग्रामिंग]] में, इन कॉलमों में अक्सर एक अनुक्रम संख्या होती थी ताकि यदि कोई गलती से कार्ड गिरा दे तो कार्डों के डेक को सही क्रम में क्रमबद्ध किया जा सके। फोरट्रान 90 ने इंडेंटेशन नियम की आवश्यकता को हटा दिया और इसका उपयोग करते हुए इनलाइन कमेंट जोड़ीं <code>!</code> कमेंट सीमांकक के रूप में | * फोरट्रान 66/77 में इंडेंटिंग लाइनें महत्वपूर्ण हैं। वास्तविक विवरण एक पंक्ति के कॉलम 7 से 72 में है। कॉलम 6 में कोई भी गैर-स्पेस वर्ण इंगित करता है कि यह पंक्ति पिछली पंक्ति की निरंतरता है। ए '<code>C</code>' कॉलम 1 में यह दर्शाया गया है कि यह पूरी पंक्ति एक कमेंट है। कॉलम 1 यद्यपि 5 में एक संख्या हो सकती है जो एक लेबल के रूप में कार्य करती है। कॉलम 73 हालांकि 80 को नजरअंदाज कर दिया गया है और कमेंटों के लिए इस्तेमाल किया जा सकता है; [[पंच्ड कार्ड युग में कंप्यूटर प्रोग्रामिंग]] में, इन कॉलमों में अक्सर एक अनुक्रम संख्या होती थी ताकि यदि कोई गलती से कार्ड गिरा दे तो कार्डों के डेक को सही क्रम में क्रमबद्ध किया जा सके। फोरट्रान 90 ने इंडेंटेशन नियम की आवश्यकता को हटा दिया और इसका उपयोग करते हुए इनलाइन कमेंट जोड़ीं <code>!</code> कमेंट सीमांकक के रूप में करैक्टर। | ||
;कोबोल | ;कोबोल | ||
Line 639: | Line 639: | ||
;कोबरा | ;कोबरा | ||
* कोबरा ब्लॉक कमेंटों का समर्थन करता है<code>/#</code> ... <code>#/</code>जो इस प्रकार है<code>/*</code> ... <code>*/</code>अक्सर सी-आधारित | * कोबरा ब्लॉक कमेंटों का समर्थन करता है<code>/#</code> ... <code>#/</code>जो इस प्रकार है<code>/*</code> ... <code>*/</code>अक्सर सी-आधारित लैंग्वेजेज में पाया जाता है, लेकिन दो अंतरों के साथ। <code>#</code> ई> वर्ण का एकल-पंक्ति कमेंट प्रपत्र से पुन: उपयोग किया जाता है<code>#</code> ..., और ब्लॉक कमेंटों को नेस्ट किया जा सकता है जो कोड के बड़े ब्लॉकों पर कमेंट करने के लिए सुविधाजनक है। | ||
;कर्ल | ;कर्ल | ||
Line 645: | Line 645: | ||
;लुआ | ;लुआ | ||
* कच्चे तारों की तरह, वर्गाकार | * कच्चे तारों की तरह, वर्गाकार ब्रैकेटों के बीच किसी भी संख्या में समान चिह्न हो सकते हैं, बशर्ते कि उद्घाटन और समापन टैग दोनों में समान चिह्नों की मिलान संख्या हो; यह तब तक नेस्टिंग की अनुमति देता है जब तक नेस्टेड ब्लॉक कमेंट/कच्ची स्ट्रिंग्स अपनी संलग्न कमेंट की तुलना में भिन्न संख्या में समान चिह्नों का उपयोग करती हैं: <code>--[[comment --[=[ nested comment ]=] ]]</code>. लुआ पहली नई लाइन (यदि मौजूद है) को हटा देता है जो सीधे शुरुआती टैग का अनुसरण करती है। | ||
;पर्ल | ;पर्ल | ||
* पर्ल में ब्लॉक कमेंटों को दस्तावेज़ीकरण का हिस्सा माना जाता है, और उन्हें [[ सादा पुराना दस्तावेज़ीकरण ]] (POD) नाम दिया जाता है। तकनीकी रूप से, पर्ल के पास स्रोत कोड में ब्लॉक कमेंटों को | * पर्ल में ब्लॉक कमेंटों को दस्तावेज़ीकरण का हिस्सा माना जाता है, और उन्हें [[ सादा पुराना दस्तावेज़ीकरण ]] (POD) नाम दिया जाता है। तकनीकी रूप से, पर्ल के पास स्रोत कोड में ब्लॉक कमेंटों को सम्मिलित करने की कोई परंपरा नहीं है, लेकिन POD को नियमित रूप से वर्कअराउंड के रूप में उपयोग किया जाता है। | ||
;पीएचपी | ;पीएचपी | ||
Line 659: | Line 659: | ||
;अमृत | ;अमृत | ||
* पायथन में उपयोग की गई उपरोक्त ट्रिक एलिक्सिर में भी काम करती है, लेकिन अगर कंपाइलर इसे देखता है तो वह एक चेतावनी देगा। चेतावनी को दबाने के लिए, किसी को सतर्क रहने की आवश्यकता होगी <code>~S</code> (जो स्ट्रिंग इंटरपोलेशन को रोकता है) ट्रिपल-उद्धृत स्ट्रिंग तक, जिससे अंतिम निर्माण होता है <code>~S""" ... """</code>. इसके अलावा, एलिक्सिर एक आधिकारिक | * पायथन में उपयोग की गई उपरोक्त ट्रिक एलिक्सिर में भी काम करती है, लेकिन अगर कंपाइलर इसे देखता है तो वह एक चेतावनी देगा। चेतावनी को दबाने के लिए, किसी को सतर्क रहने की आवश्यकता होगी <code>~S</code> (जो स्ट्रिंग इंटरपोलेशन को रोकता है) ट्रिपल-उद्धृत स्ट्रिंग तक, जिससे अंतिम निर्माण होता है <code>~S""" ... """</code>. इसके अलावा, एलिक्सिर एक आधिकारिक लैंग्वेज सुविधा के रूप में ब्लॉक कमेंटों के सीमित रूप का समर्थन करता है, लेकिन पर्ल की तरह, यह निर्माण पूरी तरह से दस्तावेज़ लिखने के लिए है। पर्ल के विपरीत, इसे वर्कअराउंड के रूप में उपयोग नहीं किया जा सकता है, यह कोड के कुछ हिस्सों तक ही सीमित है और त्रुटियों को फेंकता है या यहां तक कि अन्यत्र उपयोग किए जाने पर फ़ंक्शन को भी दबा देता है।<ref>{{cite web |url = https://hexdocs.pm/elixir/1.12.3/writing-documentation.html |title = Writing Documentation — Elixir v1.12.3 |access-date = 2023-07-28}}</ref> | ||
;राकु | ;राकु | ||
* [[राकू (प्रोग्रामिंग भाषा)]] का उपयोग करता है <code>#`(...)</code> ब्लॉक कमेंटों को दर्शाने के लिए।<ref>{{cite web|url=https://docs.perl6.org/language/syntax#Comments |title=Perl 6 Documentation (Syntax) |at=Comments |publisher=docs.perl6.org |accessdate=2017-04-05}}</ref> राकू वास्तव में किसी भी दाएं और बाएं युग्मित ब्रैकेट के उपयोग की अनुमति देता है <code>#`</code> (अर्थात। <code>#`(...)</code>, <code>#`[...]</code>, <code>#`{...}</code>, <code>#`<...></code>, और उससे भी अधिक जटिल <code>#`{{...}}</code> सभी वैध ब्लॉक कमेंट हैं)। ब्रैकेट को कमेंटों के अंदर नेस्ट करने की भी अनुमति है (अर्थात। <code>#`{ a { b } c }</code> अंतिम समापन ब्रेस पर जाता है)। | * [[राकू (प्रोग्रामिंग भाषा)|राकू (प्रोग्रामिंग लैंग्वेज)]] का उपयोग करता है <code>#`(...)</code> ब्लॉक कमेंटों को दर्शाने के लिए।<ref>{{cite web|url=https://docs.perl6.org/language/syntax#Comments |title=Perl 6 Documentation (Syntax) |at=Comments |publisher=docs.perl6.org |accessdate=2017-04-05}}</ref> राकू वास्तव में किसी भी दाएं और बाएं युग्मित ब्रैकेट के उपयोग की अनुमति देता है <code>#`</code> (अर्थात। <code>#`(...)</code>, <code>#`[...]</code>, <code>#`{...}</code>, <code>#`<...></code>, और उससे भी अधिक जटिल <code>#`{{...}}</code> सभी वैध ब्लॉक कमेंट हैं)। ब्रैकेट को कमेंटों के अंदर नेस्ट करने की भी अनुमति है (अर्थात। <code>#`{ a { b } c }</code> अंतिम समापन ब्रेस पर जाता है)। | ||
;माणिक | ;माणिक | ||
* रूबी में ब्लॉक कमेंट यहां खुलती है <code>=begin</code> लाइन और पर बंद हो जाती है <code>=end</code> पंक्ति। | * रूबी में ब्लॉक कमेंट यहां खुलती है <code>=begin</code> लाइन और पर बंद हो जाती है <code>=end</code> पंक्ति। | ||
;बोलचाल की | ;बोलचाल की लैंग्वेज | ||
* से घिरी रेखाओं का क्षेत्र <code><nowiki>#<tag></nowiki></code> और <code><nowiki>#</tag></nowiki></code> दुभाषिया द्वारा सीमांककों को नजरअंदाज कर दिया जाता है। टैग नाम अल्फ़ान्यूमेरिक वर्णों का कोई भी अनुक्रम हो सकता है जिसका उपयोग यह इंगित करने के लिए किया जा सकता है कि संलग्न ब्लॉक को कैसे समझा जाना है। उदाहरण के लिए, <code><nowiki>#<latex></nowiki></code> LaTeX स्वरूपित दस्तावेज़ के एक ब्लॉक की शुरुआत का संकेत दे सकता है। | * से घिरी रेखाओं का क्षेत्र <code><nowiki>#<tag></nowiki></code> और <code><nowiki>#</tag></nowiki></code> दुभाषिया द्वारा सीमांककों को नजरअंदाज कर दिया जाता है। टैग नाम अल्फ़ान्यूमेरिक वर्णों का कोई भी अनुक्रम हो सकता है जिसका उपयोग यह इंगित करने के लिए किया जा सकता है कि संलग्न ब्लॉक को कैसे समझा जाना है। उदाहरण के लिए, <code><nowiki>#<latex></nowiki></code> LaTeX स्वरूपित दस्तावेज़ के एक ब्लॉक की शुरुआत का संकेत दे सकता है। | ||
;स्कीम और रैकेट | ;स्कीम और रैकेट | ||
* अगले पूर्ण वाक्यात्मक घटक (एस- | * अगले पूर्ण वाक्यात्मक घटक (एस-एक्सप्रेशन) पर कमेंट की जा सकती है <code>#;</code> . | ||
;एबीएपी | ;एबीएपी | ||
एबीएपी दो अलग-अलग प्रकार की कमेंटों का समर्थन करता है। यदि इंडेंटेशन सहित किसी पंक्ति का पहला | एबीएपी दो अलग-अलग प्रकार की कमेंटों का समर्थन करता है। यदि इंडेंटेशन सहित किसी पंक्ति का पहला करैक्टर तारांकन चिह्न है (<code>*</code>) पूरी पंक्ति को एक कमेंट के रूप में माना जाता है, जबकि एक एकल दोहरे उद्धरण (<code>"</code>) एक इन-लाइन कमेंट प्रारंभ करता है जो पंक्ति के अंत तक कार्य करता है। बयानों के बीच एबीएपी कमेंट संभव नहीं हैं <code>EXEC SQL</code> और <code>ENDEXEC</code> क्योंकि नेटिव SQL में इन वर्णों के लिए अन्य उपयोग हैं। अधिकांश SQL बोलियों में डबल डैश (<code>--</code>) का उपयोग इसके स्थान पर किया जा सकता है। | ||
;एसोटेरिक लैंग्वेज | ;एसोटेरिक लैंग्वेज | ||
Line 679: | Line 679: | ||
=== कमेंट कम्पैरिसन === | === कमेंट कम्पैरिसन === | ||
सोर्स कोड में कमेंट घोषित करने के लिए | सोर्स कोड में कमेंट घोषित करने के लिए सिंटेक्स शैलियों की एक विस्तृत विविधता है। ब्लॉक कमेंट स्टाइल को इंगित करने के लिए यहां इटैलिक में <code>''BlockComment''</code> का उपयोग किया गया है। इनलाइन कमेंट स्टाइल को इंगित करने के लिए यहां इटैलिक <code>''InlineComment''</code> का उपयोग किया गया है। | ||
<!--NOTE: 20061101 ;; dreftymac | <!--NOTE: 20061101 ;; dreftymac | ||
The indications of "block comment" and "inline comment" may not all be correct, if you see a mistake for a language you know, please change it. | The indications of "block comment" and "inline comment" may not all be correct, if you see a mistake for a language you know, please change it. |
Revision as of 09:57, 11 August 2023
This article uses bare URLs, which are uninformative and vulnerable to link rot. (अगस्त 2022) (Learn how and when to remove this template message) |
प्रोग्रामिंग लैंग्वेजेज की यह तुलना 50 से अधिक कंप्यूटर प्रोग्रामिंग लैंग्वेजेज के लिए सिंटेक्स (प्रारूप) की विशेषताओं की तुलना करती है।
एक्सप्रेशंस
प्रोग्रामिंग लैंग्वेज एक्सप्रेशंस को मोटे तौर पर चार सिंटेक्स स्ट्रक्चरों में वर्गीकृत किया जा सकता है:
- प्रीफिक्स नोटेशन
- लिस्प
(* (+ 2 3) (expt 4 5))
- इन्फिक्स नोटेशन
- फोरट्रान
(2 + 3) * (4 ** 5)
- सफिक्स, पोस्टफिक्स, या रिवर्स पोलिश नोटेशन
- फोर्थ
2 3 + 4 5 ** *
- मैथ-लाइक नोटेशन
- ट्यूटर
(2 + 3)(45) $$ note implicit multiply operator
स्टेटमेंट
जब किसी प्रोग्रामिंग लैंग्वेजेज में स्टेटमेंट होता है, तो उनके पास सामान्यतः इसके लिए कन्वेंशन होते हैं:
- स्टेटमेंट सेपटर्स;
- स्टेटमेंट टर्मिनेटर; और
- लाइन कॉन्टीनुअशन
एक स्टेटमेंट सेपटर्स दो अलग-अलग स्टेटमेंटो के मध्य सीमा का सीमांकन करता है। एक स्टेटमेंट टर्मिनेटर एक इंडिविजुअल स्टेटमेंट के अंत को परिभाषित करता है। वे लैंग्वेज जो लाइन के अंत को किसी स्टेटमेंटो का अंत मानती हैं, लाइन-ओरिएंटेड लैंग्वेज कहलाती हैं।
लाइन कॉन्टीनुअशन लाइन-ओरिएंटेड लैंग्वेजेज में एक कन्वेंशन है जहां न्यूलाइन करैक्टर को स्टेटमेंट टर्मिनेटर के रूप में संभावित रूप से गलत समझा जा सकता है। ऐसे लैंग्वेजेज में, यह एक ही स्टेटमेंट को केवल एक लाइन से अधिक फैलाने की अनुमति देता है।
लैंग्वेज | स्टेटमेंट सेपरेटर-टर्मिनेटर | सेकेंडरी सेपरेटर-टर्मिनेटर[1] |
---|---|---|
एबीएपी | पीरियड सेपरेटेड | |
एडीए | सेमीकोलन टर्मिनेटेड | |
ऐल्गॉल | सेमीकोलन सेपरेटेड | |
ऐल्गॉल 68 | सेमीकोलन एंड कॉमा सेपरेटेड[2] | |
एपीएल | न्यूलाइन टर्मिनेटेड | [Direct_function ⋄] सेपरेटेड सेकेंडरी
|
एप्पलस्क्रिप्ट | न्यूलाइन टर्मिनेटेड | |
ऑटोहॉटकी | न्यूलाइन टर्मिनेटेड | |
बेसिक | न्यूलाइन टर्मिनेटेड | कॉलन सेपरेटेड |
बू | न्यूलाइन टर्मिनेटेड | |
सी | सेमीकोलन टर्मिनटेस स्टेटमेंट्स | कॉमा सेपरेट्स एक्सप्रेशंस |
सी++ | सेमीकोलन टर्मिनटेस स्टेटमेंट्स | कॉमा सेपरेट्स एक्सप्रेशंस |
सी# | सेमीकोलन टर्मिनेटेड | |
कोबोल | वाइटस्पेस सेपरेटेड, कभी-कभी पीरियड सेपरेटेड, वैकल्पिक रूप से कॉमा और सेमीकोलन के साथ सेपरेट किया गया। | |
कोबरा | न्यूलाइन टर्मिनेटेड | |
कॉफ़ीस्क्रिप्ट | न्यूलाइन टर्मिनेटेड | |
सीएसएस | सेमीकोलन टर्मिनेटेड | |
डी | सेमीकोलन टर्मिनेटेड | |
एफिल | न्यूलाइन टर्मिनेटेड | सेमीकोलन |
एरलंग | कॉलन सेपरेटेड, पीरियड टर्मिनेटेड | |
एफ# | न्यूलाइन टर्मिनेटेड | सेमीकोलन |
फोरट्रॉन | न्यूलाइन टर्मिनेटेड | सेमीकोलन |
फोर्थ | सेमीकोलन सेपरेट किया गया (लेकिन प्रायः स्टेटमेंट टर्मिनेटर के रूप में इन्सर्ट किया जाता है) | |
जीएफए बेसिक | न्यूलाइन टर्मिनेटेड | |
गो | सेमीकोलन सेपरेटेड (इनसेरटेड बाय कम्पाइलर) | |
हास्केल (डू-नोटेशन में) | न्यूलाइन सेपरेटेड | |
हास्केल (डू-नोटेशन में, जब ब्रेसिज़ का उपयोग किया जाता है) | सेमीकोलन सेपरेटेड | |
जावा | सेमीकोलन टर्मिनेटेड | |
जावास्क्रिप्ट | सेमीकोलन सेपरेटेड (लेकिन प्रायः स्टेटमेंट टर्मिनेटर के रूप में इन्सर्ट किया जाता है) | |
कोटलिन | सेमीकोलन सेपरेटेड (लेकिन कभी-कभी न्यूलाइन्स पर अप्रत्यक्ष रूप से इन्सर्ट किया जाता है) | |
लुआ | वाइटस्पेस सेपरेटेड (सेमीकोलन ऑप्शनल) | |
मेथेमेटिका
वोल्फ्राम भी कहा जाता है |
सेमीकोलन सेपरेटेड | |
मेटलैब | न्यूलाइन टर्मिनेटेड | सेमीकोलन या कॉमा[3] |
एमयूएमपीएस M भी कहा जाता है |
न्यूलाइन लाइन-स्कोप को टर्मिनेट करती है, जो M के "स्टेटमेंट" के सबसे निकट है। | एक स्पेस एक कमांड को सेपरेट्स/टर्मिनटेस करता है, जिससे दूसरे कमांड को अनुसरण करने की अनुमति मिलती है। |
निम | न्यूलाइन टर्मिनेटेड | |
ऑब्जेक्ट पास्कल भी (डेल्फ़ी) | सेमीकोलन सेपरेटेड | |
ऑब्जेक्टिव-सी | सेमीकोलन टर्मिनेटेड | |
ओकैमल | सेमीकोलन सेपरेटेड | |
पास्कल | सेमीकोलन सेपरेटेड | |
पर्ल | सेमीकोलन सेपरेटेड | |
पीएचपी | सेमीकोलन टर्मिनेटेड | |
पिक बेसिक | न्यूलाइन टर्मिनेटेड | सेमीकोलन सेपरेटेड |
पावरशेल | न्यूलाइन टर्मिनेटेड | सेमीकोलन सेपरेटेड |
प्रोलॉग | कॉमा सेपरेटेड (कंजक्शन), सेमीकोलन सेपरेटेड (डिस्जंक्शन), पीरियड टर्मिनेटेड (क्लॉज़) | |
पायथन | न्यूलाइन टर्मिनेटेड | सेमीकोलन |
आर | न्यूलाइन टर्मिनेटेड[4] | सेमीकोलन[4] |
रकु | सेमीकोलन सेपरेटेड | |
रेड | वाइटस्पेस सेपरेटेड | |
रूबी | न्यूलाइन टर्मिनेटेड | सेमीकोलन |
रस्ट | सेमीकोलन टर्मिनेटेड | कॉमा separates expressions |
स्काला | न्यूलाइन टर्मिनेटेड (सेमीकोलन ऑप्शनल) | सेमीकोलन |
सीड7 | सेमीकोलन सेपरेटेड (सेमीकोलन टर्मिनेशन की अनुमति है) | |
सिमुला | सेमीकोलन सेपरेटेड | |
S-लैंग | सेमीकोलन सेपरेटेड | |
स्मालटॉक | पीरियड सेपरेटेड | |
स्टैण्डर्ड एमएल | सेमीकोलन सेपरेटेड | |
स्विफ्ट | सेमीकोलन सेपरेटेड (इनसेरटेड बाय कम्पाइलर) | |
विज़ुअल बेसिक | न्यूलाइन टर्मिनेटेड | कॉलन सेपरेटेड |
विज़ुअल बेसिक .नेट | न्यूलाइन टर्मिनेटेड | कॉलन सेपरेटेड |
वोल्फ्राम लैंग्वेज | सेमीकोलन सेपरेटेड | |
ज़ोजो | न्यूलाइन टर्मिनेटेड | |
लैंग्वेज | स्टेटमेंट सेपरेटर-टर्मिनेटर | सेकेंडरी सेपरेटर-टर्मिनेटर[1] |
लाइन कॉन्टीनुअशन
लाइन कॉन्टीनुअशन सामान्यतः लेक्सिकल एनालिसिस के भाग के रूप में की जाती है: एक न्यूलाइन के परिणामस्वरूप सामान्यतः टोकन स्ट्रीम में एक टोकन जोड़ा जाता है, जब तक कि लाइन कॉन्टीनुअशन का पता नहीं चलता।
- वाइटस्पेस करैक्टर - ऐसी लैंग्वेज जिन्हें कॉन्टीनुअशन की आवश्यकता नहीं है:
- एडा - लाइन्स सेमीकोलन से समाप्त होती हैं।
- सी# - लाइन्स सेमीकोलन से समाप्त होती हैं।
- जावास्क्रिप्ट - लाइन्स सेमीकोलन से समाप्त होती हैं (जिसका अनुमान लगाया जा सकता है)।
- लुआ
- ओकैमल
- एम्पसेंड लाइन के लास्ट करैक्टर के रूप में
- लाइन के लास्ट करैक्टर के रूप में बैकस्लैश
- बैश (यूनिक्स शेल)[5] और अन्य यूनिक्स शैल
- सी और सी++ प्रीप्रोसेसर
- मेथेमेटिका और वोल्फ्राम लैंग्वेज
- पायथन [6]
- रूबी
- जावास्क्रिप्ट - केवल एकल- या दोहरे-उद्धृत स्ट्रिंग के भीतर
- लाइन के लास्ट करैक्टर के रूप में बैकटिक
- लाइन के लास्ट करैक्टर के रूप में हैफ़ेन
- लाइन के लास्ट करैक्टर के रूप मेंअंडरस्कोर
- एलिप्सिस (तीन अवधियों के रूप में-एक स्पेशल करैक्टर नहीं)
- मैटलैब: इलिप्सिस टोकन को लाइन पर लास्ट करैक्टर होने की आवश्यकता नहीं है, लेकिन इसके बाद आने वाले किसी भी करैक्टर को इग्नॉर कर दिया जाएगा।[7] संक्षेप में, यह एक कमेंट प्रारंभ करता है जो पहले बाद वाले न्यूलाइन करैक्टर तक विस्तारित होता है (अर्थात, इसमें सम्मिलित होता है)। एक इनलाइन कमेंट के साथ इसकी तुलना करें, जो पहले बाद वाले न्यूलाइन तक विस्तारित होती है।
- लाइन के लास्ट करैक्टर के रूप में कॉमा डिलिमिटर
- रूबी (कमेंट डिलिमिटर का अनुसरण कर सकती है)
- लाइन के लास्ट करैक्टर के रूप में लेफ्ट ब्रैकेट डिलिमिटर
- बैच फ़ाइल: एक ब्रैकेट ब्लॉक प्रारंभ करने से लाइन को जारी रखने की अनुमति मिल सकती है।[8]
- रूबी: लेफ्ट ब्रैकेट, लेफ्ट स्क्वायर ब्रैकेट, या लेफ्ट कर्ली ब्रैकेट
- लाइन के अंतिम ऑब्जेक्ट के रूप में ऑपरेटर
- रूबी (कमेंट ऑपरेटर का अनुसरण कर सकती है)
- लाइन के फर्स्ट करैक्टर के रूप में ऑपरेटर
- कन्टिन्यूड लाइन के फर्स्ट करैक्टर के रूप में बैकस्लैश
इनलाइन कमेंटों का कुछ रूप लाइन कॉन्टीनुअशन के रूप में कार्य करता है
- टर्बो असेंबलर:
\
- एम4:
dnl
- टीएक्स:
%
- करैक्टर पोजीशन
- फोरट्रान 77: यदि कॉलम 6 में कोई नॉन-स्पेस वर्ण दिखाई देता है तो एक नॉन-कमेंट लाइन पिछली नॉन-कमेंट लाइन की कॉन्टीनुअशन है। कमेंट लाइन्स को जारी नहीं रखा जा सकता है।
- कोबोल: स्ट्रिंग कांस्टेंट को पिक्चर क्लॉज में ओरिजिनल स्ट्रिंग को
'
,के साथ समाप्त न करके, फिर कॉलम 7 में-
इन्सर्टकर जारी रखा जा सकता है( कमेंट के लिए*
के समान स्थिति का उपयोग किया जाता है)। - ट्यूटर: एक टैब से प्रारंभ होने वाली लाइनें (संदर्भ द्वारा आवश्यक किसी भी इंडेंटेशन के बाद) पिछले कमांड को जारी रखती हैं।
- [अंत और आरंभ] सामान्य उद्धरण चिह्नों का उपयोग करते हुए
- सी और सी++ प्रीप्रोसेसर: स्ट्रिंग सामान्य रूप से समाप्त हो जाती है और अगली लाइन पर एक उद्धरण के साथ प्रारंभ होकर जारी रहती है।
लाइब्रेरी
This section needs expansion. You can help by adding to it. (दिसम्बर 2009) |
लाइब्रेरी को इम्पोर्ट करना, संभवतः कपिलेड, रूटीन, प्रोग्राम या पैकेज के रीड एक्सटर्नल एक तरीका है। इम्पोर्ट्स को स्तर (मॉड्यूल, पैकेज, क्लास, प्रोसीजर,...) और सिंटैक्स (डायरेक्टिव नेम, ऐट्रिब्यूट्स,...) द्वारा वर्गीकृत किया जा सकता है।
- फ़ाइल इम्पोर्ट
addpath(directory)
मेटलैब[10]COPY filename.
कोबोल:-include("filename").
प्रोलॉग#include file="filename"
एएसपी#include "filename"
, ऑटोहॉटकी, ऑटोइट, सी, सी++#include <filename>
ऑटोहॉटकी, ऑटोइट, सी, सी++#import "filename"
, ऑब्जेक्टिव सी#import <filename>
ऑब्जेक्टिव सीImport["filename"]
मेथेमेटिका और वोल्फ्राम लैंग्वेजinclude 'filename'
फोरट्रानinclude "filename";
पीएचपीinclude [filename] program
, पिक बेसिक#include [filename] program
पिक बेसिकinclude!("filename");
रस्टload "filename"
रूबीload %filename
रेडrequire('filename')
लुआrequire "filename";
पर्ल, पीएचपीrequire "filename"
रूबीsource(""filename"")
आर
- पैकेज इम्पोर्ट
#include filename
सी, सी++#[path = "filename"] mod altname;
, रस्ट@import module;
ऑब्जेक्टिव सी<<name
मेथेमेटिका और वोल्फ्राम लैंग्वेज:-use_module(module).
प्रोलॉग:from module import *
पायथनextern crate libname;
, रस्टextern crate libname as altname;
रस्टmod modname;
, रस्टIMPORT module
ओबेरॉनimport altname "package/name"
गोimport package.module;
, डीimport altname = package.module;
डीimport Module
, हास्केलimport qualified Module as M
हास्केलimport package.*
जावा, मेटलैब, कोटलिनimport "modname";
जावास्क्रिप्ट:import altname from "modname";
, जावास्क्रिप्ट:import package
स्कालाimport package._
, स्कालाimport module
स्विफ्टimport module
, पायथनrequire('modname')
लुआrequire "gem"
, रूबीuse module
, फोरट्रान 90+use module, only : identifier
फोरट्रान 90+use Module;
, पर्लuse Module qw(import options);
पर्लuse Package.Name
कोबराuses unit
पास्कलwith package
एडा
- क्लास इम्पोर्ट
from module import Class
पायथनimport package.class
जावा, मेटलैब, कोटलिनimport class from "modname";
, जावास्क्रिप्टimport {class} from "modname";
, जावास्क्रिप्टimport {class as altname} from "modname";
जावास्क्रिप्टimport package.class
, स्कालाimport package.{ class1 => alternativeName, class2 }
, स्कालाimport package._
स्कालाuse Namespace\ClassName;
, पीएचपीuse Namespace\ClassName as AliasName;
पीएचपी
- प्रोसीजर/फंक्शन इम्पोर्ट
from module import function
पायथनimport package.module : symbol;
, डीimport package.module : altsymbolname = symbol;
डीimport Module (function)
हास्केल:import function from "modname";
, जावास्क्रिप्ट:import {function} from "modname";
, जावास्क्रिप्ट:import {function as altname} from "modname";
जावास्क्रिप्टimport package.function
मेटलैब:import package.class.function
, स्काला:import package.class.{ function => alternativeName, otherFunction }
स्काला:use Module ('symbol');
पर्लuse function Namespace\function_name;
, पीएचपी:use Namespace\function_name as function_alias_name;
पीएचपी:use module::submodule::symbol;
, रस्ट:use module::submodule::{symbol1, symbol2};
, रस्ट:use module::submodule::symbol as altname;
रस्ट:
- कांस्टेंट इम्पोर्ट
use const Namespace\CONST_NAME;
पीएचपी
उपरोक्त स्टेटमेंटो को इस आधार पर भी वर्गीकृत किया जा सकता है कि क्या वे सिंटैक्टिक कन्वेनैंस हैं (चीज़ों को छोटे नाम से संदर्भित करने की अनुमति देते हैं, लेकिन उन्हें अभी भी इम्पोर्ट के बिना कुछ पूर्णतः योग्य नाम से संदर्भित किया जा सकता है), या क्या उन्हें वास्तव में एक्सेस कोड करने की आवश्यकता है (जिसके बिना कोड तक पहुंचना असंभव है, यहां तक कि पूर्णतया से योग्य नामों के साथ भी)।
- सिंटैक्टिक कन्वेनैंस
import package.*
जावाimport package.class
जावाopen module
ओकैमल
- एक्सेस कोड के लिए आवश्यक है
import altname "package/name"
गोimport altname from "modname";
जावास्क्रिप्टimport module
पायथन
ब्लॉक
एक ब्लॉक दो या दो से अधिक स्टेटमेंटो, एक्सप्रेशनों या कोड की अन्य यूनिट के समूह के लिए एक नोटेशन है जो इस तरह से संबंधित होते हैं कि एक संपूर्ण को समाहित करते हैं।
- ब्रेसेस (उर्फ घुंघराले ब्रैकेट)
{
...}
घुंघराले ब्रैकेट प्रोग्रामिंग लैंग्वेज लैंग्वेज: सी (प्रोग्रामिंग लैंग्वेज), सी++, ऑब्जेक्टिव-सी, गो (प्रोग्रामिंग लैंग्वेज), जावा (प्रोग्रामिंग लैंग्वेज), जावास्क्रिप्ट/ईसीएमएस्क्रिप्ट, सी शार्प (प्रोग्रामिंग लैंग्वेज)|सी#, डी (प्रोग्रामिंग लैंग्वेज), पर्ल , पीएचपी (for
& loop
लूप, या किसी ब्लॉक को तर्क के रूप में पास करें), आर (प्रोग्रामिंग लैंग्वेज), रस्ट (प्रोग्रामिंग लैंग्वेज), स्काला (प्रोग्रामिंग लैंग्वेज), केवल एस, स्विफ्ट (प्रोग्रामिंग लैंग्वेज), पावरशेल, हास्केल (प्रोग्रामिंग लैंग्वेज) (डू-नोटेशन में) ), ऑटोहॉटकी
- ब्रैकेट
(
...)
- वर्ग ब्रैकेट
[
...]
- विद्रोह, रेड (प्रोग्रामिंग लैंग्वेज), सेल्फ (प्रोग्रामिंग लैंग्वेज), स्मॉलटॉक (ब्लॉक प्रथम श्रेणी के ऑब्जेक्ट हैं। उर्फ क्लोजर)
begin
...end
- Ada (प्रोग्रामिंग लैंग्वेज), ALGOL, F शार्प (प्रोग्रामिंग लैंग्वेज)|F# (वर्बोज़ सिंटैक्स),[11]पास्कल (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज) (
for
,do/while
&do/until
लूप्स), ओकैमल, आईसीएल वीएमई#एससीएल, शुरुआत , एरलांग (प्रोग्रामिंग लैंग्वेज)।
do
...end
- पीएल/आई, आरईएक्सएक्स
do
...done
- बैश (यूनिक्स शेल) (
for
&while
लूप्स), एफ शार्प (प्रोग्रामिंग लैंग्वेज)|एफ# (वर्बोज़ सिंटैक्स)[11]विजुअल बेसिक, फोरट्रान, ट्यूटर (प्रोग्रामिंग लैंग्वेज) (ब्लॉक बॉडी के अनिवार्य इंडेंटिंग के साथ), दृश्य प्रोलॉग
do
...end
- लुआ (प्रोग्रामिंग लैंग्वेज), रूबी (प्रोग्रामिंग लैंग्वेज) (तर्क के रूप में ब्लॉक पास करें,
for
लूप), सही (लूप बॉडी को बीच में घेरता हैdo
औरend
)
- एक्स ...
end
(उदाif
...end
)
- रूबी (प्रोग्रामिंग लैंग्वेज) (
if
,while
,until
,def
,class
,module
कथन), OCaml (for
&while
लूप्स), मेटलैब (if
&switch
सशर्त,for
&while
लूप,try
उपवाक्य,package
,classdef
,properties
,methods
,events
, &function
ब्लॉक), लुआ (प्रोग्रामिंग लैंग्वेज) (then
/else
&function
)
- (
begin
...)
- (प्रोग्न...)
- लिस्प (प्रोग्रामिंग लैंग्वेज)
- (
do
...)
- इंडेंटेशन
- ऑफ-साइड नियम#ऑफ-साइड नियम लैंग्वेज|ऑफ-साइड नियम लैंग्वेज: बू (प्रोग्रामिंग लैंग्वेज), कोबरा (प्रोग्रामिंग लैंग्वेज), कॉफ़ीस्क्रिप्ट , एफ शार्प (प्रोग्रामिंग लैंग्वेज)|एफ#, हास्केल (प्रोग्रामिंग लैंग्वेज) (इन डू- जब ब्रेसिज़ छोड़े जाते हैं तो नोटेशन), लाइवस्क्रिप्ट (प्रोग्रामिंग लैंग्वेज), ओकैम (प्रोग्रामिंग लैंग्वेज), पायथन (प्रोग्रामिंग लैंग्वेज), नेमेरले (वैकल्पिक; यदि उपयोगकर्ता चाहें तो कर्ली-ब्रेस सिंटैक्स के बजाय व्हाइट-स्पेस संवेदनशील सिंटैक्स का उपयोग कर सकते हैं) , निम (प्रोग्रामिंग लैंग्वेज), स्काला (प्रोग्रामिंग लैंग्वेज) (वैकल्पिक, जैसा कि नेमर्ले में है)
- फ्री-फ़ॉर्म लैंग्वेज: ALGOL के अधिकांश वंशज (C (प्रोग्रामिंग लैंग्वेज), पास्कल (प्रोग्रामिंग लैंग्वेज), और पर्ल सहित); लिस्प (प्रोग्रामिंग लैंग्वेज) लैंग्वेज
- अन्य
- एडा (प्रोग्रामिंग लैंग्वेज), विजुअल बेसिक, सीड7:
if
...end if
- एपीएल (प्रोग्रामिंग लैंग्वेज):
:If
...:EndIf
या:If
...:End
- बैश (यूनिक्स शेल), बॉर्न शैल, और के शेल :
if
...fi
,do
...done
,case
...esac
; - अल्गोल 68:
begin
...end
,(
...)
,if
...fi
,do
...od
- लुआ (प्रोग्रामिंग लैंग्वेज), पास्कल (प्रोग्रामिंग लैंग्वेज), मॉड्यूल-2, सीड7:
repeat
...until
- कोबोल:
IF
...END-IF
,PERFORM
...END-PERFORM
, आदि कथनों के लिए; ....
वाक्यों के लिए. - विजुअल बेसिक .नेट:
If
...End If
,For
...Next
,Do
...Loop
- लघु बुनियादी:
If
...EndIf
,For
...EndFor
,While
...EndWhile
कमेंट
कमेंट (कंप्यूटर प्रोग्रामिंग) को इसके द्वारा वर्गीकृत किया जा सकता है:
- स्टाइल (इनलाइन/ब्लॉक)
- पार्स नियम (अनदेखा/प्रक्षेपित/स्मृति में संग्रहीत)
- पुनरावर्तीता (नेस्टेबल/गैर-नेस्टेबल)
- उपयोग (डॉकस्ट्रिंग्स/फेंकने वाली कमेंट/अन्य)
इनलाइन कमेंट
इनलाइन कमेंट सामान्यतः वे होती हैं जो किसी कमेंट के अंत को इंगित करने के लिए एक नई पंक्ति वर्ण का उपयोग करती हैं, और एक कमेंट के प्रारम्भ को इंगित करने के लिए एक मनमाना सीमांकक या टोकन (पार्सर) का अनुक्रम।
उदाहरण:
Symbol | लैंग्वेजs |
---|---|
C
|
फोरट्रान I से फोरट्रान 77 (कॉलम 1 में सी) |
REM
|
बेसिक, बैच फ़ाइलें, विज़ुअल बेसिक |
::
|
बैच फ़ाइलें, कमांड.कॉम, सीएमडी.ईएक्सई |
NB.
|
जे; (ऐतिहासिक रूप से) सामान्य संक्षिप्त नाम नोटा बेने से, लैटिन का अर्थ है "अच्छी तरह से नोट करें"। |
⍝
|
एपीएल; स्मरणीय बात यह है कि ग्लिफ़ (जूते से दबा हुआ भाग) एक डेस्क लैंप जैसा दिखता है, और इसलिए पूर्वगामी को "रोशनी" देता है। |
#
|
बू, बॉर्न शेल और अन्य यूनिक्स शेल, कोबरा, पर्ल, पायथन, रूबी, सीड7, पावरशेल, पीएचपी, आर, मेक, मेपल, एलिक्सिर, जूलिया, निम[12] |
%
|
टेक्स, प्रोलॉग, मेटलैब,[13] एर्लैंग, एस-लैंग, विज़ुअल प्रोलॉग, पोस्टस्क्रिप्ट |
//
|
एक्शनस्क्रिप्ट, बू, सी (सी99), सी++, सी#, डी, एफ#, गो, जावा, जावास्क्रिप्ट, कोटलिन, ऑब्जेक्ट पास्कल (डेल्फी), ऑब्जेक्टिव-सी, पीएचपी, रस्ट, स्काला, एसएएसएस, स्विफ्ट, ज़ोजो |
'
|
मंकी, विज़ुअल बेसिक, वीबीस्क्रिप्ट, स्मॉल बेसिक, गैम्बस, ज़ोजो |
!
|
फ़ैक्टर, फ़ोरट्रान, बेसिक प्लस, सूचित करेंइन्फॉर्म, पिक बेसिक |
;
|
अधिकांश असेंबली लैंग्वेजएँ, ऑटोहॉटकी, ऑटोइट, लिस्प, कॉमन लिस्प, क्लोजर, पीजीएन, रीबोल, रेड, स्कीम |
--
|
यूफोरिया, हास्केल, एसक्यूएल, एडा, एप्पलस्क्रिप्ट, एफिल, लुआ, वीएचडीएल, एसजीएमएल, प्योरस्क्रिप्ट, एल्म |
*
|
असेंबलर S/360 (* कॉलम 1 में), कोबोल I से कोबोल 85, पीएडब्ल्यू, फोरट्रान IV से फोरट्रान 77 (* कॉलम 1 में), पिक बेसिक, जीएएमएस (* कॉलम 1 में) |
||
|
कर्ल |
"
|
विम्सस्क्रिप्ट, एबीएपी |
\
|
फोर्थ |
*>
|
कोबोल 90 |
कमेंट ब्लॉक
ब्लॉक कमेंट सामान्यतः वे होती हैं जो किसी कमेंट की शुरुआत को इंगित करने के लिए एक सीमांकक का उपयोग करती हैं, और किसी कमेंट के अंत को इंगित करने के लिए एक अन्य सीमांकक का उपयोग करती हैं। इस संदर्भ में, व्हाइटस्पेस वर्ण और न्यूलाइन वर्णों को सीमांकक के रूप में नहीं गिना जाता है। उदाहरणों में, प्रतीक ~ कमेंट का प्रतिनिधित्व करता है; और, इसके आस-पास के प्रतीकों को व्याख्याकारों/संकलकों द्वारा सीमांकक के रूप में समझा जाता है।
उदाहरण:
Symbol | लैंग्वेजs |
---|---|
comment ~ ;
|
अल्गोल 60, सिमुला |
¢ ~ ¢ ,# ~ # , co ~ co ,comment ~ comment
|
अल्गोल 68[14][15] |
/* ~ */
|
एक्शनस्क्रिप्ट, ऑटोहॉटकी, सी, सी++, सी#, डी,[16] गो, जावा, जावास्क्रिप्ट, कोटलिन, ऑब्जेक्टिव-सी, पीएचपी, पीएल/आई, प्रोलॉग, रेक्स, रस्ट (नेस्टेड किया जा सकता है), स्काला (नेस्टेड किया जा सकता है), एसएएस, एसएएसएस, एसक्यूएल, स्विफ्ट (नेस्टेड किया जा सकता है), विजुअल प्रोलॉग, सीएसएस |
#cs ~ #ce
|
ऑटोल्ट[17] |
/+ ~ +/
|
डी (नेस्टेड किया जा सकता है)[16] |
/# ~ #/
|
कोबरा (नेस्टेड किया जा सकता है) |
<# ~ #>
|
पावरशेल |
<!-- ~ -->
|
एचटीएमएल, एक्सएमएल |
=begin ~ =cut
|
पर्ल |
#`( ~ )
|
राकू (ब्रैकेटिंग वर्ण (), <>, {}, [], BiDi मिररिंग के साथ कोई भी यूनिकोड वर्ण, या Ps/Pe/Pi/Pf गुणों के साथ यूनिकोड वर्ण हो सकते हैं) |
=begin ~ =end
|
Ruby |
#<TAG> ~ #</TAG> , #stop ~ EOF ,#iffalse ~ #endif , #ifntrue ~ #endif ,#if false ~ #endif , #if !true ~ #endif
|
एस-लैंग्[18] |
{- ~ -}
|
हैस्कल (नेस्टेड किया जा सकता है) |
(* ~ *)
|
डेल्फ़ी, एमएल, मैथमेटिका, ऑब्जेक्ट पास्कल, पास्कल, सीड7, ऐप्पलस्क्रिप्ट, ओकैमल (नेस्टेड जा सकता है), स्टैंडर्ड एमएल (नेस्टेड जा सकता है), मेपल, न्यूज़पीक, एफ# |
{ ~ }
|
डेल्फ़ी, ऑब्जेक्ट पास्कल, पास्कल, पीजीएन, रेड |
{# ~ #}
|
ननजक्स, ट्विग |
{{! ~ }}
|
मस्टैश, हैंडलबार |
{{!-- ~ --}}
|
हैंडलबार्स (नेस्टेड नहीं किया जा सकता, लेकिन इसमें {{ और }} हो सकते हैं)
|
|# ~ #|
|
कर्ल |
%{ ~ %}
|
मेटलैब[13] (प्रतीक एक अलग पंक्ति में होने चाहिए) |
#| ~ |#
|
लिस्प, स्कीम, रैकेट (तीनों में नेस्ट किया जा सकता है)। |
#= ~ =#
|
जूलिया[19] |
#[ ~ ]#
|
एनआईएम[20] |
--[[ ~ ]] ,--[=[ ~ ]=] ,--[= ...=[ ~ ]= ...=]
|
लुआ (ब्रैकेट में मिलान = वर्णों की कोई भी संख्या हो सकती है; गैर-मिलान सीमांकक के भीतर नेस्ट किया जा सकता है) |
" ~ "
|
स्मालटॉक |
(comment ~ )
|
क्लोजर |
#If COMMENT Then ~ #End If [lower-alpha 1]
|
विज़ुअल बेसिक .नेट |
#if COMMENT ~ #endif [lower-alpha 2]
|
सी# |
' comment _ or REM comment _ [lower-alpha 3]
|
क्लासिक विज़ुअल बेसिक, वीबीए, वीबीस्क्रिप्ट |
अद्वितीय वेरिएंट
- फोरट्रान
- फोरट्रान 66/77 में इंडेंटिंग लाइनें महत्वपूर्ण हैं। वास्तविक विवरण एक पंक्ति के कॉलम 7 से 72 में है। कॉलम 6 में कोई भी गैर-स्पेस वर्ण इंगित करता है कि यह पंक्ति पिछली पंक्ति की निरंतरता है। ए '
C
' कॉलम 1 में यह दर्शाया गया है कि यह पूरी पंक्ति एक कमेंट है। कॉलम 1 यद्यपि 5 में एक संख्या हो सकती है जो एक लेबल के रूप में कार्य करती है। कॉलम 73 हालांकि 80 को नजरअंदाज कर दिया गया है और कमेंटों के लिए इस्तेमाल किया जा सकता है; पंच्ड कार्ड युग में कंप्यूटर प्रोग्रामिंग में, इन कॉलमों में अक्सर एक अनुक्रम संख्या होती थी ताकि यदि कोई गलती से कार्ड गिरा दे तो कार्डों के डेक को सही क्रम में क्रमबद्ध किया जा सके। फोरट्रान 90 ने इंडेंटेशन नियम की आवश्यकता को हटा दिया और इसका उपयोग करते हुए इनलाइन कमेंट जोड़ीं!
कमेंट सीमांकक के रूप में करैक्टर।
- कोबोल
- निश्चित प्रारूप कोड में, लाइन इंडेंटेशन महत्वपूर्ण है। कॉलम 1-6 और 73 से आगे के कॉलमों को नजरअंदाज कर दिया गया है। यदि एक
*
या/
कॉलम 7 में है, तो वह पंक्ति एक कमेंट है। COBOL 2002 तक, यदि aD
याd
कॉलम 7 में था, यह एक डिबगिंग लाइन को परिभाषित करेगा जिसे तब तक नजरअंदाज कर दिया जाएगा जब तक कि कंपाइलर को इसे संकलित करने का निर्देश न दिया जाए।
- कोबरा
- कोबरा ब्लॉक कमेंटों का समर्थन करता है
/#
...#/
जो इस प्रकार है/*
...*/
अक्सर सी-आधारित लैंग्वेजेज में पाया जाता है, लेकिन दो अंतरों के साथ।#
ई> वर्ण का एकल-पंक्ति कमेंट प्रपत्र से पुन: उपयोग किया जाता है#
..., और ब्लॉक कमेंटों को नेस्ट किया जा सकता है जो कोड के बड़े ब्लॉकों पर कमेंट करने के लिए सुविधाजनक है।
- कर्ल
- कर्ल उपयोगकर्ता-परिभाषित टैग के साथ ब्लॉक कमेंटों का समर्थन करता है
|foo# ... #foo|
.
- लुआ
- कच्चे तारों की तरह, वर्गाकार ब्रैकेटों के बीच किसी भी संख्या में समान चिह्न हो सकते हैं, बशर्ते कि उद्घाटन और समापन टैग दोनों में समान चिह्नों की मिलान संख्या हो; यह तब तक नेस्टिंग की अनुमति देता है जब तक नेस्टेड ब्लॉक कमेंट/कच्ची स्ट्रिंग्स अपनी संलग्न कमेंट की तुलना में भिन्न संख्या में समान चिह्नों का उपयोग करती हैं:
--[[comment --[=[ nested comment ]=] ]]
. लुआ पहली नई लाइन (यदि मौजूद है) को हटा देता है जो सीधे शुरुआती टैग का अनुसरण करती है।
- पर्ल
- पर्ल में ब्लॉक कमेंटों को दस्तावेज़ीकरण का हिस्सा माना जाता है, और उन्हें सादा पुराना दस्तावेज़ीकरण (POD) नाम दिया जाता है। तकनीकी रूप से, पर्ल के पास स्रोत कोड में ब्लॉक कमेंटों को सम्मिलित करने की कोई परंपरा नहीं है, लेकिन POD को नियमित रूप से वर्कअराउंड के रूप में उपयोग किया जाता है।
- पीएचपी
- पीएचपी मानक C/C++ स्टाइल कमेंटों का समर्थन करता है, लेकिन पर्ल स्टाइल का भी समर्थन करता है।
- पायथन
- स्रोत की पंक्तियों पर कमेंट करने के लिए ट्रिपल-उद्धरण का उपयोग, वास्तव में एक कमेंट नहीं बनाता है।[21] संलग्न पाठ एक स्ट्रिंग शाब्दिक बन जाता है, जिसे पायथन आमतौर पर अनदेखा कर देता है (सिवाय इसके कि जब यह मॉड्यूल, क्लास या फ़ंक्शन के मुख्य भाग में पहला कथन हो; डॉकस्ट्रिंग देखें)।
- अमृत
- पायथन में उपयोग की गई उपरोक्त ट्रिक एलिक्सिर में भी काम करती है, लेकिन अगर कंपाइलर इसे देखता है तो वह एक चेतावनी देगा। चेतावनी को दबाने के लिए, किसी को सतर्क रहने की आवश्यकता होगी
~S
(जो स्ट्रिंग इंटरपोलेशन को रोकता है) ट्रिपल-उद्धृत स्ट्रिंग तक, जिससे अंतिम निर्माण होता है~S""" ... """
. इसके अलावा, एलिक्सिर एक आधिकारिक लैंग्वेज सुविधा के रूप में ब्लॉक कमेंटों के सीमित रूप का समर्थन करता है, लेकिन पर्ल की तरह, यह निर्माण पूरी तरह से दस्तावेज़ लिखने के लिए है। पर्ल के विपरीत, इसे वर्कअराउंड के रूप में उपयोग नहीं किया जा सकता है, यह कोड के कुछ हिस्सों तक ही सीमित है और त्रुटियों को फेंकता है या यहां तक कि अन्यत्र उपयोग किए जाने पर फ़ंक्शन को भी दबा देता है।[22]
- राकु
- राकू (प्रोग्रामिंग लैंग्वेज) का उपयोग करता है
#`(...)
ब्लॉक कमेंटों को दर्शाने के लिए।[23] राकू वास्तव में किसी भी दाएं और बाएं युग्मित ब्रैकेट के उपयोग की अनुमति देता है#`
(अर्थात।#`(...)
,#`[...]
,#`{...}
,#`<...>
, और उससे भी अधिक जटिल#`{{...}}
सभी वैध ब्लॉक कमेंट हैं)। ब्रैकेट को कमेंटों के अंदर नेस्ट करने की भी अनुमति है (अर्थात।#`{ a { b } c }
अंतिम समापन ब्रेस पर जाता है)।
- माणिक
- रूबी में ब्लॉक कमेंट यहां खुलती है
=begin
लाइन और पर बंद हो जाती है=end
पंक्ति।
- बोलचाल की लैंग्वेज
- से घिरी रेखाओं का क्षेत्र
#<tag>
और#</tag>
दुभाषिया द्वारा सीमांककों को नजरअंदाज कर दिया जाता है। टैग नाम अल्फ़ान्यूमेरिक वर्णों का कोई भी अनुक्रम हो सकता है जिसका उपयोग यह इंगित करने के लिए किया जा सकता है कि संलग्न ब्लॉक को कैसे समझा जाना है। उदाहरण के लिए,#<latex>
LaTeX स्वरूपित दस्तावेज़ के एक ब्लॉक की शुरुआत का संकेत दे सकता है।
- स्कीम और रैकेट
- अगले पूर्ण वाक्यात्मक घटक (एस-एक्सप्रेशन) पर कमेंट की जा सकती है
#;
.
- एबीएपी
एबीएपी दो अलग-अलग प्रकार की कमेंटों का समर्थन करता है। यदि इंडेंटेशन सहित किसी पंक्ति का पहला करैक्टर तारांकन चिह्न है (*
) पूरी पंक्ति को एक कमेंट के रूप में माना जाता है, जबकि एक एकल दोहरे उद्धरण ("
) एक इन-लाइन कमेंट प्रारंभ करता है जो पंक्ति के अंत तक कार्य करता है। बयानों के बीच एबीएपी कमेंट संभव नहीं हैं EXEC SQL
और ENDEXEC
क्योंकि नेटिव SQL में इन वर्णों के लिए अन्य उपयोग हैं। अधिकांश SQL बोलियों में डबल डैश (--
) का उपयोग इसके स्थान पर किया जा सकता है।
- एसोटेरिक लैंग्वेज
- कई एसोटेरिक प्रोग्रामिंग लैंग्वेज इस परंपरा का पालन करती हैं कि कोई भी पाठ जो निर्देश सूचक (उदाहरण के लिए, बेफंज) द्वारा निष्पादित नहीं किया जाता है या अन्यथा कोई अर्थ नहीं दिया जाता है (उदाहरण के लिए, ब्रेनफक), को एक कमेंट माना जाता है।
कमेंट कम्पैरिसन
सोर्स कोड में कमेंट घोषित करने के लिए सिंटेक्स शैलियों की एक विस्तृत विविधता है। ब्लॉक कमेंट स्टाइल को इंगित करने के लिए यहां इटैलिक में BlockComment
का उपयोग किया गया है। इनलाइन कमेंट स्टाइल को इंगित करने के लिए यहां इटैलिक InlineComment
का उपयोग किया गया है।
लैंग्वेज | इन-लाइन कमेंट | ब्लॉक कमेंट |
---|---|---|
एडा, एफिल, यूफोरिया, ओकाम, स्पार्क, एएनएसआई एसक्यूएल और वीएचडीएल | -- InlineComment
|
|
ऐल्गॉल 60 | comment BlockComment;
| |
ऐल्गॉल 68 | ¢ BlockComment ¢
| |
एपीएल | ⍝ InlineComment
|
|
एप्पलस्क्रिप्ट | -- InlineComment
|
(* BlockComment *)
|
असेंबली लैंग्वेज (वरिएस) | ; InlineComment एक उदाहरण (अधिकांश असेंबली लैंग्वेज केवल लाइन कमेंटों का उपयोग करती हैं)
|
|
ऑटोहॉटकी | ; InlineComment
|
/* BlockComment */
|
एडब्ल्यूके, बॉर्न शेल, C शेल, मेपल, और पॉवरशेल | # InlineComment
|
<# BlockComment #>
|
बैश | # InlineComment
|
<<EOF : '
|
बेसिक (वेरियस दिअलेक्ट्स): | 'InlineComment (नॉट ऑल दिअलेक्ट्स)
|
|
सी (के एंड आर, एएनएसआई/सी89/सी90), चिल, पीएल/आई, और आरईएक्सएक्स | /* BlockComment */
| |
सी (सी99), सी++, गो, स्विफ्ट और जावास्क्रिप्ट | // InlineComment
|
/* BlockComment */
|
सी# | // InlineComment /// InlineComment (एक्सएमएल डॉक्यूमेंटेशन कमेंट)
|
/* BlockComment */ /** BlockComment */ (एक्सएमएल डॉक्यूमेंटेशन कमेंट)#if COMMENT (कम्पाइलर डायरेक्टिव)[lower-alpha 2]
|
कोबोल I से कोबोल 85 | * InlineComment (* कॉलम 7 में)
|
|
कोबोल 2002 | *> InlineComment
|
|
कर्ल | || InlineComment
|
|# BlockComment #|
|
कोबरा | # InlineComment
|
/# BlockComment #/ (नेस्टेबल)
|
डी | // InlineComment /// Documentation InlineComment (डीडीओसी कमेंट)
|
/* BlockComment */ /** Documentation BlockComment */ (डीडीओसी कमेंट)
|
डीसीएल | $! InlineComment
|
|
ईसीएमएस्क्रिप्ट (जावास्क्रिप्ट, एक्शनस्क्रिप्ट, आदि) | // InlineComment
|
/* BlockComment */
|
एलिक्सिर | # InlineComment
|
~S""" @doc """ (डॉक्यूमेंटेशन, केवल मॉड्यूल में कार्य करता है) @moduledoc (मॉड्यूल डॉक्यूमेंटेशन) @typedoc (टाइप डॉक्यूमेंटेशन)
|
फोर्थ | \ InlineComment
|
( BlockComment ) (सिंगल लाइन और मल्टीलाइन)
|
फोरट्रान I से फोरट्रान 77 | C InlineComment (कॉलम 1 में C)
|
|
फोरट्रान 90 और बाद में | ! InlineComment
|
#if 0 [lower-alpha 4]
|
हैस्कल | -- InlineComment
|
{- BlockComment -}
|
जावा | // InlineComment
|
/* BlockComment */
|
जूलिया | # InlineComment
|
#= BlockComment =#
|
लिस्प एंड स्कीम | ; InlineComment
|
#| BlockComment |#
|
लुआ | -- InlineComment
|
--[==[ BlockComment]==] (= चिह्नों की परिवर्तनीय संख्या, = चिह्नों की विभिन्न संख्या वाले परिसीमन के साथ नेस्टेबल)
|
मेपल | # InlineComment
|
(* BlockComment *)
|
मेथेमेटिका | (* BlockComment *)
| |
मेटलैब | % InlineComment
|
%{ ध्यान दें: दोनों प्रतिशत-ब्रैकेट प्रतीक अपनी-अपनी पंक्तियों में एकमात्र गैर-व्हाट्सएप वर्ण होने चाहिए। |
एनआईएम | # InlineComment
|
#[ BlockComment ]#
|
ऑब्जेक्ट पास्कल | // InlineComment
|
(* BlockComment *) { BlockComment }
|
ओकैमल | (* BlockComment (* nestable *) *)
| |
पास्कल, मोडुला-2, मोडुला-3, ओबेरॉन, और एमएल: | (* BlockComment *)
| |
पर्ल और रूबी | # InlineComment
|
=begin (=end रूबी में) (पीओडी डॉक्यूमेंटेशन कमेंट)
|
पीजीएन, रेड | ; InlineComment
|
{ BlockComment }
|
पीएचपी | # InlineComment // InlineComment
|
/* BlockComment */ /** Documentation BlockComment */ (पीएचपी डॉक कमेंट)
|
पायलट | R:InlineComment
|
|
पीएलजेड/एसवाईएस | ! BlockComment !
| |
पीएल/एसक्यूएल और टीएसक्यूएल | -- InlineComment
|
/* BlockComment */
|
प्रोलॉग | % InlineComment
|
/* BlockComment */
|
पायथन | # InlineComment
|
''' BlockComment ''' (डॉक्यूमेंटेशन स्ट्रिंग जब मॉड्यूल, वर्ग, विधि, या फ़ंक्शन की पहली पंक्ति) |
आर | # InlineComment
|
|
रकु | # InlineComment
|
#`{
|
रस्ट | // InlineComment
|
/* BlockComment */ (नेस्टेबल)
|
एसएएस | * BlockComment; /* BlockComment */
| |
सीड7 | # InlineComment
|
(* BlockComment *)
|
सिमुला | comment BlockComment; ! BlockComment;
| |
स्मालटॉक | "BlockComment"
| |
स्मार्टी | {* BlockComment *}
| |
स्टैण्डर्ड एमएल | (* BlockComment *)
| |
टेक्स, लेटेक्स पोस्टस्क्रिप्ट, एर्लैंग और एस-लैंग | % InlineComment
|
|
टेक्सइन्फो | @c InlineComment
|
|
टीयूटीओआर | * InlineComment command $$ InlineComment
|
|
विज़ुअल बेसिक | ' InlineComment Rem InlineComment
|
' BlockComment _ Rem BlockComment _ [lower-alpha 3]
|
विज़ुअल बेसिक .नेट | ' InlineComment
|
#If COMMENT Then
|
विज़ुअल प्रोलॉग | % InlineComment
|
/* BlockComment */
|
वोल्फ्राम लैंग्वेज | (* BlockComment *)
| |
ज़ोजो | ' InlineComment // InlineComment rem InlineComment
|
यह भी देखें
- सी सिंटैक्स
- सी++ सिंटैक्स
- कर्ली ब्रैकेट प्रोग्रामिंग लैंग्वेज, प्रोग्रामिंग लैंग्वेज सिंटैक्स का एक विस्तृत वर्ग
- जावा सिंटैक्स
- जावास्क्रिप्ट सिंटैक्स
- पीएचपी सिंटैक्स और शब्दार्थ
- पायथन सिंटैक्स और शब्दार्थ
संदर्भ
- ↑ 1.0 1.1 For multiple statements on one line
- ↑ Three different kinds of clauses, each separates phrases and the units differently:
- serial-clause using go-on-token (viz. semicolon): begin a; b; c end – units are executed in order.
- collateral-clause using and-also-token (viz. ","): begin a, b, c end – order of execution is to be optimised by the compiler.
- parallel-clause using and-also-token (viz. ","): par begin a, b, c end – units must be run in parallel threads.
- ↑ semicolon – result of receding statement hidden, comma – result displayed
- ↑ 4.0 4.1 From the R Language Definition, section 3.2 Control structures: "A semicolon always indicates the end of a statement while a new line may indicate the end of a statement. If the current statement is not syntactically complete new lines are simply ignored by the evaluator."
- ↑ Bash Reference Manual, 3.1.2.1 Escape Character
- ↑ Python Documentation, 2. Lexical analysis: 2.1.5. Explicit line joining
- ↑ Mathworks.com Archived 7 February 2010 at the Wayback Machine
- ↑ https://ss64.com/nt/syntax-brackets.html
- ↑ "Scripts - Definition & Usage | AutoHotkey".
- ↑ For an M-file (MATLAB source) to be accessible by name, its parent directory must be in the search path (or current directory).
- ↑ 11.0 11.1 11.2 "Verbose Syntax - F# | Microsoft Learn". Microsoft Learn. 5 November 2021. Retrieved 17 November 2022.
- ↑ "Nim Manual".
- ↑ 13.0 13.1 "Mathworks.com". Archived from the original on 21 November 2013. Retrieved 25 June 2013.
- ↑ "Algol68_revised_report-AB.pdf on PDF pp. 61–62, original document pp. 121–122" (PDF). Retrieved 27 May 2014.
- ↑ "HTML Version of the Algol68 Revised Report AB". Archived from the original on 17 March 2013. Retrieved 27 May 2014.
- ↑ 16.0 16.1 "DLang.org, Lexical". Retrieved 27 May 2014.
- ↑ "AutoItScript.com Keyword Reference, #comments-start". Retrieved 27 May 2014.
- ↑ "slang-2.2.4/src/slprepr.c – line 43 to 113". Retrieved 28 May 2014.
- ↑ "Punctuation · The Julia Language".
- ↑ "Nim Manual".
- ↑ "Python tip: You can use multi-line strings as multi-line comments", 11 September 2011, Guido van Rossum
- ↑ "Writing Documentation — Elixir v1.12.3". Retrieved 28 July 2023.
- ↑ "Perl 6 Documentation (Syntax)". docs.perl6.org. Comments. Retrieved 5 April 2017.
- ↑ "Using the FPP Preprocessor". Retrieved 18 November 2022.
- ↑ "Perl 6 POD Comments".
- ↑ "Perl 6 POD (Abbreviated Blocks)".
कमेंट
- ↑ Visual Basic .NET does not support traditional multi-line comments, but they can be emulated through compiler directives.
- ↑ 2.0 2.1 While C# supports traditional block comments
/* ... */
, compiler directives can be used to mimic them just as in VB.NET. - ↑ 3.0 3.1 The line continuation character
_
can be used to extend a single-line comment to the next line without needing to type'
orREM
again. This can be done up to 24 times in a row. - ↑ Fortran does not support traditional block comments, but some compilers support preprocessor directives in the style of C/C++, allowing a programmer to emulate multi-line comments.[24]
[Category:Programming लैंग्वेज comparisons|*Synt