न्यूएलआईएसपी: Difference between revisions
No edit summary |
No edit summary |
||
Line 32: | Line 32: | ||
==इतिहास== | ==इतिहास== | ||
न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, [[ सामान्य लिस्प ]] और स्कीम (प्रोग्रामिंग भाषा), और [[पास्कल (प्रोग्रामिंग भाषा)]] और [[सी (प्रोग्रामिंग भाषा)]] जैसी अन्य भाषाओं से प्रभावित है। न्यूएलआईएसपी की शुरुआत 1991 में हुई थी और इसे मूल रूप से सन-4 वर्कस्टेशन पर विकसित किया गया था।<ref>{{cite web |url=http://www.donlucio.net/index.cgi?page=Projects |title=newLISP – a LISP Scripting Language |last=Mueller |first=Lutz |website=don Lucio |access-date=2018-11-20}}</ref> इसके पश्चात् इसे विंडोज़ 3.0 में स्थानांतरित कर दिया गया था, जहां 1993 के आसपास [[कॉम्प्युसर्व]] पर संस्करण 1.3 जारी किया गया था, फिर विंडोज़ [[ग्राफिकल यूज़र इंटरफ़ेस]] (जीयूआई) ग्राफिक्स-सक्षम एप्लिकेशन और डॉस [[सांत्वना आवेदन]] (दोनों [[16-बिट]]) के रूप में उपलब्ध हो गया था। इस प्रकार 1995 में, विंडोज़ 95 [[की]] रिलीज़ के साथ, न्यूएलआईएसपी [[32-बिट]] में स्थानांतरित हो गया था। | न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, [[ सामान्य लिस्प |सामान्य लिस्प]] और स्कीम (प्रोग्रामिंग भाषा), और [[पास्कल (प्रोग्रामिंग भाषा)]] और [[सी (प्रोग्रामिंग भाषा)]] जैसी अन्य भाषाओं से प्रभावित है। न्यूएलआईएसपी की शुरुआत 1991 में हुई थी और इसे मूल रूप से सन-4 वर्कस्टेशन पर विकसित किया गया था।<ref>{{cite web |url=http://www.donlucio.net/index.cgi?page=Projects |title=newLISP – a LISP Scripting Language |last=Mueller |first=Lutz |website=don Lucio |access-date=2018-11-20}}</ref> इसके पश्चात् इसे विंडोज़ 3.0 में स्थानांतरित कर दिया गया था, जहां 1993 के आसपास [[कॉम्प्युसर्व]] पर संस्करण 1.3 जारी किया गया था, फिर विंडोज़ [[ग्राफिकल यूज़र इंटरफ़ेस]] (जीयूआई) ग्राफिक्स-सक्षम एप्लिकेशन और डॉस [[सांत्वना आवेदन]] (दोनों [[16-बिट]]) के रूप में उपलब्ध हो गया था। इस प्रकार 1995 में, विंडोज़ 95 [[की]] रिलीज़ के साथ, न्यूएलआईएसपी [[32-बिट]] में स्थानांतरित हो गया था। | ||
अप्रैल 1999 में, न्यूएलआईएसपी को [[लिनक्स]] में पोर्ट किया गया था; इसके कुछ मुख्य एल्गोरिदम रीराइट (प्रोग्रामिंग) थे, और सभी विंडोज़-विशिष्ट कोड हटा दिए गए थे। न्यूएलआईएसपी को जीएनयू जनरल पब्लिक लाइसेंस के अनुसार लाइसेंस प्राप्त एक [[ खुला स्रोत सॉफ्टवेयर ]] प्रोजेक्ट के रूप में जारी किया गया था, और संस्करण 6.0.25 के बाद विंडोज़ पर विकास बंद हो गया था। 2001 की पहली छमाही के समय, न्यूएलआईएसपी को ग्राफिक्स क्षमताओं के बिना [[cygwin|सिगविन]] प्लेटफॉर्म पर विंडोज़ में वापस पोर्ट किया गया था। 2001 की दूसरी छमाही में, न्यूएलआईएसपी-टीके नामक क्रॉस-प्लेटफ़ॉर्म टीसीएल/टीके (सॉफ़्टवेयर) फ्रंटएंड संस्करण 6.3.0 के आसपास जारी किया गया था। 2006 में, पूर्णांक अंकगणित और संस्करण 9.0 में फ़ाइलों पर कुछ संचालन के लिए [[64-बिट]] परिशुद्धता प्रस्तुत की गई थी। | अप्रैल 1999 में, न्यूएलआईएसपी को [[लिनक्स]] में पोर्ट किया गया था; इसके कुछ मुख्य एल्गोरिदम रीराइट (प्रोग्रामिंग) थे, और सभी विंडोज़-विशिष्ट कोड हटा दिए गए थे। न्यूएलआईएसपी को जीएनयू जनरल पब्लिक लाइसेंस के अनुसार लाइसेंस प्राप्त एक [[ खुला स्रोत सॉफ्टवेयर |खुला स्रोत सॉफ्टवेयर]] प्रोजेक्ट के रूप में जारी किया गया था, और संस्करण 6.0.25 के बाद विंडोज़ पर विकास बंद हो गया था। 2001 की पहली छमाही के समय, न्यूएलआईएसपी को ग्राफिक्स क्षमताओं के बिना [[cygwin|सिगविन]] प्लेटफॉर्म पर विंडोज़ में वापस पोर्ट किया गया था। 2001 की दूसरी छमाही में, न्यूएलआईएसपी-टीके नामक क्रॉस-प्लेटफ़ॉर्म टीसीएल/टीके (सॉफ़्टवेयर) फ्रंटएंड संस्करण 6.3.0 के आसपास जारी किया गया था। 2006 में, पूर्णांक अंकगणित और संस्करण 9.0 में फ़ाइलों पर कुछ संचालन के लिए [[64-बिट]] परिशुद्धता प्रस्तुत की गई थी। | ||
2002 के मध्य में 6.5 के रिलीज़ होने के बाद से, विकास बहुत सक्रिय रहा है, और कई नई सुविधाएँ जोड़ी गई हैं।<ref>{{cite web |url=https://github.com/kosh04/newlisp |title=kosh04/newlisp |last=Kobayashi |first=Shigeru |website=GitHub |access-date=2018-11-20}}</ref> | 2002 के मध्य में 6.5 के रिलीज़ होने के बाद से, विकास बहुत सक्रिय रहा है, और कई नई सुविधाएँ जोड़ी गई हैं।<ref>{{cite web |url=https://github.com/kosh04/newlisp |title=kosh04/newlisp |last=Kobayashi |first=Shigeru |website=GitHub |access-date=2018-11-20}}</ref> | ||
Line 41: | Line 41: | ||
==दर्शन == | ==दर्शन == | ||
न्यूएलआईएसपी केवल [[कंप्यूटर डेटा भंडारण|कंप्यूटर डेटा स्टोरेज]] (उदाहरण के लिए, डिस्क स्पेस) और [[ स्मृति | मेमोरी]] जैसे मामूली सिस्टम संसाधनों का उपयोग करते हुए लिस्प भाषा का तेज़, शक्तिशाली, [[क्रॉस-प्लेटफॉर्म]], पूर्ण-विशेषताओं वाला स्क्रिप्टिंग संस्करण प्रदान करने का प्रयास करता है।<ref>{{cite web |url=http://rosettacode.org/wiki/Category:NewLISP |title=Category:newLISP |website=Rosetta Code |access-date=2018-11-20}}</ref><ref>{{cite web |url=http://www.osnews.com/story/20728/A_Look_at_newLISP |title=न्यूएलआईएसपी पर एक नजर|last=Lazar |first=Alexandru |date=5 January 2009 |work=OSNews |access-date=2018-11-20}}</ref> | न्यूएलआईएसपी केवल [[कंप्यूटर डेटा भंडारण|कंप्यूटर डेटा स्टोरेज]] (उदाहरण के लिए, डिस्क स्पेस) और [[ स्मृति |मेमोरी]] जैसे मामूली सिस्टम संसाधनों का उपयोग करते हुए लिस्प भाषा का तेज़, शक्तिशाली, [[क्रॉस-प्लेटफॉर्म]], पूर्ण-विशेषताओं वाला स्क्रिप्टिंग संस्करण प्रदान करने का प्रयास करता है।<ref>{{cite web |url=http://rosettacode.org/wiki/Category:NewLISP |title=Category:newLISP |website=Rosetta Code |access-date=2018-11-20}}</ref><ref>{{cite web |url=http://www.osnews.com/story/20728/A_Look_at_newLISP |title=न्यूएलआईएसपी पर एक नजर|last=Lazar |first=Alexandru |date=5 January 2009 |work=OSNews |access-date=2018-11-20}}</ref> | ||
यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), [[ एस-अभिव्यक्ति | एस-अभिव्यक्ति]] (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें [[नियमित अभिव्यक्ति]],एक्सएमएल, यूनिकोड ([[UTF-8|यूटीएफ-8]]), [[ प्रसारण नियंत्रण प्रोटोकॉल | प्रसारण नियंत्रण प्रोटोकॉल]] (टीसीपी), [[इंटरनेट प्रोटोकॉल]] (आईपी), और उपयोगकर्ता [[डेटाग्राम प्रोटेकॉलका उपयोग करें]] यूडीपी), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना सम्मिलित है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और [[बायेसियन अनुमान]] सांख्यिकीय विश्लेषण, [[गणितीय वित्त]] और वितरित कंप्यूटिंग का उपयोग किया जाता है। | यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), [[ एस-अभिव्यक्ति |एस-अभिव्यक्ति]] (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें [[नियमित अभिव्यक्ति]],एक्सएमएल, यूनिकोड ([[UTF-8|यूटीएफ-8]]), [[ प्रसारण नियंत्रण प्रोटोकॉल |प्रसारण नियंत्रण प्रोटोकॉल]] (टीसीपी), [[इंटरनेट प्रोटोकॉल]] (आईपी), और उपयोगकर्ता [[डेटाग्राम प्रोटेकॉलका उपयोग करें]] यूडीपी), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना सम्मिलित है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और [[बायेसियन अनुमान]] सांख्यिकीय विश्लेषण, [[गणितीय वित्त]] और वितरित कंप्यूटिंग का उपयोग किया जाता है। | ||
न्यूएलआईएसपी [[ऑपरेटिंग सिस्टम]] [[ बर्कले सॉफ्टवेयर वितरण | बर्कले सॉफ्टवेयर वितरण]] (बीएसडी), लिनक्स, मैकओएस, [[सोलारिस (ऑपरेटिंग सिस्टम)]] और [[ माइक्रोसॉफ़्ट विंडोज़ | माइक्रोसॉफ़्ट विंडोज़]] पर चलता है।<ref name="Home" /> यह [[MYSQL|मायएसक्यूएल]], [[SQLite|एसक्यूलाइट]] और [[ODBC|ओडीबीसी]] डेटाबेस एक्सेस, [[ कॉमन गेटवे इंटरफ़ेस | कॉमन गेटवे इंटरफ़ेस]] (सीजीआई), [[ सरल डाक स्थानांतरण प्रोटोकॉल | सरल डाक स्थानांतरण प्रोटोकॉल]] (एसएमटीपी), [[ डाकघर प्रोटोकॉल | डाकघर प्रोटोकॉल]] (पीओपी) 3, [[फाइल ट्रांसफर प्रोटोकॉल]] (एफ़टीपी) और एक्सएमएल [[ सुदूर प्रणाली संदेश | दूरस्थ सिस्टम संदेश]] ([[XML-RPC|एक्सएमएल-आरपीसी]]) को सपोर्ट करता है। यह सर्वर मोड में [[डेमॉन (कंप्यूटिंग)]] के रूप में चल सकता है। | न्यूएलआईएसपी [[ऑपरेटिंग सिस्टम]] [[ बर्कले सॉफ्टवेयर वितरण |बर्कले सॉफ्टवेयर वितरण]] (बीएसडी), लिनक्स, मैकओएस, [[सोलारिस (ऑपरेटिंग सिस्टम)]] और [[ माइक्रोसॉफ़्ट विंडोज़ |माइक्रोसॉफ़्ट विंडोज़]] पर चलता है।<ref name="Home" /> यह [[MYSQL|मायएसक्यूएल]], [[SQLite|एसक्यूलाइट]] और [[ODBC|ओडीबीसी]] डेटाबेस एक्सेस, [[ कॉमन गेटवे इंटरफ़ेस |कॉमन गेटवे इंटरफ़ेस]] (सीजीआई), [[ सरल डाक स्थानांतरण प्रोटोकॉल |सरल डाक स्थानांतरण प्रोटोकॉल]] (एसएमटीपी), [[ डाकघर प्रोटोकॉल |डाकघर प्रोटोकॉल]] (पीओपी) 3, [[फाइल ट्रांसफर प्रोटोकॉल]] (एफ़टीपी) और एक्सएमएल [[ सुदूर प्रणाली संदेश |दूरस्थ सिस्टम संदेश]] ([[XML-RPC|एक्सएमएल-आरपीसी]]) को सपोर्ट करता है। यह सर्वर मोड में [[डेमॉन (कंप्यूटिंग)]] के रूप में चल सकता है। | ||
==भाषा विशेषताएँ == | ==भाषा विशेषताएँ == | ||
===संदर्भ=== | ===संदर्भ=== | ||
न्यूएलआईएसपी [[नेमस्पेस (प्रोग्रामिंग)]] कहे जाने वाले संदर्भों का समर्थन करता है, जिन्हें वेरिएबल (कंप्यूटर विज्ञान) को दिया जा सकता है और [[सबरूटीन]] को पास किया जा सकता है, किन्तु जो विश्व स्तर पर अद्वितीय प्रतीकों से जुड़े होते हैं, प्रथम श्रेणी के नागरिकों (ऑब्जेक्ट्स) के रूप में उनके उपयोग को सीमित करते हैं। [[प्रोटोटाइप-आधारित प्रोग्रामिंग]]|प्रोटोटाइप-आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]]की शैली न्यूएलआईएसपी में संभव है, ऑब्जेक्ट (कंप्यूटर विज्ञान) के निर्माण के लिए प्रोटोटाइप के रूप में संदर्भों का उपयोग किया जाता है। संदर्भों के अंदर चर अन्य संदर्भों में समान नाम के चर के साथ हस्तक्षेप नहीं करते हैं, किन्तु संदर्भ के अंदर, चर गतिशील [[स्कोप (कंप्यूटर विज्ञान)]] के नियमों के अनुसार व्यवहार करते हैं। | न्यूएलआईएसपी [[नेमस्पेस (प्रोग्रामिंग)]] कहे जाने वाले संदर्भों का समर्थन करता है, जिन्हें वेरिएबल (कंप्यूटर विज्ञान) को दिया जा सकता है और [[सबरूटीन]] को पास किया जा सकता है, किन्तु जो विश्व स्तर पर अद्वितीय प्रतीकों से जुड़े होते हैं, प्रथम श्रेणी के नागरिकों (ऑब्जेक्ट्स) के रूप में उनके उपयोग को सीमित करते हैं। [[प्रोटोटाइप-आधारित प्रोग्रामिंग]]|प्रोटोटाइप-आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग |ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग]] की शैली न्यूएलआईएसपी में संभव है, ऑब्जेक्ट (कंप्यूटर विज्ञान) के निर्माण के लिए प्रोटोटाइप के रूप में संदर्भों का उपयोग किया जाता है। संदर्भों के अंदर चर अन्य संदर्भों में समान नाम के चर के साथ हस्तक्षेप नहीं करते हैं, किन्तु संदर्भ के अंदर, चर गतिशील [[स्कोप (कंप्यूटर विज्ञान)]] के नियमों के अनुसार व्यवहार करते हैं। | ||
===स्कोपिंग=== | ===स्कोपिंग=== | ||
न्यूएलआईएसपी डायनेमिक स्कोप (कंप्यूटर साइंस) का उपयोग करता है। जब किसी फ़ंक्शन को कॉल किया जाता है, जिससे वह फ़ंक्शन अपने कॉलर, उसके कॉलर के कॉलर इत्यादि के सभी वेरिएबल्स को ही संदर्भ या [[ नाम स्थान ]] के अन्दर देख सकता है। यह स्पष्ट रूप से और अंतर्निहित रूप से परिभाषित स्थानीय गतिशील चर दोनों का समर्थन करता है जो बाहरी वातावरण से समान नाम वाले चर को छाया देता है, इस प्रकार कॉलर वातावरण से चर के आकस्मिक उपयोग या परिवर्तन को रोकता है। कॉल किए गए फ़ंक्शन के मापदंड वैरिएबल स्वचालित रूप से कॉल करने वाले के वैरिएबल वातावरण को छाया देते हैं। वैश्विक स्तर पर, वेरिएबल्स को अलग-अलग नामस्थानों में समूहीकृत किया जा सकता है। | न्यूएलआईएसपी डायनेमिक स्कोप (कंप्यूटर साइंस) का उपयोग करता है। जब किसी फ़ंक्शन को कॉल किया जाता है, जिससे वह फ़ंक्शन अपने कॉलर, उसके कॉलर के कॉलर इत्यादि के सभी वेरिएबल्स को ही संदर्भ या [[ नाम स्थान |नाम स्थान]] के अन्दर देख सकता है। यह स्पष्ट रूप से और अंतर्निहित रूप से परिभाषित स्थानीय गतिशील चर दोनों का समर्थन करता है जो बाहरी वातावरण से समान नाम वाले चर को छाया देता है, इस प्रकार कॉलर वातावरण से चर के आकस्मिक उपयोग या परिवर्तन को रोकता है। कॉल किए गए फ़ंक्शन के मापदंड वैरिएबल स्वचालित रूप से कॉल करने वाले के वैरिएबल वातावरण को छाया देते हैं। वैश्विक स्तर पर, वेरिएबल्स को अलग-अलग नामस्थानों में समूहीकृत किया जा सकता है। | ||
===[[स्मृति प्रबंधन|मेमोरी प्रबंधन]]=== | ===[[स्मृति प्रबंधन|मेमोरी प्रबंधन]]=== | ||
न्यूएलआईएसपी पारंपरिक कचरा संग्रह (कंप्यूटर विज्ञान) योजनाओं से अलग स्वचालित मेमोरी प्रबंधन की विधि का उपयोग करता है, जिसे केवल संदर्भ (ओआरओ) मेमोरी प्रबंधन कहा जाता है। प्रत्येक चर को केवल उसके संदर्भ द्वारा संदर्भित किया जाता है, और प्रत्येक संदर्भ को विश्व स्तर पर संदर्भित किया जाता है। | न्यूएलआईएसपी पारंपरिक कचरा संग्रह (कंप्यूटर विज्ञान) योजनाओं से अलग स्वचालित मेमोरी प्रबंधन की विधि का उपयोग करता है, जिसे केवल संदर्भ (ओआरओ) मेमोरी प्रबंधन कहा जाता है। प्रत्येक चर को केवल उसके संदर्भ द्वारा संदर्भित किया जाता है, और प्रत्येक संदर्भ को विश्व स्तर पर संदर्भित किया जाता है। | ||
ऑब्जेक्ट (कंप्यूटर विज्ञान), चक्रीय संरचनाओं, या ही ऑब्जेक्ट की ओर इशारा करने वाले कई चर के बीच उप-वस्तुओं को साझा करना न्यूएलआईएसपी में समर्थित नहीं है। कुछ अंतर्निहित कार्यों को छोड़कर, डेटा संरचनाओं में संग्रहीत होने या फ़ंक्शंस में पास होने पर ऑब्जेक्ट की प्रतिलिपि बनाई जाती है। अपवाद प्रतीक और संदर्भ हैं, जिन्हें कॉपी करने के अतिरिक्त साझा किया जाता है, और इस प्रकार अप्रत्यक्ष रूप से उपयोग किया जा सकता है। प्रतीकों और संदर्भों को विश्व स्तर पर नाम दिया गया है और स्पष्ट रूप से हटा दिया गया है; किसी प्रतीक या संदर्भ को हटाने से उसके संदर्भों को <code>nil</code> | ऑब्जेक्ट (कंप्यूटर विज्ञान), चक्रीय संरचनाओं, या ही ऑब्जेक्ट की ओर इशारा करने वाले कई चर के बीच उप-वस्तुओं को साझा करना न्यूएलआईएसपी में समर्थित नहीं है। कुछ अंतर्निहित कार्यों को छोड़कर, डेटा संरचनाओं में संग्रहीत होने या फ़ंक्शंस में पास होने पर ऑब्जेक्ट की प्रतिलिपि बनाई जाती है। अपवाद प्रतीक और संदर्भ हैं, जिन्हें कॉपी करने के अतिरिक्त साझा किया जाता है, और इस प्रकार अप्रत्यक्ष रूप से उपयोग किया जा सकता है। प्रतीकों और संदर्भों को विश्व स्तर पर नाम दिया गया है और स्पष्ट रूप से हटा दिया गया है; किसी प्रतीक या संदर्भ को हटाने से उसके संदर्भों को <code>nil</code> से प्रतिस्थापित करने के लिए अन्य सभी ऑब्जेक्ट स्कैन हो जाते हैं . | ||
===जीयूआई विकल्प=== | ===जीयूआई विकल्प=== | ||
न्यूएलआईएसपी ग्राफिकल यूजर इंटरफेस (जीयूआई) सर्वर (न्यूएलआईएसपी-जीएस) [[जावा (प्रोग्रामिंग भाषा)]]-आधारित [[ इंटरनेट प्रोटोकॉल सुइट ]] (टीसीपी/आईपी) सर्वर है जो ग्राफिकल प्रोग्रामिंग इंटरफेस प्रदान करता है। न्यूएलआईएसपी बाइनरी वितरण में नयाएलआईएसपी-जीएस आधारित विकास वातावरण सम्मिलित है, और [[जीटीके-सर्वर]], [[ओपन]]जीएल, और टीसीएल/टीके (सॉफ्टवेयर)-आधारित प्रोग्रामिंग इंटरफेस उपलब्ध हैं। | न्यूएलआईएसपी ग्राफिकल यूजर इंटरफेस (जीयूआई) सर्वर (न्यूएलआईएसपी-जीएस) [[जावा (प्रोग्रामिंग भाषा)]]-आधारित [[ इंटरनेट प्रोटोकॉल सुइट |इंटरनेट प्रोटोकॉल सुइट]] (टीसीपी/आईपी) सर्वर है जो ग्राफिकल प्रोग्रामिंग इंटरफेस प्रदान करता है। न्यूएलआईएसपी बाइनरी वितरण में नयाएलआईएसपी-जीएस आधारित विकास वातावरण सम्मिलित है, और [[जीटीके-सर्वर]], [[ओपन]]जीएल, और टीसीएल/टीके (सॉफ्टवेयर)-आधारित प्रोग्रामिंग इंटरफेस उपलब्ध हैं। | ||
===स्टैंडअलोन बायनेरिज़=== | ===स्टैंडअलोन बायनेरिज़=== | ||
Line 66: | Line 66: | ||
===[[साझा पुस्तकालय|साझा लाइब्रेरी]] के साथ सहभागिता=== | ===[[साझा पुस्तकालय|साझा लाइब्रेरी]] के साथ सहभागिता=== | ||
न्यूएलआईएसपी में आयात फ़ंक्शन है, जो [[ विंडोज़ एपीआई ]] विन32 पर [[डायनामिक-लिंक लाइब्रेरी]] (डीएलएल) से या लिनक्स या [[यूनिक्स]] पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है। | न्यूएलआईएसपी में आयात फ़ंक्शन है, जो [[ विंडोज़ एपीआई |विंडोज़ एपीआई]] विन32 पर [[डायनामिक-लिंक लाइब्रेरी]] (डीएलएल) से या लिनक्स या [[यूनिक्स]] पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है। | ||
==फ़्रेमवर्क == | ==फ़्रेमवर्क == | ||
न्यूएलआईएसपी के लिए उपलब्ध [[ वेब ढाँचा | वेब फ्रेमवर्क]] में ड्रैगनफ्लाई <ref>{{cite web |url=http://dragonfly.apptruck.de/ |title=ड्रैगनफ्लाई वेब ढांचा|last1=Slepak |first1=Greg |last2=Hildmann |first2=Marc |website=AppTruck |access-date=2018-11-20}}</ref> और रॉकेट्स सम्मिलित हैं।<ref>{{cite web |url=http://newlisponrockets.com/ |title=The newLISP on Rockets 2.0 Blog |last=Reimer |first=Jeremy |website=Rocket Man |access-date=2018-11-20}}</ref> | न्यूएलआईएसपी के लिए उपलब्ध [[ वेब ढाँचा |वेब फ्रेमवर्क]] में ड्रैगनफ्लाई <ref>{{cite web |url=http://dragonfly.apptruck.de/ |title=ड्रैगनफ्लाई वेब ढांचा|last1=Slepak |first1=Greg |last2=Hildmann |first2=Marc |website=AppTruck |access-date=2018-11-20}}</ref> और रॉकेट्स सम्मिलित हैं।<ref>{{cite web |url=http://newlisponrockets.com/ |title=The newLISP on Rockets 2.0 Blog |last=Reimer |first=Jeremy |website=Rocket Man |access-date=2018-11-20}}</ref> | ||
==संदर्भ == | ==संदर्भ == | ||
{{Reflist}} | {{Reflist}} | ||
==बाहरी संबंध== | ==बाहरी संबंध== |
Revision as of 17:01, 1 July 2023
File:Nl logo libel side color 240X100.png | |
Paradigm | बहु-प्रतिमान |
---|---|
परिवार | लिस्प |
द्वारा डिज़ाइन किया गया | लुत्ज़ म्यूएलर |
Developer | लुत्ज़ म्यूएलर |
पहली प्रस्तुति | 1991 |
Stable release | 10.7.5
/ May 12, 2019[1] |
Preview release | 10.7.4
/ September 10, 2018[1] |
स्कोप | Dynamic |
प्लेटफॉर्म | IA-32, x86-64 |
ओएस | क्रॉस-प्लेटफ़ॉर्म: यूनिक्स, यूनिक्स जैसा, विंडोज़ |
लाइसेंस | जीपीएलवी3+ |
वेबसाइट | www |
Influenced by | |
सी, कॉमन लिस्प, पर्ल, स्कीम |
न्यूएलआईएसपी स्क्रिप्टिंग भाषा है जो प्रोग्रामिंग भाषाओं के लिस्प (प्रोग्रामिंग भाषा) वर्ग की बोली (कंप्यूटिंग) है। इसे लुत्ज़ म्यूएलर द्वारा डिजाइन और विकसित किया गया था।[2] न्यूएलआईएसपी जीएनयू जनरल पब्लिक लाइसेंस, संस्करण 3 या बाद के संस्करण केअनुसार जारी किया गया मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर है।
इतिहास
न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, सामान्य लिस्प और स्कीम (प्रोग्रामिंग भाषा), और पास्कल (प्रोग्रामिंग भाषा) और सी (प्रोग्रामिंग भाषा) जैसी अन्य भाषाओं से प्रभावित है। न्यूएलआईएसपी की शुरुआत 1991 में हुई थी और इसे मूल रूप से सन-4 वर्कस्टेशन पर विकसित किया गया था।[3] इसके पश्चात् इसे विंडोज़ 3.0 में स्थानांतरित कर दिया गया था, जहां 1993 के आसपास कॉम्प्युसर्व पर संस्करण 1.3 जारी किया गया था, फिर विंडोज़ ग्राफिकल यूज़र इंटरफ़ेस (जीयूआई) ग्राफिक्स-सक्षम एप्लिकेशन और डॉस सांत्वना आवेदन (दोनों 16-बिट) के रूप में उपलब्ध हो गया था। इस प्रकार 1995 में, विंडोज़ 95 की रिलीज़ के साथ, न्यूएलआईएसपी 32-बिट में स्थानांतरित हो गया था।
अप्रैल 1999 में, न्यूएलआईएसपी को लिनक्स में पोर्ट किया गया था; इसके कुछ मुख्य एल्गोरिदम रीराइट (प्रोग्रामिंग) थे, और सभी विंडोज़-विशिष्ट कोड हटा दिए गए थे। न्यूएलआईएसपी को जीएनयू जनरल पब्लिक लाइसेंस के अनुसार लाइसेंस प्राप्त एक खुला स्रोत सॉफ्टवेयर प्रोजेक्ट के रूप में जारी किया गया था, और संस्करण 6.0.25 के बाद विंडोज़ पर विकास बंद हो गया था। 2001 की पहली छमाही के समय, न्यूएलआईएसपी को ग्राफिक्स क्षमताओं के बिना सिगविन प्लेटफॉर्म पर विंडोज़ में वापस पोर्ट किया गया था। 2001 की दूसरी छमाही में, न्यूएलआईएसपी-टीके नामक क्रॉस-प्लेटफ़ॉर्म टीसीएल/टीके (सॉफ़्टवेयर) फ्रंटएंड संस्करण 6.3.0 के आसपास जारी किया गया था। 2006 में, पूर्णांक अंकगणित और संस्करण 9.0 में फ़ाइलों पर कुछ संचालन के लिए 64-बिट परिशुद्धता प्रस्तुत की गई थी।
2002 के मध्य में 6.5 के रिलीज़ होने के बाद से, विकास बहुत सक्रिय रहा है, और कई नई सुविधाएँ जोड़ी गई हैं।[4]
1955 | 1960 | 1965 | 1970 | 1975 | 1980 | 1985 | 1990 | 1995 | 2000 | 2005 | 2010 | 2015 | 2020 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
LISP 1, 1.5, LISP 2(abandoned) | ||||||||||||||
Maclisp | ||||||||||||||
Interlisp | ||||||||||||||
MDL | ||||||||||||||
Lisp Machine Lisp | ||||||||||||||
Scheme | R5RS | R6RS | R7RS small | |||||||||||
NIL | ||||||||||||||
ZIL (Zork Implementation Language) | ||||||||||||||
Franz Lisp | ||||||||||||||
Common Lisp | ANSI standard | |||||||||||||
Le Lisp | ||||||||||||||
MIT Scheme | ||||||||||||||
T | ||||||||||||||
Chez Scheme | ||||||||||||||
Emacs Lisp | ||||||||||||||
AutoLISP | ||||||||||||||
PicoLisp | ||||||||||||||
Gambit | ||||||||||||||
EuLisp | ||||||||||||||
ISLISP | ||||||||||||||
OpenLisp | ||||||||||||||
PLT Scheme | Racket | |||||||||||||
GNU Guile | ||||||||||||||
Visual LISP | ||||||||||||||
Clojure | ||||||||||||||
Arc | ||||||||||||||
LFE | ||||||||||||||
Hy |
दर्शन
न्यूएलआईएसपी केवल कंप्यूटर डेटा स्टोरेज (उदाहरण के लिए, डिस्क स्पेस) और मेमोरी जैसे मामूली सिस्टम संसाधनों का उपयोग करते हुए लिस्प भाषा का तेज़, शक्तिशाली, क्रॉस-प्लेटफॉर्म, पूर्ण-विशेषताओं वाला स्क्रिप्टिंग संस्करण प्रदान करने का प्रयास करता है।[5][6]
यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), एस-अभिव्यक्ति (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें नियमित अभिव्यक्ति,एक्सएमएल, यूनिकोड (यूटीएफ-8), प्रसारण नियंत्रण प्रोटोकॉल (टीसीपी), इंटरनेट प्रोटोकॉल (आईपी), और उपयोगकर्ता डेटाग्राम प्रोटेकॉलका उपयोग करें यूडीपी), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना सम्मिलित है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और बायेसियन अनुमान सांख्यिकीय विश्लेषण, गणितीय वित्त और वितरित कंप्यूटिंग का उपयोग किया जाता है।
न्यूएलआईएसपी ऑपरेटिंग सिस्टम बर्कले सॉफ्टवेयर वितरण (बीएसडी), लिनक्स, मैकओएस, सोलारिस (ऑपरेटिंग सिस्टम) और माइक्रोसॉफ़्ट विंडोज़ पर चलता है।[1] यह मायएसक्यूएल, एसक्यूलाइट और ओडीबीसी डेटाबेस एक्सेस, कॉमन गेटवे इंटरफ़ेस (सीजीआई), सरल डाक स्थानांतरण प्रोटोकॉल (एसएमटीपी), डाकघर प्रोटोकॉल (पीओपी) 3, फाइल ट्रांसफर प्रोटोकॉल (एफ़टीपी) और एक्सएमएल दूरस्थ सिस्टम संदेश (एक्सएमएल-आरपीसी) को सपोर्ट करता है। यह सर्वर मोड में डेमॉन (कंप्यूटिंग) के रूप में चल सकता है।
भाषा विशेषताएँ
संदर्भ
न्यूएलआईएसपी नेमस्पेस (प्रोग्रामिंग) कहे जाने वाले संदर्भों का समर्थन करता है, जिन्हें वेरिएबल (कंप्यूटर विज्ञान) को दिया जा सकता है और सबरूटीन को पास किया जा सकता है, किन्तु जो विश्व स्तर पर अद्वितीय प्रतीकों से जुड़े होते हैं, प्रथम श्रेणी के नागरिकों (ऑब्जेक्ट्स) के रूप में उनके उपयोग को सीमित करते हैं। प्रोटोटाइप-आधारित प्रोग्रामिंग|प्रोटोटाइप-आधारित ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग की शैली न्यूएलआईएसपी में संभव है, ऑब्जेक्ट (कंप्यूटर विज्ञान) के निर्माण के लिए प्रोटोटाइप के रूप में संदर्भों का उपयोग किया जाता है। संदर्भों के अंदर चर अन्य संदर्भों में समान नाम के चर के साथ हस्तक्षेप नहीं करते हैं, किन्तु संदर्भ के अंदर, चर गतिशील स्कोप (कंप्यूटर विज्ञान) के नियमों के अनुसार व्यवहार करते हैं।
स्कोपिंग
न्यूएलआईएसपी डायनेमिक स्कोप (कंप्यूटर साइंस) का उपयोग करता है। जब किसी फ़ंक्शन को कॉल किया जाता है, जिससे वह फ़ंक्शन अपने कॉलर, उसके कॉलर के कॉलर इत्यादि के सभी वेरिएबल्स को ही संदर्भ या नाम स्थान के अन्दर देख सकता है। यह स्पष्ट रूप से और अंतर्निहित रूप से परिभाषित स्थानीय गतिशील चर दोनों का समर्थन करता है जो बाहरी वातावरण से समान नाम वाले चर को छाया देता है, इस प्रकार कॉलर वातावरण से चर के आकस्मिक उपयोग या परिवर्तन को रोकता है। कॉल किए गए फ़ंक्शन के मापदंड वैरिएबल स्वचालित रूप से कॉल करने वाले के वैरिएबल वातावरण को छाया देते हैं। वैश्विक स्तर पर, वेरिएबल्स को अलग-अलग नामस्थानों में समूहीकृत किया जा सकता है।
मेमोरी प्रबंधन
न्यूएलआईएसपी पारंपरिक कचरा संग्रह (कंप्यूटर विज्ञान) योजनाओं से अलग स्वचालित मेमोरी प्रबंधन की विधि का उपयोग करता है, जिसे केवल संदर्भ (ओआरओ) मेमोरी प्रबंधन कहा जाता है। प्रत्येक चर को केवल उसके संदर्भ द्वारा संदर्भित किया जाता है, और प्रत्येक संदर्भ को विश्व स्तर पर संदर्भित किया जाता है।
ऑब्जेक्ट (कंप्यूटर विज्ञान), चक्रीय संरचनाओं, या ही ऑब्जेक्ट की ओर इशारा करने वाले कई चर के बीच उप-वस्तुओं को साझा करना न्यूएलआईएसपी में समर्थित नहीं है। कुछ अंतर्निहित कार्यों को छोड़कर, डेटा संरचनाओं में संग्रहीत होने या फ़ंक्शंस में पास होने पर ऑब्जेक्ट की प्रतिलिपि बनाई जाती है। अपवाद प्रतीक और संदर्भ हैं, जिन्हें कॉपी करने के अतिरिक्त साझा किया जाता है, और इस प्रकार अप्रत्यक्ष रूप से उपयोग किया जा सकता है। प्रतीकों और संदर्भों को विश्व स्तर पर नाम दिया गया है और स्पष्ट रूप से हटा दिया गया है; किसी प्रतीक या संदर्भ को हटाने से उसके संदर्भों को nil
से प्रतिस्थापित करने के लिए अन्य सभी ऑब्जेक्ट स्कैन हो जाते हैं .
जीयूआई विकल्प
न्यूएलआईएसपी ग्राफिकल यूजर इंटरफेस (जीयूआई) सर्वर (न्यूएलआईएसपी-जीएस) जावा (प्रोग्रामिंग भाषा)-आधारित इंटरनेट प्रोटोकॉल सुइट (टीसीपी/आईपी) सर्वर है जो ग्राफिकल प्रोग्रामिंग इंटरफेस प्रदान करता है। न्यूएलआईएसपी बाइनरी वितरण में नयाएलआईएसपी-जीएस आधारित विकास वातावरण सम्मिलित है, और जीटीके-सर्वर, ओपनजीएल, और टीसीएल/टीके (सॉफ्टवेयर)-आधारित प्रोग्रामिंग इंटरफेस उपलब्ध हैं।
स्टैंडअलोन बायनेरिज़
कोई भी नया लिस्प संस्करण तैनाती के लिए निष्पादन योग्य फ़ाइलें, पोर्टेबल अनुप्रयोग बनाने की अनुमति देता है, जो स्व-निहित हैं और उन्हें इंस्टॉल करने की आवश्यकता नहीं है।
साझा लाइब्रेरी के साथ सहभागिता
न्यूएलआईएसपी में आयात फ़ंक्शन है, जो विंडोज़ एपीआई विन32 पर डायनामिक-लिंक लाइब्रेरी (डीएलएल) से या लिनक्स या यूनिक्स पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है।
फ़्रेमवर्क
न्यूएलआईएसपी के लिए उपलब्ध वेब फ्रेमवर्क में ड्रैगनफ्लाई [7] और रॉकेट्स सम्मिलित हैं।[8]
संदर्भ
- ↑ 1.0 1.1 1.2 "newLISP". Retrieved 2018-11-20.
- ↑ Walling, Rob. "न्यूएलआईएसपी के निर्माता लुत्ज़ मुलर के साथ एक साक्षात्कार". Softwarebyrob.com. Archived from the original on 2007-10-31. Retrieved 2018-11-20.
- ↑ Mueller, Lutz. "newLISP – a LISP Scripting Language". don Lucio. Retrieved 2018-11-20.
- ↑ Kobayashi, Shigeru. "kosh04/newlisp". GitHub. Retrieved 2018-11-20.
- ↑ "Category:newLISP". Rosetta Code. Retrieved 2018-11-20.
- ↑ Lazar, Alexandru (5 January 2009). "न्यूएलआईएसपी पर एक नजर". OSNews. Retrieved 2018-11-20.
- ↑ Slepak, Greg; Hildmann, Marc. "ड्रैगनफ्लाई वेब ढांचा". AppTruck. Retrieved 2018-11-20.
- ↑ Reimer, Jeremy. "The newLISP on Rockets 2.0 Blog". Rocket Man. Retrieved 2018-11-20.