न्यूएलआईएसपी

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

इतिहास
न्यूएलआईएसपी डिज़ाइन दो मुख्य लिस्प (प्रोग्रामिंग भाषा) बोलियों, सामान्य लिस्प  और स्कीम (प्रोग्रामिंग भाषा), और पास्कल (प्रोग्रामिंग भाषा) और सी (प्रोग्रामिंग भाषा) जैसी अन्य भाषाओं से प्रभावित है। न्यूएलआईएसपी की शुरुआत 1991 में हुई थी और इसे मूल रूप से सन-4 वर्कस्टेशन पर विकसित किया गया था। बाद में इसे विंडोज़ 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 के रिलीज़ होने के बाद से, विकास बहुत सक्रिय रहा है, और कई नई सुविधाएँ जोड़ी गई हैं।

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

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

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

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

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

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

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

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

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

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