SETL (एसईटी लैंग्वेज): Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
Line 1: Line 1:
{{Short description|Programming language}}
{{Short description|Programming language}}
{{Redirect|एसईटीएल|कनाडा में स्वदेशी स्थान|ब्रिज रिवर रैपिड्स}}
{{Infobox programming language
{{Infobox programming language
| logo                  =  
| logo                  =  
Line 17: Line 16:
}}
}}


एसईटीएल (ईएसटी लैंग्वेज) गणितीय सेट सिद्धांत पर आधारित एक बहुत ही उच्च स्तरीय प्रोग्रामिंग लैंग्वेज है। इसे मूल रूप से 1960 के दशक के अंत में [[न्यूयॉर्क विश्वविद्यालय]] (एनवाईयू) [[गणितीय विज्ञान के कूरेंट संस्थान]] में (जैक) जैकब टी. श्वार्ट्ज द्वारा विकसित किया गया था।
'''सेट्ल''' ('''SETL-'''ईएसटी लैंग्वेज) गणितीय समुच्चय सिद्धांत पर आधारित एक बहुत ही उच्च स्तरीय प्रोग्रामिंग लैंग्वेज है। इसे मूल रूप से 1960 के दशक के अंत में [[न्यूयॉर्क विश्वविद्यालय]] (एनवाईयू) [[गणितीय विज्ञान के कूरेंट संस्थान]] में (जैक) जैकब टी. श्वार्ट्ज द्वारा विकसित किया गया था।


== डिज़ाइन ==
== डिज़ाइन ==
एसईटीएल दो बेसिक एग्रीगेट डेटा टाइप प्रदान करता है: अनऑर्डरड सेट, और सीक्वेंस (बाद वाले को टुपल्स भी कहा जाता है)। सेट और टुपल्स किसी भी स्वेच्छाचारी प्रकार के हो सकते हैं, जिनमें स्वयं सेट और टुपल्स भी सम्मिलित हैं। मानचित्र जोड़े के सेट के रूप में प्रदान किए जाते हैं (यानी, लंबाई 2 के टुपल्स) और इसमें स्वेच्छाचारी ढंग से डोमेन और रेंज टाइप हो सकते हैं। एसईटीएल में आदिम संचालन में सेट सदस्यता, यूनियन, इंटरसेक्शन और पावर सेट निर्माण आदि सम्मिलित हैं।
सेट्ल दो बेसिक एग्रीगेट डेटा टाइप प्रदान करता है: अनऑर्डरड समुच्चय, और सीक्वेंस (बाद वाले को टुपल्स भी कहा जाता है)। समुच्चय और टुपल्स किसी भी स्वेच्छाचारी प्रकार के हो सकते हैं, जिनमें स्वयं समुच्चय और टुपल्स भी सम्मिलित हैं। मानचित्र जोड़े के समुच्चय के रूप में प्रदान किए जाते हैं (यानी, लंबाई 2 के टुपल्स) और इसमें स्वेच्छाचारी ढंग से डोमेन और रेंज टाइप हो सकते हैं। सेट्ल में आदिम संचालन में समुच्चय सदस्यता, यूनियन, इंटरसेक्शन और पावर समुच्चय निर्माण आदि सम्मिलित हैं।


एसईटीएल [[प्रथम-क्रम विधेय तर्क|फर्स्ट-आर्डर प्रेडीकेट लॉजिक]] के [[सार्वभौमिक परिमाणक|यूनिवर्सल]] [[अस्तित्वगत परिमाणक|क्वांटीफायर]] और [[अस्तित्वगत परिमाणक|एक्सिस्टेंशियल क्वांटीफायर]] का उपयोग करके निर्मित परिमाणित बूलियन एक्सप्रेशन प्रदान करता है।
सेट्ल [[प्रथम-क्रम विधेय तर्क|फर्स्ट-आर्डर प्रेडीकेट लॉजिक]] के [[सार्वभौमिक परिमाणक|यूनिवर्सल]] [[अस्तित्वगत परिमाणक|क्वांटीफायर]] और [[अस्तित्वगत परिमाणक|एक्सिस्टेंशियल क्वांटीफायर]] का उपयोग करके निर्मित परिमाणित बूलियन एक्सप्रेशन प्रदान करता है।


एसईटीएल समग्र डेटा संरचनाओं पर विभिन्न प्रकार के लूप उत्पन्न करने के लिए कई इटीरेटर प्रदान करता है।
सेट्ल समग्र डेटा संरचनाओं पर विभिन्न प्रकार के लूप उत्पन्न करने के लिए कई इटीरेटर प्रदान करता है।


== उदाहरण ==
== उदाहरण ==
Line 36: Line 35:
  end factorial;
  end factorial;


फ़ैक्टोरियल (n > 0) के लिए एक अधिक कन्वेंशनल एसईटीएल अभिव्यक्ति:
फ़ैक्टोरियल (n > 0) के लिए एक अधिक कन्वेंशनल सेट्ल अभिव्यक्ति:
  */[1..n]
  */[1..n]


== उपयोग ==
== उपयोग ==
एसईटीएल का कार्यान्वयन डीईसी [[VAX|वीएएक्स]], आईबीएम/370, [[सन माइक्रोसिस्टम्स]] वर्कस्टेशन और [[अपोलो कंप्यूटर]] पर उपलब्ध था।<ref>{{cite book
सेट्ल का कार्यान्वयन डीईसी [[VAX|वीएएक्स]], आईबीएम/370, [[सन माइक्रोसिस्टम्स]] वर्कस्टेशन और [[अपोलो कंप्यूटर]] पर उपलब्ध था।<ref>{{cite book
  | title = Programming with sets. An Introduction to SETL
  | title = Programming with sets. An Introduction to SETL
  | author = J.T. Schwartz
  | author = J.T. Schwartz
Line 52: Line 51:
}}</ref>
}}</ref>


1970 के दशक में, एसईटीएल को [[BESM-6|बीईएसएम-6]], ईएस ईवीएम और अन्य रूसी कंप्यूटर सिस्टम में पोर्ट किया गया था।<ref>{{cite book
1970 के दशक में, सेट्ल को [[BESM-6|बीईएसएम-6]], ईएस ईवीएम और अन्य रूसी कंप्यूटर सिस्टम में पोर्ट किया गया था।<ref>{{cite book
  | title = Становление новосибирской школы программирования (мозаика воспоминаний)
  | title = Становление новосибирской школы программирования (мозаика воспоминаний)
  | trans-title = Formation of the Novosibirsk school of programming (mosaic of memories)
  | trans-title = Formation of the Novosibirsk school of programming (mosaic of memories)
Line 64: Line 63:
}}</ref>
}}</ref>


एसईटीएल का उपयोग प्रोग्रामिंग लैंग्वेज एडीए (प्रोग्रामिंग लैंग्वेज) के प्रारंभिक कार्यान्वयन के लिए किया गया था, जिसे एनवाईयू एडीए/ईडी अनुवादक नाम दिया गया था। <ref>{{cite book |first1=Robert B. K. |last1=Dewar |first2=Gerald A. |last2=Fisher Jr. |first3=Edmond |last3=Schonberg |first4=Robert |last4=Froelich |first5=Stephen |last5=Bryant |first6=Clinton F. |last6=Goss |first7=Michael |last7=Burke |title=Proceeding of the ACM-SIGPLAN symposium on Ada programming language - SIGPLAN '80 |chapter=The NYU Ada translator and interpreter |volume=15 |issue=11 |pages=194–201 |date=November 1980 |isbn=0-89791-030-3 |doi=10.1145/948632.948659|s2cid=10586359 }}</ref> यह बाद में 11 अप्रैल, 1983 को प्रमाणित पहला मान्य एडीए कार्यान्वयन बन गया।<ref>{{cite web |url=http://www.dtic.mil/docs/citations/ADA136759 |archive-url=https://web.archive.org/web/20170607044753/http://www.dtic.mil/docs/citations/ADA136759 |url-status=dead |archive-date=June 7, 2017 |title=Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001 |author=SofTech Inc., Waltham, MA |date=1983-04-11 |access-date=2010-12-16}}</ref>
सेट्ल का उपयोग प्रोग्रामिंग लैंग्वेज एडीए (प्रोग्रामिंग लैंग्वेज) के प्रारंभिक कार्यान्वयन के लिए किया गया था, जिसे एनवाईयू एडीए/ईडी अनुवादक नाम दिया गया था। <ref>{{cite book |first1=Robert B. K. |last1=Dewar |first2=Gerald A. |last2=Fisher Jr. |first3=Edmond |last3=Schonberg |first4=Robert |last4=Froelich |first5=Stephen |last5=Bryant |first6=Clinton F. |last6=Goss |first7=Michael |last7=Burke |title=Proceeding of the ACM-SIGPLAN symposium on Ada programming language - SIGPLAN '80 |chapter=The NYU Ada translator and interpreter |volume=15 |issue=11 |pages=194–201 |date=November 1980 |isbn=0-89791-030-3 |doi=10.1145/948632.948659|s2cid=10586359 }}</ref> यह बाद में 11 अप्रैल, 1983 को प्रमाणित पहला मान्य एडीए कार्यान्वयन बन गया।<ref>{{cite web |url=http://www.dtic.mil/docs/citations/ADA136759 |archive-url=https://web.archive.org/web/20170607044753/http://www.dtic.mil/docs/citations/ADA136759 |url-status=dead |archive-date=June 7, 2017 |title=Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001 |author=SofTech Inc., Waltham, MA |date=1983-04-11 |access-date=2010-12-16}}</ref>


[[गुइडो वैन रोसुम]] के अनुसार, [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज)]] प्रेडेसर, [[एबीसी (प्रोग्रामिंग भाषा)|एबीसी (प्रोग्रामिंग लैंग्वेज)]], एसईटीएल से प्रेरित थी - अंतिम एबीसी डिजाइन के साथ आने से पहले [[लैम्बर्ट मेरटेंस]] ने एनवाईयू में एसईटीएल समूह के साथ एक साल बिताया था! <ref>[http://mail.python.org/pipermail/python-dev/2000-August/008881.html Python-Dev: SETL (was: Lukewarm about range literals)]</ref>
[[गुइडो वैन रोसुम]] के अनुसार, [[पायथन (प्रोग्रामिंग भाषा)|पायथन (प्रोग्रामिंग लैंग्वेज)]] प्रेडेसर, [[एबीसी (प्रोग्रामिंग भाषा)|एबीसी (प्रोग्रामिंग लैंग्वेज)]], सेट्ल से प्रेरित थी - अंतिम एबीसी डिजाइन के साथ आने से पहले [[लैम्बर्ट मेरटेंस]] ने एनवाईयू में सेट्ल समूह के साथ एक साल बिताया था! <ref>[http://mail.python.org/pipermail/python-dev/2000-August/008881.html Python-Dev: SETL (was: Lukewarm about range literals)]</ref>






==लैंग्वेज वैरिएंट==
==लैंग्वेज वैरिएंट==
ईएसटी लैंग्वेज 2 (एसईटीएल2), एसईटीएल का एक बैकवर्ड इनकम्पेटिबल डेस्केन्डन्ट, 1980 के दशक के अंत में न्यूयॉर्क विश्वविद्यालय में कूरेंट इंस्टीट्यूट ऑफ मैथमैटिकल साइंसेज के किर्क स्नाइडर द्वारा बनाया गया था। अपने प्रीडेसर की तरह, यह परिमित सेटों के सिद्धांत और अंकन पर आधारित है, लेकिन यह वाक्य रचना और शैली में भी एडा लैंग्वेज से प्रभावित है।
ईएसटी लैंग्वेज 2 (सेट्ल2), सेट्ल का एक बैकवर्ड इनकम्पेटिबल डेस्केन्डन्ट, 1980 के दशक के अंत में न्यूयॉर्क विश्वविद्यालय में कूरेंट इंस्टीट्यूट ऑफ मैथमैटिकल साइंसेज के किर्क स्नाइडर द्वारा बनाया गया था। अपने प्रीडेसर की तरह, यह परिमित समुच्चयों के सिद्धांत और अंकन पर आधारित है, लेकिन यह वाक्य रचना और शैली में भी एडा लैंग्वेज से प्रभावित है।


इंटरैक्टिव ईएसटी लैंग्वेज (एसईटीएल) असतत गणित में प्रयुक्त एसईटीएल का एक प्रकार है।
इंटरैक्टिव ईएसटी लैंग्वेज (सेट्ल) असतत गणित में प्रयुक्त सेट्ल का एक प्रकार है।


[https://setl.org/setl/ जीएनयू एसईटीएल] एक कमांड-लाइन उपयोगिता है जो एसईटीएल का विस्तार और कार्यान्वयन करती है।
[https://setl.org/setl/ जीएनयू सेट्ल] एक कमांड-लाइन उपयोगिता है जो सेट्ल का विस्तार और कार्यान्वयन करती है।


== संदर्भ ==
== संदर्भ ==
Line 83: Line 82:
== अग्रिम पठन ==
== अग्रिम पठन ==
* Schwartz, Jacob T., "ईएसटी Theory as a Language for Program Specification and Programming". Courant Institute of Mathematical Sciencईएस, New York University, 1970.
* Schwartz, Jacob T., "ईएसटी Theory as a Language for Program Specification and Programming". Courant Institute of Mathematical Sciencईएस, New York University, 1970.
* Schwartz, Jacob T., "On Programming, An Interim Report on the एसईटीएल Project", Computer Science Department, Courant Institute of Mathematical Sciencईएस, New York University (1973).
* Schwartz, Jacob T., "On Programming, An Interim Report on the सेट्ल Project", Computer Science Department, Courant Institute of Mathematical Sciencईएस, New York University (1973).
* Schwartz, Jacob T., Dewar, R.B.K., Dubinsky, E., and Schonberg, E., ''Programming With ईएसटीs: An Introduction to एसईटीएल'', 1986. {{ISBN|0-387-96399-5}}.
* Schwartz, Jacob T., Dewar, R.B.K., Dubinsky, E., and Schonberg, E., ''Programming With ईएसटीs: An Introduction to सेट्ल'', 1986. {{ISBN|0-387-96399-5}}.




== बाहरी संबंध ==
== बाहरी संबंध ==
* {{Official website}}
* {{Official website}}
* [http://www.settheory.com ''Programming in एसईटीएल'' and other things]
* [http://www.settheory.com ''Programming in सेट्ल'' and other things]
* [http://www.softwarepreservation.org/projects/SETL एसईटीएल Historical Sourcईएस Archive]
* [http://www.softwarepreservation.org/projects/SETL सेट्ल Historical Sourcईएस Archive]


{{Authority control}}
{{Authority control}}

Revision as of 11:46, 11 August 2023

SETL
Paradigmmulti-paradigm: imperative, procedural, structured, object-oriented
द्वारा डिज़ाइन किया गया(Jack) Jacob T. Schwartz
DeveloperCourant Institute of Mathematical Sciences
पहली प्रस्तुति1969; 55 years ago (1969)
Stable release
1.1 / January 7, 2005; 19 years ago (2005-01-07)
टाइपिंग अनुशासनDynamic
वेबसाइटsetl.org
Influenced by
ALGOL 60
Influenced
SETL2, ISETL, SETLX, Starset, ABC

सेट्ल (SETL-ईएसटी लैंग्वेज) गणितीय समुच्चय सिद्धांत पर आधारित एक बहुत ही उच्च स्तरीय प्रोग्रामिंग लैंग्वेज है। इसे मूल रूप से 1960 के दशक के अंत में न्यूयॉर्क विश्वविद्यालय (एनवाईयू) गणितीय विज्ञान के कूरेंट संस्थान में (जैक) जैकब टी. श्वार्ट्ज द्वारा विकसित किया गया था।

डिज़ाइन

सेट्ल दो बेसिक एग्रीगेट डेटा टाइप प्रदान करता है: अनऑर्डरड समुच्चय, और सीक्वेंस (बाद वाले को टुपल्स भी कहा जाता है)। समुच्चय और टुपल्स किसी भी स्वेच्छाचारी प्रकार के हो सकते हैं, जिनमें स्वयं समुच्चय और टुपल्स भी सम्मिलित हैं। मानचित्र जोड़े के समुच्चय के रूप में प्रदान किए जाते हैं (यानी, लंबाई 2 के टुपल्स) और इसमें स्वेच्छाचारी ढंग से डोमेन और रेंज टाइप हो सकते हैं। सेट्ल में आदिम संचालन में समुच्चय सदस्यता, यूनियन, इंटरसेक्शन और पावर समुच्चय निर्माण आदि सम्मिलित हैं।

सेट्ल फर्स्ट-आर्डर प्रेडीकेट लॉजिक के यूनिवर्सल क्वांटीफायर और एक्सिस्टेंशियल क्वांटीफायर का उपयोग करके निर्मित परिमाणित बूलियन एक्सप्रेशन प्रदान करता है।

सेट्ल समग्र डेटा संरचनाओं पर विभिन्न प्रकार के लूप उत्पन्न करने के लिए कई इटीरेटर प्रदान करता है।

उदाहरण

2 से लेकर N तक सभी प्राइम नंबर प्रिंट करें :

print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);

नोटेशन लिस्ट कॉम्प्रिहेंशन के समान है।

एक फ़ैक्टोरियल प्रोसीजर परिभाषा:

procईडीure factorial(n); -- calculatईएस the factorial n!
  return if n = 1 then 1 else n * factorial(n - 1) end if;
end factorial;

फ़ैक्टोरियल (n > 0) के लिए एक अधिक कन्वेंशनल सेट्ल अभिव्यक्ति:

*/[1..n]

उपयोग

सेट्ल का कार्यान्वयन डीईसी वीएएक्स, आईबीएम/370, सन माइक्रोसिस्टम्स वर्कस्टेशन और अपोलो कंप्यूटर पर उपलब्ध था।[1]

1970 के दशक में, सेट्ल को बीईएसएम-6, ईएस ईवीएम और अन्य रूसी कंप्यूटर सिस्टम में पोर्ट किया गया था।[2]

सेट्ल का उपयोग प्रोग्रामिंग लैंग्वेज एडीए (प्रोग्रामिंग लैंग्वेज) के प्रारंभिक कार्यान्वयन के लिए किया गया था, जिसे एनवाईयू एडीए/ईडी अनुवादक नाम दिया गया था। [3] यह बाद में 11 अप्रैल, 1983 को प्रमाणित पहला मान्य एडीए कार्यान्वयन बन गया।[4]

गुइडो वैन रोसुम के अनुसार, पायथन (प्रोग्रामिंग लैंग्वेज) प्रेडेसर, एबीसी (प्रोग्रामिंग लैंग्वेज), सेट्ल से प्रेरित थी - अंतिम एबीसी डिजाइन के साथ आने से पहले लैम्बर्ट मेरटेंस ने एनवाईयू में सेट्ल समूह के साथ एक साल बिताया था! [5]


लैंग्वेज वैरिएंट

ईएसटी लैंग्वेज 2 (सेट्ल2), सेट्ल का एक बैकवर्ड इनकम्पेटिबल डेस्केन्डन्ट, 1980 के दशक के अंत में न्यूयॉर्क विश्वविद्यालय में कूरेंट इंस्टीट्यूट ऑफ मैथमैटिकल साइंसेज के किर्क स्नाइडर द्वारा बनाया गया था। अपने प्रीडेसर की तरह, यह परिमित समुच्चयों के सिद्धांत और अंकन पर आधारित है, लेकिन यह वाक्य रचना और शैली में भी एडा लैंग्वेज से प्रभावित है।

इंटरैक्टिव ईएसटी लैंग्वेज (सेट्ल) असतत गणित में प्रयुक्त सेट्ल का एक प्रकार है।

जीएनयू सेट्ल एक कमांड-लाइन उपयोगिता है जो सेट्ल का विस्तार और कार्यान्वयन करती है।

संदर्भ

  1. J.T. Schwartz; R.B.K. Dewar; E. Dubinsky; E. Schonberg (1986). Programming with sets. An Introduction to SETL. Springer-Verlag New York Inc. ISBN 978-1-4613-9577-5.
  2. И.В. Поттосин, ed. (2001). Становление новосибирской школы программирования (мозаика воспоминаний) [Formation of the Novosibirsk school of programming (mosaic of memories)] (PDF) (in русский). Новосибирск: Институт систем информатики им. А. П. Ершова СО РАН. pp. 106–113.
  3. Dewar, Robert B. K.; Fisher Jr., Gerald A.; Schonberg, Edmond; Froelich, Robert; Bryant, Stephen; Goss, Clinton F.; Burke, Michael (November 1980). "The NYU Ada translator and interpreter". Proceeding of the ACM-SIGPLAN symposium on Ada programming language - SIGPLAN '80. Vol. 15. pp. 194–201. doi:10.1145/948632.948659. ISBN 0-89791-030-3. S2CID 10586359.
  4. SofTech Inc., Waltham, MA (1983-04-11). "Ada Compiler Validation Summary Report: NYU Ada/ED, Version 19.7 V-001". Archived from the original on June 7, 2017. Retrieved 2010-12-16.{{cite web}}: CS1 maint: multiple names: authors list (link)
  5. Python-Dev: SETL (was: Lukewarm about range literals)


अग्रिम पठन

  • Schwartz, Jacob T., "ईएसटी Theory as a Language for Program Specification and Programming". Courant Institute of Mathematical Sciencईएस, New York University, 1970.
  • Schwartz, Jacob T., "On Programming, An Interim Report on the सेट्ल Project", Computer Science Department, Courant Institute of Mathematical Sciencईएस, New York University (1973).
  • Schwartz, Jacob T., Dewar, R.B.K., Dubinsky, E., and Schonberg, E., Programming With ईएसटीs: An Introduction to सेट्ल, 1986. ISBN 0-387-96399-5.


बाहरी संबंध