न्यू जर्सी के मानक एमएल
Paradigm | Multi-paradigm: functional, imperative |
---|---|
Stable release | Script error: The module returned a nil value. It is supposed to return an export table.
/ Script error: The module returned a nil value. It is supposed to return an export table. |
टाइपिंग अनुशासन | strong, static, inferred |
लाइसेंस | BSD-like license[1] |
फ़ाइल नाम एक्सटेंशनएस | .sml |
वेबसाइट | www |
Influenced by | |
Standard ML | |
Influenced | |
Mythryl |
न्यू जर्सी का स्टैंडर्ड एमएल (एसएमएल/एनजे; न्यू जर्सी का स्टैंडर्ड मेटा-लैंग्वेज) स्टैंडर्ड एमएल प्रोग्रामिंग लैंग्वेज के लिए एक स्वतंत्र और ओपन-सोर्स कंपाइलर और प्रोग्रामिंग एनवायरनमेंट है। इसके रनटाइम सिस्टम के अतिरिक्त, जो C में लिखा जाता है, SML/NJ स्टैंडर्ड ML में लिखा जाता है। इसे मूल रूप से बेल लेबोरेटरीज और प्रिंसटन विश्वविद्यालय द्वारा संयुक्त रूप से विकसित किया गया था।[2]
इसका नाम अमेरिकी राज्य न्यू जर्सी,, जिसमें प्रिंसटन और बेल लैब्स स्थित हैं, और न्यू जर्सी के स्टैंडर्ड ऑयल, जो कि 20वीं सदी की शुरुआत का प्रसिद्ध ऑयल एकाधिकार था, दोनों का संदर्भ है।
सुविधाएँ
एसएमएल/एनजे कई अतिरिक्त शीर्ष-स्तरीय संरचनाओं के साथ एसएमएल'97 बेसिस लाइब्रेरी का विस्तार करता है:[3]
- सिस्टम इन्फो -
SysInfo
संरचना रनटाइम सिस्टम के बारे में जानकारी प्रदान करती है, जैसे ऑपरेटिंग सिस्टम का प्रकार, प्रकार और संस्करण और मशीन मल्टीप्रोसेसिंग का समर्थन करती है या नहीं।[4] - वीक पॉइंटर -
Weak
स्ट्रक्चर वीक पॉइंटर्स के लिए समर्थन प्रदान करती है।[5] - लेजी सस्पेंशन -
Susp
स्ट्रक्चर लेजी इवैल्यूएशन के लिए आवश्यक सस्पेंशन को लागू करती है (एगर इवैल्यूएशन के विपरीत)।[6] - संकलक आंतरिक - द
Internals
संरचना कई कंपाइलर आंतरिकों तक पहुंच प्रदान करती है, जिसमें सिग्नल तालिका को तुरंत चालू करने और संशोधित करने के तरीके भी शामिल हैं।[7] - असुरक्षित पहुंच - द
Unsafe
संरचना डेटा संरचनाओं और रनटाइम-सिस्टम फ़ंक्शंस तक असुरक्षित पहुंच प्रदान करती है।[8] - दृश्यमान कंपाइलर संरचनाएं - एसएमएल/एनजे में ऐसी संरचनाएं भी शामिल हैं जो एमएल कंपाइलर तक पहुंच प्रदान करती हैं, जिसमें निष्पादन प्रोफाइलिंग, कंपाइलर त्रुटि-संदेश प्रिंटिंग और चेतावनियों का नियंत्रण, और अनुकूलन योग्य सुंदर प्रिंटिंग के लिए उप-संरचनाएं शामिल हैं।[9]
इसके अतिरिक्त, SML/NJ कुछ वाक्यात्मक संरचनाएँ प्रदान करता है जो SML'97 की स्टैंडर्ड विशेषताएँ नहीं हैं:[3]
- वेक्टर अभिव्यक्ति और पैटर्न - एसएमएल/एनजे वेक्टर के निर्माण की अनुमति देता है
#[exp0, exp1, ..., expn−1]
सिंटैक्स और अनुरूप सिंटैक्स के साथ उन पर पैटर्न-मिलान की अनुमति देता है। - या-पैटर्न - एसएमएल/एनजे एक ही नियम में कई पैटर्न से मेल खाने की अनुमति देने के लिए एसएमएल'97 पैटर्न के सिंटैक्स का विस्तार करता है, बशर्ते प्रत्येक पैटर्न का उपयोग करके एक ही प्रकार हो
(apat1 | ... | apatn) => exp
. - ऑब्जेक्ट भाषा एम्बेडिंग - एसएमएल/एनजे उद्धरण/एंटीकोट सिंटैक्स प्रदान करता है जो एमएल अभिव्यक्तियों और कार्यक्रमों के भीतर ऑब्जेक्ट भाषा के ठोस सिंटैक्स में अभिव्यक्तियों को एम्बेड करने की अनुमति देता है।[10]
- उच्च-क्रम मॉड्यूल - एसएमएल/एनजे फ़ंक्शनक्टर के रूप में स्टैंडर्ड एमएल के पैरामीट्रिक मॉड्यूल के अलावा, फ़ैक्टर को संरचनाओं के घटक बनने की अनुमति देकर फ़ैक्टर के पैरामीट्रिज़ेशन का समर्थन करता है।
विकास
उत्तराधिकारी एमएल एक शब्द है जिसका उपयोग भाषा के अगले संस्करण का वर्णन करने के लिए किया जाता है। इसका वर्णन करने वाले दस्तावेज़ SML/NJ '97 फ़ाइलों से निकाले गए हैं और TeX दस्तावेज़ों के GitHub भंडार के रूप में उपलब्ध कराए गए हैं, जिनसे समुदाय को सहयोग करने और भाषा को विकसित करने की उम्मीद है।[11] कमांड-लाइन विकल्प का उपयोग करके उत्तराधिकारी एमएल सुविधाओं को सक्षम किया जा सकता है -Cparser.succ-ml=true
.[12]
कम से कम 1998 से,[13] एमएलटन[14] स्टैंडर्ड बूटस्ट्रैपिंग (संकलक)कंपाइलर) कंपाइलर है, और इसमें कुछ है[15]उत्तराधिकारी एमएल के लिए समर्थन।
2008 में, HaMLet पर काम शुरू हुआ,[16] उत्तराधिकारी एमएल का एक संदर्भ कार्यान्वयन पूरी तरह से स्टैंडर्ड एमएल में लिखा गया है।[17] 2018 तक, HaMLet अतिरिक्त नवीनताओं के साथ उत्तराधिकारी ML का एकमात्र पूर्ण कार्यान्वयन बना हुआ है।[15] 2015 से,[18]एसएमएल/एनजे का विकास बेसिस लाइब्रेरी को विकसित करने की दिशा में हुआ[19] और संस्करण 110.79 के रिलीज़ के साथ उत्तराधिकारी एमएल परिभाषा के लिए समर्थन जोड़ना।[12] 2020 के अंत में, संस्करण 110.99 की रिलीज़ के साथ 64-बिट समर्थन जोड़ा गया।[18]
यह भी देखें
बाहरी संबंध
संदर्भ
- ↑ "Standard ML of New Jersey License". www.smlnj.org.
- ↑ "SML/NJ background information". www.smlnj.org. Retrieved 2018-09-05.
- ↑ 3.0 3.1 "SML/NJ Special Features". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "The SYS_INFO signature". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "कमजोर हस्ताक्षर". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "एसयूएसपी हस्ताक्षर". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "आंतरिक हस्ताक्षर". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "असुरक्षित संरचना". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "दृश्यमान संकलक". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "SML/NJ Quote/Antiquote". www.smlnj.org. Retrieved 2018-09-05.
- ↑ "उत्तराधिकारी एमएल परिभाषा". GitHub.
- ↑ 12.0 12.1 "Standard ML of New Jersey version 110.79 NEWS". 2015-10-04.
- ↑ "MLton 1999-03-19 change notes". GitHub.
- ↑ "एमएलटन भंडार". GitHub.
- ↑ 15.0 15.1 "उत्तराधिकारी एमएल का समर्थन करने के लिए तीन कार्यान्वयन प्रयास". GitHub.
- ↑ Andreas Rossberg. "HaMLet S: To Become Or Not To Become Successor ML" (PDF).
- ↑ "एसएमएल संदर्भ दुभाषिया". GitHub.
- ↑ 18.0 18.1 "Standard ML of New Jersey Change Log for v110.99".
- ↑ "The Standard ML Basis Library".