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

From Vigyanwiki
(Created page with "{{Short description|Programming language}} {{Redirect|Setl|the indigenous location in Canada|Bridge River Rapids}} {{more citations needed|date=April 2017}} {{Infobox programm...")
 
No edit summary
Line 1: Line 1:
{{Short description|Programming language}}
{{Short description|Programming language}}
{{Redirect|Setl|the indigenous location in Canada|Bridge River Rapids}}
{{Redirect|एसईटीएल|कनाडा में स्वदेशी स्थान|ब्रिज रिवर रैपिड्स}}
{{more citations needed|date=April 2017}}
{{Infobox programming language
{{Infobox programming language
| logo                  =  
| logo                  =  
Line 18: Line 17:
}}
}}


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


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


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


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


== उदाहरण ==
== उदाहरण ==
2 से लेकर सभी अभाज्य संख्याएँ प्रिंट करें {{Var|N}}:
2 से लेकर {{Var|N}} तक सभी प्राइम नंबर प्रिंट करें :
  प्रिंट([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);
  print([n in [2..N] | forall m in {2..n - 1} | n mod m > 0]);
नोटेशन [[सूची समझ]] के समान है।
नोटेशन [[सूची समझ|लिस्ट कॉम्प्रिहेंशन]] के समान है।


एक तथ्यात्मक प्रक्रिया परिभाषा:
एक फ़ैक्टोरियल प्रोसीजर परिभाषा:
  प्रक्रिया भाज्य(एन); -- फैक्टोरियल एन की गणना करता है!
  procईडीure factorial(n); -- calculatईएस the factorial n!
   वापसी यदि n = 1 तो 1 अन्यथा n * भाज्य(n - 1) अंत यदि;
   return if n = 1 then 1 else n * factorial(n - 1) end if;
  अंत भाज्य;
  end factorial;


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


== उपयोग ==
== उपयोग ==
SETL का कार्यान्वयन DEC [[VAX]], IBM/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:
  | url = https://books.google.com/books?id=4pfbBwAAQBAJ&pg=PR6
  | url = https://books.google.com/books?id=4pfbBwAAQBAJ&pg=PR6
}}</ref>
}}</ref>
1970 के दशक में, SETL को [[BESM-6]], ES ईवीएम और अन्य रूसी कंप्यूटर सिस्टम में पोर्ट किया गया था।<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 63: Line 63:
  | language = ru
  | language = ru
}}</ref>
}}</ref>
SETL का उपयोग प्रोग्रामिंग भाषा Ada (प्रोग्रामिंग भाषा) के प्रारंभिक कार्यान्वयन के लिए किया गया था, जिसे NYU Ada/ED अनुवादक नाम दिया गया था।<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>{{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>
 




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


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


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


== संदर्भ ==
== संदर्भ ==
Line 79: Line 82:


== अग्रिम पठन ==
== अग्रिम पठन ==
* Schwartz, Jacob T., "Set Theory as a Language for Program Specification and Programming". Courant Institute of Mathematical Sciences, 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 SETL Project", Computer Science Department, Courant Institute of Mathematical Sciences, 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 Sets: An Introduction to SETL'', 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 SETL'' and other things]
* [http://www.settheory.com ''Programming in एसईटीएल'' and other things]
* [http://www.softwarepreservation.org/projects/SETL SETL Historical Sources Archive]
* [http://www.softwarepreservation.org/projects/SETL एसईटीएल Historical Sourcईएस Archive]


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

Revision as of 10:34, 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

एसईटीएल (ईएसटी लैंग्वेज) गणितीय सेट सिद्धांत पर आधारित एक बहुत ही उच्च स्तरीय प्रोग्रामिंग लैंग्वेज है। इसे मूल रूप से 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.


बाहरी संबंध