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

From Vigyanwiki
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.


बाहरी संबंध