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

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

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


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

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

कम से कम 1998 से, एमएलटन मानक बूटस्ट्रैपिंग (संकलक)कंपाइलर) कंपाइलर है, और इसमें कुछ है उत्तराधिकारी एमएल के लिए समर्थन।

2008 में, HaMLet पर काम शुरू हुआ, उत्तराधिकारी एमएल का एक संदर्भ कार्यान्वयन पूरी तरह से मानक एमएल में लिखा गया है। 2018 तक, HaMLet अतिरिक्त नवीनताओं के साथ उत्तराधिकारी ML का एकमात्र पूर्ण कार्यान्वयन बना हुआ है। 2015 से, एसएमएल/एनजे का विकास बेसिस लाइब्रेरी को विकसित करने की दिशा में हुआ और संस्करण 110.79 के रिलीज़ के साथ उत्तराधिकारी एमएल परिभाषा के लिए समर्थन जोड़ना। 2020 के अंत में, संस्करण 110.99 की रिलीज़ के साथ 64-बिट समर्थन जोड़ा गया।

यह भी देखें

 * विस्तारित एमएल
 * आश्रित एमएल

बाहरी संबंध

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