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

सेट्ल (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, सन माइक्रोसिस्टम्स वर्कस्टेशन और अपोलो कंप्यूटर पर उपलब्ध था।

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

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

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

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

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

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

अग्रिम पठन

 * 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.

बाहरी संबंध

 * Official Website
 * Programming in सेट्ल and other things
 * सेट्ल Historical Sourcईएस Archive