प्रवेश बिंदु

From alpha
Jump to navigation Jump to search
Example of the main function, in C#.
C# सोर्स कोड में दिख सकता है। संदर्भ के लिए विभिन्न भागों को लेबल किया गया है।

कंप्यूटर प्रोग्रामिंग में, एक प्रवेश बिंदु एक प्रोग्राम में वह स्थान होता है जहां प्रोग्राम का निष्पादन शुरू होता है, और जहां प्रोग्राम को कमांड लाइन तर्कों तक पहुंच प्राप्त होती है।[1]

प्रोग्राम के निष्पादन (कंप्यूटिंग) को शुरू करने के लिए, लोडर (कंप्यूटिंग) या ऑपरेटिंग सिस्टम इसके प्रवेश बिंदु पर नियंत्रण पास करता है। (बूटिंग के दौरान, ऑपरेटिंग सिस्टम ही प्रोग्राम है)। यह लोड समय (और गतिशील लिंक समय, यदि मौजूद है) से चलने के समय (कार्यक्रम जीवनचक्र चरण) में संक्रमण को चिह्नित करता है।

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

वैकल्पिक रूप से, प्रोग्राम का निष्पादन एक नामित बिंदु पर शुरू हो सकता है, या तो प्रोग्रामिंग भाषा या ऑपरेटिंग सिस्टम द्वारा परिभाषित एक पारंपरिक नाम के साथ या कॉलर द्वारा निर्दिष्ट नाम पर। कई सी-परिवार|सी-पारिवारिक भाषाओं में, यह नाम का एक फ़ंक्शन है main; नतीजतन, प्रवेश बिंदु को अक्सर मुख्य कार्य के रूप में जाना जाता है।[3] जेवीएम भाषाओं जैसे जावा (प्रोग्रामिंग भाषा) में प्रवेश बिंदु एक स्थिर विधि है main; सीएलआई भाषाओं में जैसे सी # प्रवेश बिंदु एक स्थिर विधि है जिसका नाम है Main.[4]


उपयोग

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

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

समकालीन

आज की अधिकांश लोकप्रिय सी (प्रोग्रामिंग भाषा) ऑपरेटिंग सिस्टम में, एक कंप्यूटर प्रोग्राम में आमतौर पर केवल एक ही प्रवेश बिंदु होता है।

C (प्रोग्रामिंग लैंग्वेज), C++, D प्रोग्रामिंग लैंग्वेज, Zig (प्रोग्रामिंग लैंग्वेज), जंग प्रोग्रामिंग भाषा और कोटलिन (प्रोग्रामिंग भाषा) प्रोग्राम में यह एक फंक्शन (कंप्यूटर साइंस) नाम का है main; जावा (प्रोग्रामिंग लैंग्वेज) में यह एक स्थिर विधि है जिसका नाम है main (हालांकि कक्षा को मंगलाचरण के समय निर्दिष्ट किया जाना चाहिए), और सी शार्प (प्रोग्रामिंग भाषा) में | सी # यह एक स्थिर विधि है जिसका नाम है Main.[5][6] कई प्रमुख ऑपरेटिंग सिस्टम में, मानक निष्पादन योग्य प्रारूप में एक एकल प्रवेश बिंदु होता है। निष्पादन योग्य और लिंक करने योग्य प्रारूप (ईएलएफ) में, यूनिक्स और यूनिक्स जैसी प्रणालियों जैसे कि लिनक्स में उपयोग किया जाता है, प्रवेश बिंदु में निर्दिष्ट किया गया है e_entry ईएलएफ हेडर का क्षेत्र। जीएनयू कंपाइलर संग्रह (जीसीसी) में, लिंकर द्वारा उपयोग किया जाने वाला प्रवेश बिंदु है _start प्रतीक। इसी तरह, माइक्रोसॉफ़्ट विंडोज़ में उपयोग किए जाने वाले पोर्टेबल निष्पादन योग्य प्रारूप में, प्रवेश बिंदु द्वारा निर्दिष्ट किया जाता है AddressOfEntryPoint क्षेत्र, जो सीओएफएफ से विरासत में मिला है। COM फाइलों में, प्रवेश बिंदु 0100h के निश्चित ऑफ़सेट (कंप्यूटर विज्ञान) पर है।

सिंगल-एंट्री-पॉइंट प्रतिमान का एक अपवाद Android (ऑपरेटिंग सिस्टम) है। Android एप्लिकेशन में एक भी प्रवेश बिंदु नहीं होता है – कोई विशेष नहीं है main समारोह। इसके बजाय, उनके पास आवश्यक घटक (गतिविधियाँ और सेवाएँ) हैं जिन्हें सिस्टम आवश्यकतानुसार लोड और चला सकता है।[7] कभी-कभी उपयोग की जाने वाली तकनीक मोटा बाइनरी है, जिसमें एक फ़ाइल में पैक किए गए विभिन्न लक्ष्यों के लिए कई निष्पादन योग्य होते हैं। आमतौर पर, यह एकल समग्र प्रवेश बिंदु द्वारा कार्यान्वित किया जाता है, जो लक्ष्य-विशिष्ट प्रवेश बिंदु के सभी लक्ष्यों और शाखाओं के साथ संगत होता है। वैकल्पिक तकनीकों में अलग-अलग कांटा (फाइल सिस्टम) में अलग-अलग एक्जीक्यूटिव को स्टोर करना शामिल है, प्रत्येक अपने स्वयं के प्रवेश बिंदु के साथ, जिसे बाद में ऑपरेटिंग सिस्टम द्वारा चुना जाता है।

ऐतिहासिक

ऐतिहासिक रूप से, और कुछ समकालीन विरासत प्रणालियों में, जैसे OpenVMS और OS/400, कंप्यूटर प्रोग्राम में प्रवेश बिंदुओं की भीड़ होती है, प्रत्येक कार्यक्रम की विभिन्न कार्यात्मकताओं के अनुरूप होता है। वीएमएस और पीएल/आई और मैक्रो (कंप्यूटर विज्ञान) कार्यक्रमों में सिस्टम-वाइड उपयोग के रूप में प्रवेश बिंदुओं को निरूपित करने का सामान्य तरीका, उन्हें निष्पादन योग्य छवि के नाम के अंत में जोड़ना है, जो एक डॉलर का चिह्न ($) द्वारा सीमांकित है ), उदा. directory.exe$make.

Apple I कंप्यूटर ने भी कुछ हद तक इसका इस्तेमाल किया। उदाहरण के लिए, Apple I के बुनियादी में एक वैकल्पिक प्रवेश बिंदु बेसिक प्रोग्राम को तब उपयोगी बनाए रखेगा जब गलती से रीसेट बटन दबा दिया गया हो।[clarification needed]


निकास बिंदु

सामान्य तौर पर, ऑपरेटिंग सिस्टम या क्रैश (कंप्यूटिंग) पर लौटने से प्रोग्राम किसी भी समय बाहर निकल सकते हैं। व्याख्या की गई भाषाओं में प्रोग्राम दुभाषिया पर नियंत्रण लौटाते हैं, लेकिन संकलित भाषाओं में प्रोग्राम को ऑपरेटिंग सिस्टम पर वापस जाना चाहिए, अन्यथा प्रोसेसर प्रोग्राम के अंत से परे क्रियान्वित करना जारी रखेगा, जिसके परिणामस्वरूप अपरिभाषित व्यवहार होगा।

आमतौर पर, एक कार्यक्रम में एक भी निकास बिंदु निर्दिष्ट नहीं होता है। हालाँकि, अन्य मामलों में रनटाइम यह सुनिश्चित करता है कि प्रोग्राम हमेशा एक एकल निकास बिंदु के माध्यम से संरचित तरीके से समाप्त होते हैं, जिसकी गारंटी तब तक दी जाती है जब तक कि रनटाइम स्वयं क्रैश न हो जाए; यह क्लीनअप कोड चलाने की अनुमति देता है, जैसे atexit हैंडलर। यह या तो आवश्यक रूप से किया जा सकता है कि प्रोग्राम मुख्य कार्य से लौटकर, एक विशिष्ट निकास फ़ंक्शन को कॉल करके, या अपवाद या ऑपरेटिंग सिस्टम सिग्नल को पकड़ने वाले रनटाइम द्वारा समाप्त किया जा सकता है।

प्रोग्रामिंग लैंग्वेज

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

मुख्य कार्य आमतौर पर पहला प्रोग्रामर-लिखित सबरूटीन होता है जो प्रोग्राम शुरू होने पर चलता है, और रनटाइम वातावरण (crt0 या समतुल्य) में निहित सिस्टम-विशिष्ट आरंभीकरण से सीधे लागू होता है। हालाँकि, कुछ भाषाएँ मुख्य रन से पहले उपयोगकर्ता द्वारा लिखे गए कार्यों को निष्पादित कर सकती हैं, जैसे कि C++ वैश्विक वस्तुओं के निर्माता।

अन्य भाषाओं में, विशेष रूप से कई व्याख्या की गई भाषाओं में, कार्यक्रम में पहले कथन पर निष्पादन शुरू होता है।

मुख्य प्रवेश बिंदु को परिभाषित करने के उनके तरीके का वर्णन करते हुए प्रोग्रामिंग भाषाओं की एक गैर-विस्तृत सूची इस प्रकार है:

एपीएल

एपीएल (प्रोग्रामिंग भाषा) में, जब कार्यक्षेत्र लोड होता है, क्वाड एलएक्स (अव्यक्त अभिव्यक्ति) चर की सामग्री को एपीएल अभिव्यक्ति के रूप में व्याख्या की जाती है और निष्पादित की जाती है।

सी और सी ++

C (प्रोग्रामिंग लैंग्वेज) और C++ में, मुख्य फंक्शन का फ़ंक्शन प्रोटोटाइप निम्न में से एक जैसा दिखता है:

<वाक्यविन्यास प्रकाश लैंग = सी> इंट मेन (शून्य); मुख्य प्रवेश बिंदु();

int main (int argc, char **argv); इंट मेन (इंट एआरजीसी, चार * एआरजीवी []); int main (int argc, char **argv, char **env);

// अधिक विशेष रूप से सी में // आईएसओ सी मानक 5.1.2.2.1 के अनुसार नहीं // लेकिन µC के आधार पर एम्बेडेड प्रोग्रामिंग में, इस फॉर्म का भी उपयोग किया जाता है शून्य मुख्य (शून्य); </वाक्यविन्यास हाइलाइट>

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

पैरामीटर (कंप्यूटर विज्ञान) argc, तर्क संख्या, और argv, तर्क सदिश,[8] क्रमशः प्रोग्राम के कमांड-लाइन तर्कों की संख्या और मान दें। के नाम argc और argv सी में कोई मान्य पहचानकर्ता हो सकता है, लेकिन इन नामों का उपयोग करना आम परंपरा है। सी ++ में, नामों को शाब्दिक रूप से लिया जाना है, और सख्त अनुरूपता वांछित होने पर पैरामीटर सूची में शून्य को छोड़ा जाना है।[9] सी और सी ++ मानकों द्वारा अन्य प्लेटफॉर्म-निर्भर प्रारूपों की भी अनुमति है, सिवाय इसके कि सी ++ में रिटर्न प्रकार हमेशा होना चाहिए int;[10] उदाहरण के लिए, यूनिक्स (हालांकि POSIX.1 नहीं) और खिड़कियाँ के पास प्रोग्राम का पर्यावरण चर देने वाला तीसरा तर्क है, अन्यथा इसके माध्यम से पहुँचा जा सकता है getenv में stdlib.h:

<वाक्यविन्यास प्रकाश लैंग = सी> int main (int argc, char **argv, char **envp); </वाक्यविन्यास हाइलाइट>

डार्विन (ऑपरेटिंग सिस्टम)-आधारित ऑपरेटिंग सिस्टम, जैसे कि macOS, में एक चौथा पैरामीटर होता है जिसमें स्वैच्छिक OS-प्रदत्त जानकारी होती है, जैसे कि बाइनरी को निष्पादित करने का पथ:[11] <वाक्यविन्यास प्रकाश लैंग = सी> int main (int argc, char **argv, char **envp, char **apple); </वाक्यविन्यास हाइलाइट>

मुख्य फ़ंक्शन से लौटाया गया मान प्रक्रिया की निकास स्थिति बन जाता है, हालांकि सी मानक केवल दो मानों के लिए विशिष्ट अर्थ बताता है: EXIT_SUCCESS (पारंपरिक रूप से 0) और EXIT_FAILURE. अन्य संभावित वापसी मूल्यों का अर्थ कार्यान्वयन-परिभाषित है। यदि प्रोग्रामर द्वारा वापसी मूल्य परिभाषित नहीं किया गया है, तो एक अंतर्निहित return 0; के अंत में main() समारोह संकलक द्वारा डाला जाता है; यह व्यवहार C++ मानक द्वारा आवश्यक है।

इसकी गारंटी है argc गैर-नकारात्मक है और वह argv[argc] एक अशक्त सूचक है। कन्वेंशन द्वारा, कमांड-लाइन तर्क द्वारा निर्दिष्ट argc और argv कार्यक्रम के नाम को पहले तत्व के रूप में शामिल करें यदि argc 0 से बड़ा है; यदि कोई उपयोगकर्ता कमांड टाइप करता हैrm file, खोल (कंप्यूटिंग) इनिशियलाइज़ करेगा rm के साथ प्रक्रिया करें argc = 2 और argv = {"rm", "file", NULL}. जैसा argv[0] वह नाम है जिसके तहत प्रक्रियाएं दिखाई देती हैं ps, top आदि, कुछ प्रोग्राम, जैसे डेमन (कंप्यूटर सॉफ्टवेयर) या दुभाषिया (कंप्यूटिंग) या आभासी मशीन (जहां argv[0] निष्पादन योग्य होस्ट का नाम होगा), अधिक वर्णनात्मक देने के लिए अपने argv को बदलने का विकल्प चुन सकते हैं argv[0], आमतौर पर के माध्यम से exec सिस्टम कॉल। main() ई> फ़ंक्शन विशेष है; आम तौर पर प्रत्येक सी और सी ++ प्रोग्राम को इसे एक बार परिभाषित करना चाहिए।

यदि घोषित किया गया, main() घोषित किया जाना चाहिए जैसे कि इसका बाहरी संबंध है; इसे घोषित नहीं किया जा सकता है static या inline.

सी ++ में, main() वैश्विक नाम स्थान में होना चाहिए (अर्थात ::main), अतिभारित नहीं किया जा सकता है, और सदस्य कार्य नहीं हो सकता है, हालांकि नाम अन्यथा आरक्षित नहीं है, और अन्य नामस्थानों में सदस्य कार्यों, वर्गों, गणनाओं या गैर-सदस्य कार्यों के लिए उपयोग किया जा सकता है। सी ++ में (सी के विपरीत) main() रिकर्सन (कंप्यूटर विज्ञान) नहीं कहा जा सकता है और इसका पता नहीं लिया जा सकता है।

सी#

C Sharp (प्रोग्रामिंग लैंग्वेज) | C# में लिखे गए प्रोग्राम को निष्पादित करते समय, सामान्य भाषा रनटाइम एक स्टैटिक मेथड की खोज करता है, जो इसके साथ चिह्नित होता है .entrypoint आईएल निर्देश, जो या तो कोई तर्क नहीं लेता है, या प्रकार का एक तर्क string[], और इसका रिटर्न प्रकार है void या int, और इसे क्रियान्वित करता है।[12] <वाक्यविन्यास प्रकाश लैंग = csharp> स्थिर शून्य मुख्य (); स्थैतिक शून्य मुख्य (स्ट्रिंग [] तर्क); स्टेटिक इंट मेन (); स्टेटिक इंट मेन (स्ट्रिंग [] आर्ग्स); </वाक्यविन्यास हाइलाइट>

कमांड-लाइन तर्कों को पारित किया जाता है args, यह जावा में कैसे किया जाता है। संस्करणों के लिए Main() सी और सी ++ दोनों के समान एक पूर्णांक लौटाते हुए, इसे प्रक्रिया की निकास स्थिति के रूप में पर्यावरण में वापस भेज दिया जाता है।

सी # 7.1 के बाद से प्रवेश बिंदु के चार और संभावित हस्ताक्षर हैं, जो एसिंक्रोनस निष्पादन की अनुमति देते हैं Main() तरीका।[13] <वाक्यविन्यास प्रकाश लैंग = csharp> स्थिर async टास्क मेन () स्थिर async कार्य <int> मुख्य () स्थिर async कार्य मुख्य (स्ट्रिंग []) स्थिर async कार्य <int> मुख्य (स्ट्रिंग []) </वाक्यविन्यास हाइलाइट> Task ई> और Task<int> प्रकार के अतुल्यकालिक समकक्ष हैं void और int. async अतुल्यकालिक के उपयोग की अनुमति देने के लिए आवश्यक है (the await कीवर्ड) विधि के अंदर।

स्वच्छ

स्वच्छ (प्रोग्रामिंग भाषा) ग्राफ पुनर्लेखन पर आधारित एक कार्यात्मक प्रोग्रामिंग भाषा है। प्रारंभिक नोड का नाम है Start और प्रकार का है *World -> *World यदि यह दुनिया या कुछ निश्चित प्रकार को बदलता है यदि प्रोग्राम केवल ग्राफ़ पुनर्लेखन के बाद परिणाम प्रिंट करता है Start.

<वाक्यविन्यास प्रकाश लैंग = स्वच्छ> प्रारंभ :: * विश्व -> * विश्व स्टार्ट वर्ल्ड = स्टार्टआईओ ... </वाक्यविन्यास हाइलाइट>

या और भी सरल

<वाक्यविन्यास प्रकाश लैंग = स्वच्छ> प्रारंभ :: स्ट्रिंग स्टार्ट = हैलो, दुनिया! </वाक्यविन्यास हाइलाइट>

एक संकलक को बताता है कि निष्पादन योग्य फ़ाइल उत्पन्न करने के लिए किस विकल्प का उपयोग करना है।

सामान्य लिस्प

एएनएसआई कॉमन लिस्प मुख्य कार्य को परिभाषित नहीं करता है; इसके बजाय, स्रोत फ़ाइल में कोड को ऊपर से नीचे तक पढ़ा और मूल्यांकन किया जाता है। हालांकि, निम्नलिखित कोड एमुलेटर मुख्य कार्य करेगा।

<वाक्यविन्यास प्रकाश लैंग = लिस्प> (हेलो-मेन डिफ्यूज करें)

 (प्रारूप टी हैलो वर्ल्ड! ~% ))

(हैलो-मेन) </वाक्यविन्यास हाइलाइट>

डी

डी (प्रोग्रामिंग भाषा) में, मुख्य फ़ंक्शन का फ़ंक्शन प्रोटोटाइप निम्न में से एक जैसा दिखता है:

<वाक्यविन्यास प्रकाश लैंग = डी> शून्य मुख्य (); शून्य मुख्य (स्ट्रिंग [] तर्क); मुख्य प्रवेश बिंदु(); इंट मेन (स्ट्रिंग [] आर्ग्स); </वाक्यविन्यास हाइलाइट>

कमांड-लाइन तर्कों को पारित किया जाता है args, यह C# या Java में कैसे किया जाता है। संस्करणों के लिए main() सी और सी ++ दोनों के समान एक पूर्णांक लौटाते हुए, इसे प्रक्रिया की निकास स्थिति के रूप में पर्यावरण में वापस भेज दिया जाता है।

डार्ट

डार्ट (प्रोग्रामिंग भाषा) एक सामान्य प्रयोजन की प्रोग्रामिंग भाषा है जिसका उपयोग अक्सर वेब और मोबाइल एप्लिकेशन बनाने के लिए किया जाता है। कई अन्य प्रोग्रामिंग भाषाओं की तरह, डार्ट का एक प्रवेश बिंदु है जो डार्ट प्रोग्राम के लिए शुरुआती बिंदु के रूप में कार्य करता है। प्रवेश बिंदु पहला कार्य है जिसे किसी प्रोग्राम के चलने पर निष्पादित किया जाता है। डार्ट में, प्रवेश बिंदु आमतौर पर नामित एक फ़ंक्शन होता है main . जब डार्ट प्रोग्राम चलाया जाता है, तो डार्ट रनटाइम नामित फ़ंक्शन की तलाश करता है main और इसे क्रियान्वित करता है। कोई भी डार्ट कोड जिसे प्रोग्राम शुरू होने पर निष्पादित करने का इरादा है, को इसमें शामिल किया जाना चाहिए main समारोह। यहाँ एक सरल का उदाहरण है main डार्ट में कार्य: <वाक्यविन्यास प्रकाश लैंग = डार्ट> शून्य मुख्य () {

 प्रिंट (हैलो, दुनिया!);

} </वाक्यविन्यास हाइलाइट> इस उदाहरण में, main फ़ंक्शन केवल टेक्स्ट को प्रिंट करता है Hello, world! कंसोल के लिए जब प्रोग्राम चलाया जाता है। डार्ट प्रोग्राम चलने पर यह कोड स्वचालित रूप से निष्पादित हो जाएगा।

यह ध्यान रखना महत्वपूर्ण है कि जबकि main फ़ंक्शन डार्ट प्रोग्राम के लिए डिफ़ॉल्ट प्रवेश बिंदु है, यदि आवश्यक हो तो एक अलग प्रवेश बिंदु निर्दिष्ट करना संभव है। इसका उपयोग करके किया जा सकता है @pragma("vm:entry-point") डार्ट में एनोटेशन। हालांकि, ज्यादातर मामलों में, main फ़ंक्शन वह प्रवेश बिंदु है जिसका उपयोग डार्ट प्रोग्राम के लिए किया जाना चाहिए।

फोरट्रान

फोरट्रान का कोई मुख्य उपनेमका या कार्य नहीं है। इसके बजाय ए PROGRAM बयान के रूप में पहली पंक्ति का उपयोग यह निर्दिष्ट करने के लिए किया जा सकता है कि एक प्रोग्राम इकाई एक मुख्य कार्यक्रम है, जैसा कि नीचे दिखाया गया है। PROGRAM ई> बयान पुनरावर्ती कॉल के लिए इस्तेमाल नहीं किया जा सकता।[14] <वाक्यविन्यास लैंग = फोरट्रान>

     कार्यक्रम नमस्ते
     प्रिंट *, सिंट!
     अंत कार्यक्रम हैलो

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

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

जीएनएटी

GNAT का उपयोग करते हुए, प्रोग्रामर को नामित फ़ंक्शन लिखने की आवश्यकता नहीं होती है main; एक सबप्रोग्राम वाली एक स्रोत फ़ाइल को निष्पादन योग्य में संकलित किया जा सकता है। बाइंडर हालांकि एक पैकेज बनाएगा ada_main, जिसमें सी-स्टाइल मुख्य फ़ंक्शन शामिल और निर्यात होगा।

जाओ

जाओ (प्रोग्रामिंग भाषा) प्रोग्रामिंग लैंग्वेज में, प्रोग्राम का निष्पादन किसके साथ शुरू होता है main का कार्य package main <वाक्यविन्यास प्रकाश लैंग = जाओ> मुख्य पैकेज

एफएमटी आयात करें

फंक मेन () {

fmt.Println (हैलो, वर्ल्ड!)

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

गो में मानक पुस्तकालय के बाहर तर्कों या रिटर्न कोड तक पहुंचने का कोई तरीका नहीं है। इनके जरिए पहुंचा जा सकता है os.Args और os.Exit क्रमशः, दोनों में शामिल हैं "os" पैकेट।

हास्केल

हास्केल (प्रोग्रामिंग भाषा) प्रोग्राम में एक नाम होना चाहिए main प्रकार के मूल्य के लिए बाध्य IO t, किसी प्रकार के लिए t;[15] जो आमतौर पर है IO (). IO कार्यात्मक प्रोग्रामिंग में एक सन्यासी है, जो विशुद्ध रूप से कार्यात्मक प्रोग्रामिंग कोड के संदर्भ में साइड इफेक्ट (कंप्यूटर विज्ञान) | साइड-इफेक्ट्स का आयोजन करता है।[16] main e> मान प्रोग्राम द्वारा किए गए साइड-इफेक्ट्स-पूर्ण गणना का प्रतिनिधित्व करता है। गणना का परिणाम द्वारा दर्शाया गया main त्याग दिया जाता है; इस कर main आमतौर पर प्रकार होता है IO (), जो इंगित करता है कि गणना के परिणाम का प्रकार है (), इकाई प्रकार, जिसमें कोई जानकारी नहीं है।

<वाक्यविन्यास लैंग = हैकेल> मुख्य :: आईओ () main = putStrLn हैलो, वर्ल्ड! </वाक्यविन्यास हाइलाइट>

कमांड लाइन तर्क को नहीं दिया जाता है main; उन्हें अन्य IO क्रिया का उपयोग करके प्राप्त किया जाना चाहिए, जैसे कि System.Environment.getArgs.

जावा

जावा (प्रोग्रामिंग लैंग्वेज) प्रोग्राम एक क्लास की मुख्य विधि (कंप्यूटर साइंस) पर क्रियान्वित होने लगते हैं,[17][18][19][20] जिसमें निम्न विधि शीर्षकों में से एक है:

<वाक्यविन्यास प्रकाश लैंग = java5> सार्वजनिक स्थैतिक शून्य main (String [] args) सार्वजनिक स्थैतिक शून्य main (String [] args) सार्वजनिक स्थैतिक शून्य main (String [] args[]) </वाक्यविन्यास हाइलाइट>

कमांड-लाइन तर्कों को पारित किया जाता है args. सी और सी ++ के रूप में, नामmain()विशेष है। जावा की मुख्य विधियाँ सीधे एक मान नहीं लौटाती हैं, लेकिन एक का उपयोग करके पारित किया जा सकता है System.exit() तरीका।

सी के विपरीत, प्रोग्राम का नाम इसमें शामिल नहीं है args, क्योंकि यह उस वर्ग का नाम है जिसमें मुख्य विधि है, इसलिए यह पहले से ही ज्ञात है। सी के विपरीत, तर्कों की संख्या को शामिल करने की आवश्यकता नहीं है, क्योंकि जावा में सरणी में एक फ़ील्ड है जो ट्रैक करता है कि कितने तत्व हैं।

मुख्य कार्य को कक्षा में शामिल किया जाना चाहिए। ऐसा इसलिए है क्योंकि जावा में सब कुछ एक वर्ग के भीतर समाहित होना है। उदाहरण के लिए, जावा में एक हैलो वर्ल्ड प्रोग्राम ऐसा दिख सकता है:

<वाक्यविन्यास प्रकाश लैंग = java5> पब्लिक क्लास हैलोवर्ल्ड {

   सार्वजनिक स्थैतिक शून्य main (String [] args) {
       System.out.println (हैलो, दुनिया!);
   }

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

इस प्रोग्राम को चलाने के लिए कॉल करना होगा java HelloWorld निर्देशिका में जहां संकलित जावा वर्ग फ़ाइल HelloWorld.class) मौजूद। वैकल्पिक रूप से, निष्पादन योग्य JAR (फ़ाइल स्वरूप) फ़ाइलें प्रवेश बिंदु को इस तरह से निर्दिष्ट करने के लिए एक मेनिफेस्ट फ़ाइल का उपयोग करती हैं जो उपयोगकर्ता के दृष्टिकोण से फ़ाइल-सिस्टम से स्वतंत्र है।

लोगो

लोगो (प्रोग्रामिंग भाषा) में, लोड होने पर प्रक्रियाएँ निष्पादित नहीं होती हैं। उन्हें निष्पादित करने के लिए, इस कोड का उपयोग करना आवश्यक है:

घोषित करना
 ... ; स्टार्टअप आदेश (जैसे प्रिंट [स्वागत])
अंत
स्टार्टअप बनाएं [प्रोकनाम]

चर startup कार्यों की स्टार्टअप सूची के लिए उपयोग किया जाता है, लेकिन सम्मेलन यह है कि यह अन्य प्रक्रियाओं को कॉल करता है जो क्रियाएं चलाता है। वह प्रक्रिया किसी भी नाम की हो सकती है।

OCaml

ओकैमल के पास नहीं है main समारोह। कार्यक्रमों का मूल्यांकन ऊपर से नीचे तक किया जाता है।

कमांड-लाइन तर्क नाम की एक सरणी में उपलब्ध हैं Sys.argv और बाहर निकलने की स्थिति डिफ़ॉल्ट रूप से 0 है।

उदाहरण: <वाक्यविन्यास प्रकाश लैंग = ओकैमल>

Print_endline हैलो वर्ल्ड

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

पास्कल

पास्कल (प्रोग्रामिंग भाषा) में, मुख्य प्रक्रिया प्रोग्राम में एकमात्र अनाम ब्लॉक (प्रोग्रामिंग) है। क्योंकि Pascal प्रोग्राम C, C++ या Java प्रोग्राम की तुलना में अधिक कठोर बॉटम-अप क्रम में प्रक्रियाओं और कार्यों को परिभाषित करता है, मुख्य प्रक्रिया आमतौर पर प्रोग्राम का अंतिम ब्लॉक होता है। पास्कल नाम का कोई विशेष अर्थ नहीं हैmainया कोई समान नाम।

<वाक्यविन्यास लैंग = पास्कल> कार्यक्रम हैलो (आउटपुट); शुरू

 राइटलन ('हैलो, दुनिया!');

अंत। </वाक्यविन्यास हाइलाइट>

कमांड-लाइन तर्कों की गणना की जाती है ParamCount और तार के रूप में पहुँचा जा सकता है ParamStr(n), n के साथ 0 और के बीच ParamCount.

पास्कल के संस्करण जो इकाइयों या मॉड्यूल का समर्थन करते हैं, उनमें प्रत्येक में एक अनाम ब्लॉक भी हो सकता है, जिसका उपयोग मॉड्यूल को आरंभ करने के लिए किया जाता है। इन ब्लॉकों को मुख्य प्रोग्राम एंट्री पॉइंट कहे जाने से पहले निष्पादित किया जाता है।

पर्ल

पर्ल में, कोई मुख्य कार्य नहीं है। कथनों को ऊपर से नीचे तक क्रियान्वित किया जाता है, हालाँकि कथनों में a BEGIN ब्लॉक को सामान्य स्टेटमेंट से पहले निष्पादित किया जाता है।

विशेष सरणी में कमांड-लाइन तर्क उपलब्ध हैं @ARGV. सी के विपरीत, @ARGV कार्यक्रम का नाम शामिल नहीं है, जो है $0.

पीएचपी

PHP का कोई मुख्य कार्य नहीं है। PHP स्क्रिप्ट की पहली पंक्ति से शुरू होकर, फ़ंक्शन हेडर द्वारा एनकैप्सुलेट नहीं किए गए किसी भी कोड को देखते ही निष्पादित कर दिया जाता है।

पाइक

पाइक (प्रोग्रामिंग लैंग्वेज) में सिंटैक्स C और C++ के समान है। निष्पादन शुरू होता है main.argcवेरिएबल प्रोग्राम को पास किए गए पैरामीटर (कंप्यूटर साइंस) की संख्या रखता है।argvवेरिएबल प्रोग्राम में दिए गए तर्कों से जुड़ा मान रखता है।

उदाहरण: <वाक्यविन्यास लैंग = पाइक>

int मुख्य (int argc, सरणी (स्ट्रिंग) argv)

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

पायथन

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

वैकल्पिक रूप से, एक प्रोग्राम को एक स्पष्ट के साथ संरचित किया जा सकता है main किसी प्रोग्राम के सीधे निष्पादित होने पर निष्पादित किए जाने वाले कोड वाले फ़ंक्शन, लेकिन जिसे प्रोग्राम को मॉड्यूल के रूप में आयात करके और फ़ंक्शन को कॉल करके भी लागू किया जा सकता है। यह निम्नलिखित मुहावरे द्वारा किया जा सकता है, जो आंतरिक चर पर निर्भर करता है __name__ पर सेट किया जा रहा है __main__ जब एक प्रोग्राम निष्पादित किया जाता है, लेकिन तब नहीं जब इसे एक मॉड्यूल के रूप में आयात किया जाता है (जिस स्थिति में इसे मॉड्यूल नाम पर सेट किया जाता है); इस संरचना के कई रूप हैं:[21][22][23] <वाक्यविन्यास लैंग = अजगर> आयात प्रणाली

डेफ मेन (एआरजीवी):

   एन = इंट (आर्गव [1])
   प्रिंट (एन + 1)

अगर __name__ == '__main__':

   sys.exit (मुख्य (sys.argv))

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

इस मुहावरे में नामित प्रवेश बिंदु पर कॉल करें main स्पष्ट है, और ऑपरेटिंग सिस्टम के साथ बातचीत (तर्क प्राप्त करना, सिस्टम से बाहर निकलना) स्पष्ट रूप से लाइब्रेरी कॉल द्वारा किया जाता है, जिसे अंततः पायथन रनटाइम द्वारा नियंत्रित किया जाता है। सी के साथ यह विपरीत है, जहां ये सम्मेलन के आधार पर रनटाइम द्वारा अंतर्निहित रूप से किया जाता है।

QB64

QB64 भाषा का कोई मुख्य कार्य नहीं है, वह कोड जो किसी फ़ंक्शन के भीतर नहीं है, या सबरूटीन को पहले ऊपर से नीचे तक निष्पादित किया जाता है: <वाक्यविन्यास लैंग = वीबी> हैलो वर्ल्ड प्रिंट करें! एक =; a = getInteger(1.8d): a प्रिंट करें

समारोह getInteger (एन डबल के रूप में)

   getInteger = int (एन)

अंत समारोह </वाक्यविन्यास हाइलाइट> कमांड लाइन तर्क (यदि कोई हो) कमांड $ फ़ंक्शन का उपयोग करके पढ़ा जा सकता है: <वाक्यविन्यास लैंग = वीबी> स्ट्रिंग के रूप में मंद साझा कमांडलाइन कमांडलाइन = कमांड $

'कई स्पेस-पृथक कमांड लाइन तर्कों को COMMAND$(n) का उपयोग करके पढ़ा जा सकता है कमांडलाइन 1 = कमांड $ (2) </वाक्यविन्यास हाइलाइट>

रूबी

रूबी (प्रोग्रामिंग भाषा) में, कोई विशिष्ट मुख्य कार्य नहीं है। इसके बजाय, किसी के बाहर लिखा कोड class .. end या module .. end गुंजाइश एक विशेष के संदर्भ में क्रियान्वित किया जाता हैmainवस्तु। इस वस्तु का उपयोग करके पहुँचा जा सकता है self:

<वाक्यविन्यास प्रकाश लैंग = आईआरबी> आईआरबी(मुख्य):001:0> स्व => मुख्य </वाक्यविन्यास हाइलाइट>

इसके निम्नलिखित गुण हैं:

<वाक्यविन्यास प्रकाश लैंग = आईआरबी> आईआरबी (मुख्य): 002: 0> सेल्फ क्लास => वस्तु irb(main):003:0> self.class.ancestors => [ऑब्जेक्ट, कर्नेल, बेसिकऑब्जेक्ट] </वाक्यविन्यास हाइलाइट>

ए के बाहर परिभाषित तरीके class या module स्कोप को निजी तरीकों के रूप में परिभाषित किया गया हैmainवस्तु। के वर्ग के बाद सेmainहै Object, ऐसे तरीके लगभग हर वस्तु के निजी तरीके बन जाते हैं:

<वाक्यविन्यास प्रकाश लैंग = आईआरबी> irb(main):004:0> def foo आईआरबी (मुख्य): 005: 1> 42 आईआरबी (मुख्य): 006: 1> अंत => शून्य आईआरबी(मुख्य):007:0> foo => 42 आईआरबी(मेन):008:0> [].foo NoMethodError: निजी विधि 'फू' को []: ऐरे के लिए कहा जाता है से (आईआरबी):8 से /usr/bin/irb:12:in `<main>' आईआरबी (मुख्य): 009: 0> गलत.फू NoMethodError: निजी विधि 'फू' को झूठा कहा जाता है: FalseClass से (आईआरबी): 9 से /usr/bin/irb:12:in `<main>' </वाक्यविन्यास हाइलाइट>

कमांड-लाइन तर्कों की संख्या और मान का उपयोग करके निर्धारित किया जा सकता है ARGV निरंतर सरणी:

<वाक्यविन्यास लैंग = कंसोल> $ आईआरबी / देव / ट्टी फू बार

ट्टी(मुख्य):001:0> ARGV एआरजीवी => [फू, बार] ट्टी(मुख्य):002:0> ARGV.size ARGV. आकार => 2 </वाक्यविन्यास हाइलाइट>

का पहला तत्व ARGV, ARGV[0], में पहला कमांड-लाइन तर्क शामिल है, न कि निष्पादित प्रोग्राम का नाम, जैसा कि सी में है। प्रोग्राम का नाम उपयोग करके उपलब्ध है $0 या $PROGRAM_NAME.[24] पायथन के समान, कोई भी इसका उपयोग कर सकता है:

<वाक्यविन्यास लैंग = रूबी> अगर __FILE__ == $PROGRAM_NAME

 # यहां मुख्य कोड डालें

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

कुछ कोड को केवल तभी निष्पादित करने के लिए जब इसकी फ़ाइल में निर्दिष्ट किया गया हो ruby मंगलाचरण।

जंग

रस्ट में, प्रोग्राम का प्रवेश बिंदु नाम का एक फ़ंक्शन है main. आमतौर पर, यह फ़ंक्शन नामक फ़ाइल में स्थित होता है main.rs या lib.rs. <वाक्यविन्यास प्रकाश लैंग = जंग> // `main.rs` में एफएन मुख्य () {

   प्रिंट्लन! (हैलो, वर्ल्ड!);

} </वाक्यविन्यास हाइलाइट> इसके अतिरिक्त, जंग 1.26.0 के अनुसार, मुख्य कार्य वापस आ सकता है Result:[25] <वाक्यविन्यास प्रकाश लैंग = जंग> एफएन मुख्य () -> परिणाम <(), एसटीडी :: आईओ :: त्रुटि> {

   प्रिंट्लन! (हैलो, वर्ल्ड!);
   Ok(()) // सामग्री `()` के साथ `Ok` मान का एक प्रकार `परिणाम` वापस करें, यानी एक खाली टपल।

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

स्विफ्ट

जब एक Xcode खेल के मैदान में चलाया जाता है,[26] स्विफ्ट (प्रोग्रामिंग भाषा) एक स्क्रिप्टिंग लैंग्वेज की तरह व्यवहार करती है, ऊपर से नीचे तक स्टेटमेंट्स को निष्पादित करती है; शीर्ष-स्तरीय कोड की अनुमति है।

// हैलोवर्ल्ड.प्लेग्राउंड

चलो नमस्ते = नमस्ते
चलो दुनिया = दुनिया

हेलो वर्ल्ड = हैलो + + वर्ल्ड

प्रिंट (हैलोवर्ल्ड) // हैलो वर्ल्ड

कोको (एपीआई)- और स्विफ्ट में लिखे गए कोको टच-आधारित एप्लिकेशन आमतौर पर किसके साथ प्रारंभ किए जाते हैं @NSApplicationMain और @UIApplicationMain गुण, क्रमशः। वे विशेषताएँ उनके उद्देश्य के समतुल्य हैं main.m उद्देश्य-सी परियोजनाओं में फ़ाइल: वे स्पष्ट रूप से घोषित करते हैं main फ़ंक्शन जो कॉल करता है UIApplicationMain(_:_:_:_:)[27] जो एक उदाहरण बनाता है UIApplication.[28]

कोको टच-आधारित iOS ऐप को इनिशियलाइज़ करने और इसके एप्लिकेशन डेलिगेट की घोषणा करने के लिए निम्न कोड डिफ़ॉल्ट तरीका है।<syntaxhighlight lang= Swift > // ऐपडिलेगेट.स्विफ्ट

यूआईकिट आयात करें

@UIApplicationMain वर्ग AppDelegate: UIResponder, UIApplicationDelegate {

   var विंडो: UIWindow?
   
   func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> बूल {
       सच लौटाओ
   }
   

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

मूल दृश्य

विजुअल बेसिक में, जब किसी प्रोजेक्ट में कोई फॉर्म नहीं होता है, तो स्टार्टअप ऑब्जेक्ट हो सकता है Main() प्रक्रिया। Command$ प्रोग्राम लॉन्च करने के लिए उपयोग की जाने वाली कमांड लाइन के तर्क भाग तक पहुंचने के लिए e> फ़ंक्शन वैकल्पिक रूप से उपयोग किया जा सकता है: <वाक्यविन्यास लैंग = वीबी> उप मुख्य()

   Debug.Print हैलो वर्ल्ड!
   MsgBox तर्क यदि कोई हैं: और कमांड $

अंत उप </वाक्यविन्यास हाइलाइट>

जोजो

Xojo में, दो अलग-अलग प्रकार के प्रोजेक्ट हैं, जिनमें से प्रत्येक का एक अलग मुख्य प्रवेश बिंदु है। डेस्कटॉप (GUI) एप्लिकेशन किसके साथ शुरू होते हैं App.Open परियोजना की घटना Application वस्तु। कंसोल एप्लिकेशन इसके साथ शुरू होते हैं App.Run परियोजना की घटना ConsoleApplication वस्तु। दोनों उदाहरणों में, मुख्य कार्य स्वचालित रूप से उत्पन्न होता है और इसे परियोजना से हटाया नहीं जा सकता है।

यह भी देखें

  • crt0, C प्रोग्राम से जुड़े निष्पादन स्टार्टअप रूटीन का एक सेट
  • रनटाइम सिस्टम

संदर्भ

  1. "In Computing, what is an Entry Point? (with picture)". wiseGEEK. Retrieved 2020-01-22.
  2. Decker, Karsten M.; Rehmann, René M. (1994). Programming Environments for Massively Parallel Distributed Systems: Working Conference of the Ifip Wg 10.3, April 25-29, 1994. Springer Science & Business Media. ISBN 978-3-7643-5090-1.
  3. "Main Method in C#". GeeksforGeeks. 2018-11-30. Retrieved 2020-01-22.
  4. Wagner, Bill (2017-08-01). "Main() / Entry Points (C# Programming Guide) - Microsoft Developer Network". docs.microsoft.com. Retrieved 2018-12-03.
  5. "The main() function". ibm.com. IBM. Retrieved 2014-05-08.
  6. "Main() and Command-Line Arguments (C# Programming Guide)". Msdn.microsoft.com. Retrieved 2014-05-08.
  7. "Application Fundamentals". Android Development. linuxtopia.org. Retrieved 2014-02-19.
  8. argv: the vector term in this variable's name is used in traditional sense to refer to strings.
  9. Parameter types and names of main
  10. Section 3.6.1.2, Standard C++ 2011 edition.
  11. "The char *apple Argument Vector". Archived from the original on 2015-12-22. Retrieved 2014-05-12.
  12. "Console Applications in .NET, or Teaching a New Dog Old Tricks". Msdn.microsoft.com. 2003-06-12. Archived from the original on 2008-02-04. Retrieved 2013-08-19.
  13. "The official repo for the design of the C# programming language: Dotnet/Csharplang". GitHub. 2019-08-26.
  14. XL FORTRAN for AIX. Language Reference. Third Edition, 1994. IBM
  15. "The Haskell 98 Report: Modules". Haskell.org. Retrieved 2013-08-19.
  16. Some Haskell Misconceptions: Idiomatic Code, Purity, Laziness, and IO — on Haskell's monadic IO>
  17. "The Java Language Environment". Oracle. Retrieved 2020-03-14. Within the HelloWorld class, we declare a single method called main() which in turn contains a single method invocation to display the string "Hello world!" on the standard output. The statement that prints "Hello world!" does so by invoking the println method of the out object. The out object is a class variable in the System class that performs output operations on files.
  18. Schildt, Herbert (2019). Java : a beginner's guide. New York: McGraw-Hill Education. p. 46. ISBN 978-1-260-44022-5. OCLC 1061561931. //A JAVA program begins with a call to main ().
  19. "Hello, World! - Free Interactive Java Tutorial". Learn Java. Retrieved 2020-03-14. In Java, every line of code that can actually run needs to be inside a class. "public class Main {}" declares a class named Main, which is public, that means that any other class can access it.
  20. "Hello, World! - Free Interactive Java Tutorial". Learn Java. Retrieved 2020-03-14. "public static void main(String[] args) {} " is the entry point of our Java program. the main method has to have this exact signature in order to be able to run our program.
  21. Guido van Rossum (May 15, 2003). "Python main() functions", comments {{cite web}}: External link in |postscript= (help)CS1 maint: postscript (link)
  22. Code Like a Pythonista: Idiomatic Python Archived 2014-05-27 at the Wayback Machine—on Python scripts used as modules
  23. Ned Batchelder (6 June 2003). "Python main() functions".
  24. Programming Ruby: The Pragmatic Programmer's Guide, Ruby and Its World — on Ruby ARGV
  25. "Releases.md". GitHub Rust. Retrieved 15 February 2019.
  26. Not to be confused with Swift Playgrounds, an Apple-developed iPad app for learning the Swift programming language.
  27. "UIApplicationMain(_:_:_:_:) — UIKit". Apple Developer Documentation. Retrieved 2019-01-12.
  28. "UIApplication — UIKit". Apple Developer Documentation. Retrieved 2019-01-12.


बाहरी संबंध