न्यूएलआईएसपी: Difference between revisions

From Vigyanwiki
(Created page with "{{more citations needed|date=March 2013}} {{lowercase}} {{Infobox programming language |name = newLISP |logo = Nl logo libel side color 240X100.png |logo caption = The newLIS...")
 
No edit summary
Line 1: Line 1:
{{more citations needed|date=March 2013}}
{{lowercase}}
{{Infobox programming language
{{Infobox programming language
|name = newLISP
|name = newLISP
Line 32: Line 29:
}}
}}


न्यूएलआईएसपी एक स्क्रिप्टिंग भाषा है जो [[प्रोग्रामिंग भाषा]]ओं के [[लिस्प (प्रोग्रामिंग भाषा)]] परिवार की एक [[बोली (कंप्यूटिंग)]] है। इसे लुत्ज़ म्यूएलर द्वारा डिजाइन और विकसित किया गया था।<ref name="Interview">{{cite news |last=Walling |first=Rob |url=http://www.softwarebyrob.com/2007/04/19/interview-with-lutz-mueller-creator-of-newlisp/ |title=न्यूएलआईएसपी के निर्माता लुत्ज़ मुलर के साथ एक साक्षात्कार|work=Softwarebyrob.com |archive-url=https://web.archive.org/web/20071031095259/http://www.softwarebyrob.com/2007/04/19/interview-with-lutz-mueller-creator-of-newlisp/ |access-date=2018-11-20|archive-date=2007-10-31 }}</ref> न्यूएलआईएसपी [[जीएनयू जनरल पब्लिक लाइसेंस]], संस्करण 3 या बाद के संस्करण के तहत जारी किया गया [[मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर]] है।
न्यूएलआईएसपी स्क्रिप्टिंग भाषा है जो [[प्रोग्रामिंग भाषा]]ओं के [[लिस्प (प्रोग्रामिंग भाषा)]] परिवार की [[बोली (कंप्यूटिंग)]] है। इसे लुत्ज़ म्यूएलर द्वारा डिजाइन और विकसित किया गया था।<ref name="Interview">{{cite news |last=Walling |first=Rob |url=http://www.softwarebyrob.com/2007/04/19/interview-with-lutz-mueller-creator-of-newlisp/ |title=न्यूएलआईएसपी के निर्माता लुत्ज़ मुलर के साथ एक साक्षात्कार|work=Softwarebyrob.com |archive-url=https://web.archive.org/web/20071031095259/http://www.softwarebyrob.com/2007/04/19/interview-with-lutz-mueller-creator-of-newlisp/ |access-date=2018-11-20|archive-date=2007-10-31 }}</ref> न्यूएलआईएसपी [[जीएनयू जनरल पब्लिक लाइसेंस]], संस्करण 3 या बाद के संस्करण के तहत जारी किया गया [[मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर]] है।


==इतिहास==
==इतिहास==
न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, [[ सामान्य लिस्प ]] और स्कीम (प्रोग्रामिंग भाषा), और [[पास्कल (प्रोग्रामिंग भाषा)]] और [[सी (प्रोग्रामिंग भाषा)]] जैसी अन्य भाषाओं से प्रभावित है।{{citation needed|date=October 2013}} न्यूएलआईएसपी की शुरुआत 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-बिट]] में स्थानांतरित हो गया।
न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, [[ सामान्य लिस्प ]] और स्कीम (प्रोग्रामिंग भाषा), और [[पास्कल (प्रोग्रामिंग भाषा)]] और [[सी (प्रोग्रामिंग भाषा)]] जैसी अन्य भाषाओं से प्रभावित है।{{citation needed|date=October 2013}} न्यूएलआईएसपी की शुरुआत 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 की दूसरी छमाही में, newLISP-tk नामक एक क्रॉस-प्लेटफ़ॉर्म [[Tcl]]/Tk (सॉफ़्टवेयर) फ्रंटएंड संस्करण 6.3.0 के आसपास जारी किया गया था। 2006 में, पूर्णांक अंकगणित और संस्करण 9.0 में फ़ाइलों पर कुछ संचालन के लिए [[64-बिट]] परिशुद्धता पेश की गई थी।
अप्रैल 1999 में, न्यूएलआईएसपी को [[लिनक्स]] में पोर्ट किया गया था; इसके कुछ मुख्य एल्गोरिदम रीराइट (प्रोग्रामिंग) थे, और सभी विंडोज़-विशिष्ट कोड हटा दिए गए थे। न्यूएलआईएसपी को जीएनयू जनरल पब्लिक लाइसेंस के तहत लाइसेंस प्राप्त एक [[ खुला स्रोत सॉफ्टवेयर ]] प्रोजेक्ट के रूप में जारी किया गया था, और संस्करण 6.0.25 के बाद विंडोज़ पर विकास बंद हो गया। 2001 की पहली छमाही के दौरान, न्यूएलआईएसपी को ग्राफिक्स क्षमताओं के बिना [[cygwin]] प्लेटफॉर्म पर विंडोज़ में वापस पोर्ट किया गया था। 2001 की दूसरी छमाही में, newLISP-tk नामक क्रॉस-प्लेटफ़ॉर्म [[Tcl]]/Tk (सॉफ़्टवेयर) फ्रंटएंड संस्करण 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 44: 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>
यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), [[ एस-अभिव्यक्ति ]] (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह एक आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें [[नियमित अभिव्यक्ति]], [[XML]], यूनिकोड ([[UTF-8]]), [[ प्रसारण नियंत्रण प्रोटोकॉल ]] (TCP), [[इंटरनेट प्रोटोकॉल]] (IP), और उपयोगकर्ता [[डेटाग्राम प्रोटेकॉलका उपयोग करें]]UDP), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना शामिल है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और [[बायेसियन अनुमान]] सांख्यिकीय विश्लेषण, [[गणितीय वित्त]] और वितरित कंप्यूटिंग।
यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), [[ एस-अभिव्यक्ति ]] (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें [[नियमित अभिव्यक्ति]], [[XML]], यूनिकोड ([[UTF-8]]), [[ प्रसारण नियंत्रण प्रोटोकॉल ]] (TCP), [[इंटरनेट प्रोटोकॉल]] (IP), और उपयोगकर्ता [[डेटाग्राम प्रोटेकॉलका उपयोग करें]]UDP), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना शामिल है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और [[बायेसियन अनुमान]] सांख्यिकीय विश्लेषण, [[गणितीय वित्त]] और वितरित कंप्यूटिंग।


न्यूएलआईएसपी [[ऑपरेटिंग सिस्टम]] [[ बर्कले सॉफ्टवेयर वितरण ]] (बीएसडी), लिनक्स, मैकओएस, [[सोलारिस (ऑपरेटिंग सिस्टम)]] और [[ माइक्रोसॉफ़्ट विंडोज़ ]] पर चलता है।<ref name="Home" />यह [[MYSQL]], [[SQLite]] और [[ODBC]] डेटाबेस एक्सेस, [[ कॉमन गेटवे इंटरफ़ेस ]] (CGI), [[ सरल डाक स्थानांतरण प्रोटोकॉल ]] (SMTP), [[ डाकघर प्रोटोकॉल ]] (POP) 3, [[फाइल ट्रांसफर प्रोटोकॉल]] (FTP) और XML [[ सुदूर प्रणाली संदेश ]] ([[XML-RPC]]) को सपोर्ट करता है। यह सर्वर मोड में [[डेमॉन (कंप्यूटिंग)]] के रूप में चल सकता है।
न्यूएलआईएसपी [[ऑपरेटिंग सिस्टम]] [[ बर्कले सॉफ्टवेयर वितरण ]] (बीएसडी), लिनक्स, मैकओएस, [[सोलारिस (ऑपरेटिंग सिस्टम)]] और [[ माइक्रोसॉफ़्ट विंडोज़ ]] पर चलता है।<ref name="Home" />यह [[MYSQL]], [[SQLite]] और [[ODBC]] डेटाबेस एक्सेस, [[ कॉमन गेटवे इंटरफ़ेस ]] (CGI), [[ सरल डाक स्थानांतरण प्रोटोकॉल ]] (SMTP), [[ डाकघर प्रोटोकॉल ]] (POP) 3, [[फाइल ट्रांसफर प्रोटोकॉल]] (FTP) और XML [[ सुदूर प्रणाली संदेश ]] ([[XML-RPC]]) को सपोर्ट करता है। यह सर्वर मोड में [[डेमॉन (कंप्यूटिंग)]] के रूप में चल सकता है।


==भाषा विशेषताएँ==
==भाषा विशेषताएँ==
{{unreferenced section|date=March 2013}}
===संदर्भ===
===संदर्भ===
न्यूएलआईएसपी [[नेमस्पेस (प्रोग्रामिंग)]] कहे जाने वाले संदर्भों का समर्थन करता है, जिन्हें वेरिएबल (कंप्यूटर विज्ञान) को सौंपा जा सकता है और [[सबरूटीन]] को पास किया जा सकता है, लेकिन जो विश्व स्तर पर अद्वितीय प्रतीकों से जुड़े होते हैं, प्रथम श्रेणी के नागरिकों (ऑब्जेक्ट्स) के रूप में उनके उपयोग को सीमित करते हैं। [[प्रोटोटाइप-आधारित प्रोग्रामिंग]]|प्रोटोटाइप-आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]]|ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की शैली न्यूएलआईएसपी में संभव है, ऑब्जेक्ट (कंप्यूटर विज्ञान) के निर्माण के लिए प्रोटोटाइप के रूप में संदर्भों का उपयोग किया जाता है। संदर्भों के अंदर चर अन्य संदर्भों में समान नाम के चर के साथ हस्तक्षेप नहीं करते हैं, लेकिन एक संदर्भ के अंदर, चर गतिशील [[स्कोप (कंप्यूटर विज्ञान)]] के नियमों के अनुसार व्यवहार करते हैं।
न्यूएलआईएसपी [[नेमस्पेस (प्रोग्रामिंग)]] कहे जाने वाले संदर्भों का समर्थन करता है, जिन्हें वेरिएबल (कंप्यूटर विज्ञान) को सौंपा जा सकता है और [[सबरूटीन]] को पास किया जा सकता है, लेकिन जो विश्व स्तर पर अद्वितीय प्रतीकों से जुड़े होते हैं, प्रथम श्रेणी के नागरिकों (ऑब्जेक्ट्स) के रूप में उनके उपयोग को सीमित करते हैं। [[प्रोटोटाइप-आधारित प्रोग्रामिंग]]|प्रोटोटाइप-आधारित [[ ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग ]]|ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की शैली न्यूएलआईएसपी में संभव है, ऑब्जेक्ट (कंप्यूटर विज्ञान) के निर्माण के लिए प्रोटोटाइप के रूप में संदर्भों का उपयोग किया जाता है। संदर्भों के अंदर चर अन्य संदर्भों में समान नाम के चर के साथ हस्तक्षेप नहीं करते हैं, लेकिन संदर्भ के अंदर, चर गतिशील [[स्कोप (कंप्यूटर विज्ञान)]] के नियमों के अनुसार व्यवहार करते हैं।


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


===[[स्मृति प्रबंधन]]===
===[[स्मृति प्रबंधन]]===
न्यूएलआईएसपी पारंपरिक कचरा संग्रह (कंप्यूटर विज्ञान) योजनाओं से अलग स्वचालित मेमोरी प्रबंधन की एक विधि का उपयोग करता है, जिसे केवल एक संदर्भ (ओआरओ) मेमोरी प्रबंधन कहा जाता है। प्रत्येक चर को केवल उसके संदर्भ द्वारा संदर्भित किया जाता है, और प्रत्येक संदर्भ को विश्व स्तर पर संदर्भित किया जाता है।
न्यूएलआईएसपी पारंपरिक कचरा संग्रह (कंप्यूटर विज्ञान) योजनाओं से अलग स्वचालित मेमोरी प्रबंधन की विधि का उपयोग करता है, जिसे केवल संदर्भ (ओआरओ) मेमोरी प्रबंधन कहा जाता है। प्रत्येक चर को केवल उसके संदर्भ द्वारा संदर्भित किया जाता है, और प्रत्येक संदर्भ को विश्व स्तर पर संदर्भित किया जाता है।


ऑब्जेक्ट (कंप्यूटर विज्ञान), चक्रीय संरचनाओं, या एक ही ऑब्जेक्ट की ओर इशारा करने वाले कई चर के बीच उप-वस्तुओं को साझा करना न्यूएलआईएसपी में समर्थित नहीं है। कुछ अंतर्निहित कार्यों को छोड़कर, डेटा संरचनाओं में संग्रहीत होने या फ़ंक्शंस में पास होने पर ऑब्जेक्ट की प्रतिलिपि बनाई जाती है। अपवाद प्रतीक और संदर्भ हैं, जिन्हें कॉपी करने के बजाय साझा किया जाता है, और इस प्रकार अप्रत्यक्ष रूप से उपयोग किया जा सकता है। प्रतीकों और संदर्भों को विश्व स्तर पर नाम दिया गया है और स्पष्ट रूप से हटा दिया गया है; किसी प्रतीक या संदर्भ को हटाने से उसके संदर्भों को प्रतिस्थापित करने के लिए अन्य सभी ऑब्जेक्ट स्कैन हो जाते हैं <code>nil</code>.
ऑब्जेक्ट (कंप्यूटर विज्ञान), चक्रीय संरचनाओं, या ही ऑब्जेक्ट की ओर इशारा करने वाले कई चर के बीच उप-वस्तुओं को साझा करना न्यूएलआईएसपी में समर्थित नहीं है। कुछ अंतर्निहित कार्यों को छोड़कर, डेटा संरचनाओं में संग्रहीत होने या फ़ंक्शंस में पास होने पर ऑब्जेक्ट की प्रतिलिपि बनाई जाती है। अपवाद प्रतीक और संदर्भ हैं, जिन्हें कॉपी करने के बजाय साझा किया जाता है, और इस प्रकार अप्रत्यक्ष रूप से उपयोग किया जा सकता है। प्रतीकों और संदर्भों को विश्व स्तर पर नाम दिया गया है और स्पष्ट रूप से हटा दिया गया है; किसी प्रतीक या संदर्भ को हटाने से उसके संदर्भों को प्रतिस्थापित करने के लिए अन्य सभी ऑब्जेक्ट स्कैन हो जाते हैं <code>nil</code>.


===जीयूआई विकल्प===
===जीयूआई विकल्प===
न्यूएलआईएसपी ग्राफिकल यूजर इंटरफेस (जीयूआई) सर्वर (न्यूएलआईएसपी-जीएस) एक [[जावा (प्रोग्रामिंग भाषा)]]-आधारित [[ इंटरनेट प्रोटोकॉल सुइट ]] (टीसीपी/आईपी) सर्वर है जो ग्राफिकल प्रोग्रामिंग इंटरफेस प्रदान करता है। न्यूएलआईएसपी बाइनरी वितरण में एक नयाएलआईएसपी-जीएस आधारित विकास वातावरण शामिल है, और [[जीटीके-सर्वर]], [[ओपन]]जीएल, और टीसीएल/टीके (सॉफ्टवेयर)-आधारित प्रोग्रामिंग इंटरफेस उपलब्ध हैं।
न्यूएलआईएसपी ग्राफिकल यूजर इंटरफेस (जीयूआई) सर्वर (न्यूएलआईएसपी-जीएस) [[जावा (प्रोग्रामिंग भाषा)]]-आधारित [[ इंटरनेट प्रोटोकॉल सुइट ]] (टीसीपी/आईपी) सर्वर है जो ग्राफिकल प्रोग्रामिंग इंटरफेस प्रदान करता है। न्यूएलआईएसपी बाइनरी वितरण में नयाएलआईएसपी-जीएस आधारित विकास वातावरण शामिल है, और [[जीटीके-सर्वर]], [[ओपन]]जीएल, और टीसीएल/टीके (सॉफ्टवेयर)-आधारित प्रोग्रामिंग इंटरफेस उपलब्ध हैं।


===स्टैंडअलोन बायनेरिज़===
===स्टैंडअलोन बायनेरिज़===
Line 70: Line 65:


===[[साझा पुस्तकालय]]ों के साथ सहभागिता===
===[[साझा पुस्तकालय]]ों के साथ सहभागिता===
न्यूएलआईएसपी में एक आयात फ़ंक्शन है, जो [[ विंडोज़ एपीआई ]] Win32 पर [[डायनामिक-लिंक लाइब्रेरी]] (डीएलएल) से या लिनक्स या [[यूनिक्स]] पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है।
न्यूएलआईएसपी में आयात फ़ंक्शन है, जो [[ विंडोज़ एपीआई ]] Win32 पर [[डायनामिक-लिंक लाइब्रेरी]] (डीएलएल) से या लिनक्स या [[यूनिक्स]] पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है।


==ढांचे==
==ढांचे==
Line 84: Line 79:
*{{Official website|www.newlisp.org}}
*{{Official website|www.newlisp.org}}
*{{GitHub|kosh04/newlisp}}
*{{GitHub|kosh04/newlisp}}
{{Lisp programming language}}
[[Category: गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ]] [[Category: कार्यात्मक भाषाएँ]] [[Category: लिस्प प्रोग्रामिंग भाषा परिवार]] [[Category: स्क्रिप्टिंग भाषाएँ]]  
[[Category: गतिशील रूप से टाइप की गई प्रोग्रामिंग भाषाएँ]] [[Category: कार्यात्मक भाषाएँ]] [[Category: लिस्प प्रोग्रामिंग भाषा परिवार]] [[Category: स्क्रिप्टिंग भाषाएँ]]  



Revision as of 16:43, 1 July 2023

newLISP
File:Nl logo libel side color 240X100.png
The newLISP dragonfly logo
ParadigmMulti-paradigm
परिवारLisp
द्वारा डिज़ाइन किया गयाLutz Mueller
DeveloperLutz Mueller
पहली प्रस्तुति1991; 33 years ago (1991)
Stable release
10.7.5 / May 12, 2019; 5 years ago (2019-05-12)[1]
Preview release
10.7.4 / September 10, 2018; 6 years ago (2018-09-10)[1]
स्कोपDynamic
प्लेटफॉर्मIA-32, x86-64
ओएसCross-platform: Unix, Unix-like, Windows
लाइसेंसGPLv3+
वेबसाइटwww.newlisp.org
Influenced by
C, Common Lisp, Perl, Scheme

न्यूएलआईएसपी स्क्रिप्टिंग भाषा है जो प्रोग्रामिंग भाषाओं के लिस्प (प्रोग्रामिंग भाषा) परिवार की बोली (कंप्यूटिंग) है। इसे लुत्ज़ म्यूएलर द्वारा डिजाइन और विकसित किया गया था।[2] न्यूएलआईएसपी जीएनयू जनरल पब्लिक लाइसेंस, संस्करण 3 या बाद के संस्करण के तहत जारी किया गया मुफ़्त और ओपन-सोर्स सॉफ़्टवेयर है।

इतिहास

न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, सामान्य लिस्प और स्कीम (प्रोग्रामिंग भाषा), और पास्कल (प्रोग्रामिंग भाषा) और सी (प्रोग्रामिंग भाषा) जैसी अन्य भाषाओं से प्रभावित है।[citation needed] न्यूएलआईएसपी की शुरुआत 1991 में हुई थी और इसे मूल रूप से सन-4 वर्कस्टेशन पर विकसित किया गया था।[3] बाद में इसे विंडोज़ 3.0 में स्थानांतरित कर दिया गया, जहां 1993 के आसपास कॉम्प्युसर्व पर संस्करण 1.3 जारी किया गया, फिर विंडोज़ ग्राफिकल यूज़र इंटरफ़ेस (जीयूआई) ग्राफिक्स-सक्षम एप्लिकेशन और डॉस सांत्वना आवेदन (दोनों 16-बिट) के रूप में उपलब्ध हो गया। 1995 में, विंडोज़ 95 की रिलीज़ के साथ, न्यूएलआईएसपी 32-बिट में स्थानांतरित हो गया।

अप्रैल 1999 में, न्यूएलआईएसपी को लिनक्स में पोर्ट किया गया था; इसके कुछ मुख्य एल्गोरिदम रीराइट (प्रोग्रामिंग) थे, और सभी विंडोज़-विशिष्ट कोड हटा दिए गए थे। न्यूएलआईएसपी को जीएनयू जनरल पब्लिक लाइसेंस के तहत लाइसेंस प्राप्त एक खुला स्रोत सॉफ्टवेयर प्रोजेक्ट के रूप में जारी किया गया था, और संस्करण 6.0.25 के बाद विंडोज़ पर विकास बंद हो गया। 2001 की पहली छमाही के दौरान, न्यूएलआईएसपी को ग्राफिक्स क्षमताओं के बिना cygwin प्लेटफॉर्म पर विंडोज़ में वापस पोर्ट किया गया था। 2001 की दूसरी छमाही में, newLISP-tk नामक क्रॉस-प्लेटफ़ॉर्म Tcl/Tk (सॉफ़्टवेयर) फ्रंटएंड संस्करण 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] यह सूचियाँ, प्रतीक प्रसंस्करण, फ़ंक्शन मैपिंग, अनाम फ़ंक्शंस (लैम्ब्डा एक्सप्रेशन), एस-अभिव्यक्ति (अनुचित सूचियों को छोड़कर), और मैक्रोज़ जैसी लिस्प सुविधाएँ प्रदान करता है। यह आधुनिक स्क्रिप्टिंग भाषा से अपेक्षित कार्य भी प्रदान करता है, जिसमें नियमित अभिव्यक्ति, XML, यूनिकोड (UTF-8), प्रसारण नियंत्रण प्रोटोकॉल (TCP), इंटरनेट प्रोटोकॉल (IP), और उपयोगकर्ता डेटाग्राम प्रोटेकॉलका उपयोग करेंUDP), मैट्रिक्स के माध्यम से नेटवर्किंग का समर्थन करना शामिल है। (गणित) और ऐरे डेटा संरचना प्रसंस्करण, उन्नत गणित, सांख्यिकी और बायेसियन अनुमान सांख्यिकीय विश्लेषण, गणितीय वित्त और वितरित कंप्यूटिंग।

न्यूएलआईएसपी ऑपरेटिंग सिस्टम बर्कले सॉफ्टवेयर वितरण (बीएसडी), लिनक्स, मैकओएस, सोलारिस (ऑपरेटिंग सिस्टम) और माइक्रोसॉफ़्ट विंडोज़ पर चलता है।[1]यह MYSQL, SQLite और ODBC डेटाबेस एक्सेस, कॉमन गेटवे इंटरफ़ेस (CGI), सरल डाक स्थानांतरण प्रोटोकॉल (SMTP), डाकघर प्रोटोकॉल (POP) 3, फाइल ट्रांसफर प्रोटोकॉल (FTP) और XML सुदूर प्रणाली संदेश (XML-RPC) को सपोर्ट करता है। यह सर्वर मोड में डेमॉन (कंप्यूटिंग) के रूप में चल सकता है।

भाषा विशेषताएँ

संदर्भ

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

स्कोपिंग

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

स्मृति प्रबंधन

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

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

जीयूआई विकल्प

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

स्टैंडअलोन बायनेरिज़

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

साझा पुस्तकालयों के साथ सहभागिता

न्यूएलआईएसपी में आयात फ़ंक्शन है, जो विंडोज़ एपीआई Win32 पर डायनामिक-लिंक लाइब्रेरी (डीएलएल) से या लिनक्स या यूनिक्स पर साझा लाइब्रेरी से फ़ंक्शन आयात करने की अनुमति देता है।

ढांचे

न्यूएलआईएसपी के लिए उपलब्ध वेब ढाँचा में ड्रैगनफ्लाई शामिल है[7] और रॉकेट.[8]


संदर्भ

  1. 1.0 1.1 1.2 "newLISP". Retrieved 2018-11-20.
  2. Walling, Rob. "न्यूएलआईएसपी के निर्माता लुत्ज़ मुलर के साथ एक साक्षात्कार". Softwarebyrob.com. Archived from the original on 2007-10-31. Retrieved 2018-11-20.
  3. Mueller, Lutz. "newLISP – a LISP Scripting Language". don Lucio. Retrieved 2018-11-20.
  4. Kobayashi, Shigeru. "kosh04/newlisp". GitHub. Retrieved 2018-11-20.
  5. "Category:newLISP". Rosetta Code. Retrieved 2018-11-20.
  6. Lazar, Alexandru (5 January 2009). "न्यूएलआईएसपी पर एक नजर". OSNews. Retrieved 2018-11-20.
  7. Slepak, Greg; Hildmann, Marc. "ड्रैगनफ्लाई वेब ढांचा". AppTruck. Retrieved 2018-11-20.
  8. Reimer, Jeremy. "The newLISP on Rockets 2.0 Blog". Rocket Man. Retrieved 2018-11-20.


बाहरी संबंध