न्यू जर्सी के मानक एमएल

न्यू जर्सी का स्टैंडर्ड ML (SML/NJ; न्यू जर्सी का स्टैंडर्ड मेटा-लैंग्वेज) स्टैंडर्ड ML प्रोग्रामिंग लैंग्वेज के लिए एक स्वतंत्र और ओपन-सोर्स कंपाइलर और प्रोग्रामिंग एनवायरनमेंट है। इसके रनटाइम सिस्टम के अतिरिक्त, जो C में लिखा जाता है, SML/NJ स्टैंडर्ड ML में लिखा जाता है। इसे मूल रूप से बेल लेबोरेटरीज और प्रिंसटन विश्वविद्यालय द्वारा संयुक्त रूप से विकसित किया गया था।

इसका नाम अमेरिकी राज्य न्यू जर्सी,, जिसमें प्रिंसटन और बेल लैब्स स्थित हैं, और न्यू जर्सी के स्टैंडर्ड ऑयल, जो कि 20वीं सदी के प्रारम्भ का प्रसिद्ध ऑयल एकाधिकार था, दोनों के संदर्भ हैं।

सुविधाएँ
SML/NJ कई अतिरिक्त शीर्ष-स्तरीय संरचनाओं के साथ एसएमएल'97 बेसिस लाइब्रेरी का विस्तार करता है: इसके अतिरिक्त, SML/NJ कुछ वाक्यात्मक संरचनाएँ प्रदान करता है जो SML'97 की स्टैंडर्ड विशेषताएँ नहीं हैं:
 * सिस्टम इन्फो - संरचना रनटाइम सिस्टम के बारे में जानकारी प्रदान करती है, जैसे ऑपरेटिंग सिस्टम का प्रकार, प्रकार और संस्करण और मशीन मल्टीप्रोसेसिंग का समर्थन करती है या नहीं।
 * वीक पॉइंटर - स्ट्रक्चर वीक पॉइंटर्स के लिए समर्थन प्रदान करती है।
 * लेजी सस्पेंशन - स्ट्रक्चर लेजी इवैल्यूएशन के लिए आवश्यक सस्पेंशन को लागू करती है (एगर इवैल्यूएशन के विपरीत)।
 * कंपाइलर इंटरनल्स - संरचना कई कंपाइलर इंटरनल्स तक पहुंच प्रदान करती है, जिसमें सिग्नल टेबल को इंस्टेंट करने और संशोधित करने के तरीके भी सम्मिलित हैं।
 * अनसेफ एक्सेस - संरचना डेटा संरचनाओं और रनटाइम-सिस्टम फ़ंक्शंस तक असुरक्षित पहुंच प्रदान करती है।
 * विसिबल कंपाइलर स्ट्रक्चर - SML/NJ में ऐसी संरचनाएं भी सम्मिलित हैं जो ML कंपाइलर तक पहुंच प्रदान करती हैं, जिसमें निष्पादन प्रोफाइलिंग, कंपाइलर एरर-मैसेज प्रिंटिंग और चेतावनियों का नियंत्रण, और अनुकूलन योग्य प्रेट्टी-प्रिंटिंग के लिए सब-स्ट्रक्चर सम्मिलित हैं।


 * वेक्टर एक्सप्रेशन एंड पैटर्न्स - SML/NJ सिंटैक्स के साथ वेक्टर के निर्माण की अनुमति देता है और उन पर समान सिंटैक्स के साथ पैटर्न-मिलान की अनुमति देता है।
 * Or-पैटर्न - SML/NJ एक ही नियम में कई पैटर्न के मिलान की अनुमति देने के लिए एसएमएल'97 पैटर्न के सिंटैक्स का विस्तार करता है, बशर्ते प्रत्येक पैटर्न का एक ही प्रकार हो, का उपयोग करके।
 * ऑब्जेक्ट लैंग्वेज एम्बेडिंग - SML/NJ उद्धरण/एंटीकोट सिंटैक्स प्रदान करता है जो ML एक्सप्रेशंस और फंक्शन्स के भीतर किसी ऑब्जेक्ट लैंग्वेज के हार्ड सिंटैक्स में एक्सप्रेशंस को एम्बेड करने की अनुमति देता है।
 * हायर-आर्डर मॉड्यूल - SML/NJ, फ़ैक्टर के रूप में स्टैंडर्ड ML के पैरामीट्रिक मॉड्यूल के अलावा, फ़ैक्टर को स्ट्रक्चर के घटक बनने की अनुमति देकर फ़ैक्टर के पैरामीट्रिज़ेशन का समर्थन करता है।

विकास
सक्सेसर ML एक शब्द है जिसका उपयोग लैंग्वेज के अगले संस्करण का वर्णन करने के लिए किया जाता है। इसका वर्णन करने वाले डॉक्यूमेंट SML/NJ '97 फ़ाइलों से निकाले गए हैं और TeX डाक्यूमेंट्स के GitHub रिपॉजिटरी के रूप में उपलब्ध कराए गए हैं, जिससे समुदाय को सहयोग करने और लैंग्वेज को विकसित करने की उम्मीद है। सक्सेसर ML सुविधाओं को कमांड-लाइन ऑप्शन का उपयोग करके सक्षम किया जा सकता है।

कम से कम 1998 से, MLton स्टैंडर्ड बूटस्ट्रैपिंग कंपाइलर है, और इसमें सक्सेसर ML के लिए कुछ समर्थन है।

2008 में, HaMLet पर काम शुरू हुआ, जो सक्सेसर ML का एक संदर्भ कार्यान्वयन है जो पूरी तरह से स्टैंडर्ड ML में लिखा गया है। 2018 तक, HaMLet अतिरिक्त नवीनताओं के साथ सक्सेसर ML का एकमात्र पूर्ण कार्यान्वयन बना हुआ है।

2015 से, SML/NJ का विकास बेसिस लाइब्रेरी को विकसित करने की दिशा में आगे बढ़ा है और संस्करण 110.79 के रिलीज के साथ सक्सेसर ML परिभाषा के लिए समर्थन कर रहा है।

2020 के अंत में, संस्करण 110.99 की रिलीज़ के साथ 64-बिट समर्थन जोड़ा गया।

यह भी देखें

 * एक्सटेंडेड ML
 * डिपेंडेंट ML

बाहरी संबंध

 * Standard ML of New Jersey
 * Successor ML
 * Standard ML Basis Library
 * Hamlet