रेक्स

Rexx (रिस्ट्रक्चर्ड एक्सटेंडेड एक्ज़ीक्यूटर) एक प्रोग्रामिंग लैंग्वेज है जो इंटरप्रेटर (कंप्यूटिंग) या संकलक हो सकती है। इसे आईबीएम में माइक काउलिशॉ द्वारा विकसित किया गया था। यह एक संरचित, उच्च स्तरीय प्रोग्रामिंग भाषा है जिसे सीखने और पढ़ने में आसानी के लिए डिज़ाइन किया गया है। कंप्यूटिंग प्लेटफॉर्म की एक विस्तृत श्रृंखला के लिए मालिकाना और खुला स्रोत सॉफ्टवेयर Rexx दुभाषिया (कंप्यूटिंग) मौजूद है; आईबीएम मेनफ़्रेम कंप्यूटर के लिए कंपाइलर मौजूद हैं। Rexx एक पूर्ण भाषा है जिसका उपयोग स्क्रिप्टिंग भाषा, मैक्रो (कंप्यूटर विज्ञान) भाषा और अनुप्रयोग विकास भाषा के रूप में किया जा सकता है। इसका उपयोग अक्सर डेटा और पाठ को संसाधित करने और रिपोर्ट तैयार करने के लिए किया जाता है; पर्ल के साथ इन समानताओं का मतलब है कि रेक्स कॉमन गेटवे इंटरफ़ेस (सीजीआई) प्रोग्रामिंग में अच्छा काम करता है और यह वास्तव में इस उद्देश्य के लिए उपयोग किया जाता है। कुछ ऑपरेटिंग सिस्टम में Rexx प्राथमिक स्क्रिप्टिंग भाषा है, उदा। OS/2, MVS, VM (ऑपरेटिंग सिस्टम), AmigaOS, और SPF/PC, XEDIT#PC और Unix रूपांतरों, The Hessling Editor और ZOC (सॉफ़्टवेयर) जैसे कुछ अन्य सॉफ़्टवेयर में आंतरिक मैक्रो भाषा के रूप में भी उपयोग किया जाता है। टर्मिनल एमुलेटर। इसके अतिरिक्त, Rexx भाषा का उपयोग किसी भी प्रोग्राम में स्क्रिप्टिंग और मैक्रोज़ के लिए किया जा सकता है जो Windows स्क्रिप्टिंग होस्ट ActiveX भाषा का अंकन भाषाओं (जैसे VBScript और JScript) का उपयोग करता है यदि Rexx इंजनों में से एक स्थापित है।

Rexx को VM/SP रिलीज 3 ऑन अप, TSO/E वर्जन 2 ऑन अप, OS/2 (1.3 और बाद में, जहां इसे आधिकारिक तौर पर प्रोसीजर्स लैंग्वेज/2 नाम दिया गया है), AmigaOS वर्जन 2 ऑन अप, PC DOS (PC DOS) के साथ आपूर्ति की जाती है। 7.0|7.0 या PC DOS 2000), ArcaOS, और Windows NT 4.0 (संसाधन किट: रेजिना)। CMS के लिए REXX स्क्रिप्ट फ़ाइल प्रकार EXEC को EXEC और EXEC2 के साथ साझा करती है, और स्क्रिप्ट की पहली पंक्ति उपयोग किए जाने वाले दुभाषिया को निर्दिष्ट करती है। MVS के लिए REXX स्क्रिप्ट्स हो सकती हैं निम्न स्तर के क्वालीफायर EXEC द्वारा पहचाना जा सकता है या हो सकता है संदर्भ और पहली पंक्ति से पहचाना जाना चाहिए। OS/2 के लिए REXX स्क्रिप्ट फ़ाइल नाम एक्सटेंशन .cmd को अन्य स्क्रिप्टिंग भाषाओं के साथ साझा करती है, और स्क्रिप्ट की पहली पंक्ति उपयोग किए जाने वाले दुभाषिया को निर्दिष्ट करती है। REXX-जागरूक अनुप्रयोगों के लिए REXX मैक्रोज़ एप्लिकेशन द्वारा निर्धारित एक्सटेंशन का उपयोग करते हैं। 1980 के दशक के उत्तरार्ध में, Rexx आईबीएम सिस्टम एप्लीकेशन आर्किटेक्चर के लिए सामान्य स्क्रिप्टिंग भाषा बन गई, जहाँ इसका नाम बदलकर SAA प्रोसीजर लैंग्वेज REXX कर दिया गया।

CMS EXEC के लिए उपयोग की जाने वाली CMS फ़ाइल प्रकार के लिए एक Rexx स्क्रिप्ट या कमांड को कभी-कभी EXEC के रूप में संदर्भित किया जाता है, ईएक्सईसी 2 और CP/CMS पर REXX स्क्रिप्ट और z/VM के माध्यम से VM/370।

सुविधाएँ
Rexx में निम्नलिखित विशेषताएं और विशेषताएं हैं:


 * सरल वाक्य रचना
 * कई वातावरणों में कमांड को रूट करने की क्षमता
 * एक विशिष्ट आह्वान वातावरण से जुड़े कार्यों, प्रक्रियाओं और आदेशों का समर्थन करने की क्षमता।
 * एक बिल्ट-इन स्टैक, यदि कोई हो तो होस्ट स्टैक के साथ इंटरऑपरेट करने की क्षमता के साथ।


 * छोटे निर्देश सेट में सिर्फ दो दर्जन निर्देश होते हैं
 * फ्री-फॉर्म भाषा सिंटैक्स
 * चर नाम सहित केस-असंवेदनशील टोकन
 * वर्ण स्ट्रिंग आधार
 * टाइप सिस्टम # डायनामिक टाइपिंग, कोई घोषणा नहीं
 * स्थानीय संदर्भ को छोड़कर कोई आरक्षित शब्द नहीं
 * फ़ाइल सुविधाएं शामिल नहीं हैं
 * मनमाना-सटीक अंकगणित
 * दशमलव अंकगणित, तैरनेवाला स्थल
 * अंतर्निहित कार्यों का एक समृद्ध चयन, विशेष रूप से स्ट्रिंग और वर्ड प्रोसेसिंग
 * स्वचालित भंडारण प्रबंधन
 * क्रैश सुरक्षा
 * सामग्री पता करने योग्य डेटा संरचनाएं
 * साहचर्य सरणियाँ
 * सिस्टम कमांड और सुविधाओं तक सीधी पहुंच
 * आसान एरर-हैंडलिंग, और बिल्ट-इन ट्रेसिंग और डिबगर
 * कुछ कृत्रिम सीमाएँ
 * सरलीकृत I/O सुविधाएं
 * अपरंपरागत ऑपरेटरों
 * विशिष्ट कार्यान्वयन को छोड़कर केवल आंशिक रूप से यूनिक्स शैली कमांड लाइन पैरामीटर का समर्थन करता है
 * विशिष्ट कार्यान्वयनों को छोड़कर, भाषा के हिस्से के रूप में कोई बुनियादी टर्मिनल नियंत्रण प्रदान नहीं करता है
 * विशिष्ट कार्यान्वयनों को छोड़कर बाहरी पुस्तकालयों से कार्यों और सबरूटीन्स को शामिल करने का कोई सामान्य तरीका प्रदान नहीं करता है

Rexx में सिर्फ तेईस हैं, मोटे तौर पर स्व-स्पष्ट, निर्देश (जैसे,  , तथा  ) न्यूनतम विराम चिह्न और स्वरूपण आवश्यकताओं के साथ। यह अनिवार्य रूप से केवल एक डेटा-प्रकार, वर्ण स्ट्रिंग के साथ एक लगभग मुक्त रूप वाली भाषा है; इस दर्शन का अर्थ है कि सभी डेटा दृश्यमान (प्रतीकात्मक) हैं और डिबगिंग और ट्रेसिंग सरल हैं।

Rexx का सिंटैक्स PL/I के समान दिखता है, लेकिन इसमें कम संकेत हैं; इससे (कार्यक्रम द्वारा) पार्स करना कठिन हो जाता है, लेकिन उन मामलों को छोड़कर उपयोग करना आसान हो जाता है, जहां पीएल/आई की आदतें आश्चर्य का कारण बन सकती हैं। REXX डिजाइन लक्ष्यों में से एक कम से कम विस्मय का सिद्धांत था।

1990 से पहले
Rexx को 20 मार्च 1979 और मध्य 1982 के बीच आईबीएम के माइक कोविलिशॉ द्वारा 'स्वयं-समय' परियोजना के रूप में असेंबली भाषा में डिजाइन और कार्यान्वित किया गया था, मूल रूप से EXEC और EXEC 2 भाषाओं को बदलने के लिए एक स्क्रिप्टिंग प्रोग्रामिंग भाषा के रूप में। इसे किसी भी सिस्टम के लिए मैक्रो (कंप्यूटर साइंस) या स्क्रिप्टिंग भाषा के रूप में डिजाइन किया गया था। जैसे, Rexx को Tcl और Python (प्रोग्रामिंग लैंग्वेज) का अग्रदूत माना जाता है। Rexx का उद्देश्य इसके निर्माता द्वारा पायथन (प्रोग्रामिंग भाषा) का एक सरलीकृत और सीखने में आसान संस्करण होना भी था। हालाँकि, PL/I से कुछ मतभेद अनजाने में हो सकते हैं।

इसे पहली बार 1981 में ह्यूस्टन, टेक्सास में SHARE 56 सम्मेलन में सार्वजनिक रूप से वर्णित किया गया था। जहां ग्राहकों की प्रतिक्रिया, एसएलएसी राष्ट्रीय त्वरक प्रयोगशाला के टेड जॉनस्टन द्वारा समर्थित, इसे 1982 में आईबीएम उत्पाद के रूप में भेज दिया गया।

इन वर्षों में आईबीएम ने अपने लगभग सभी ऑपरेटिंग सिस्टम (वीएम (ऑपरेटिंग सिस्टम) | वीएम/सीएमएस, एमवीएस | एमवीएस टीएसओ/ई, आईबीएम आई, वीएसई (ऑपरेटिंग सिस्टम) | वीएसई/ईएसए, आईबीएम एआईएक्स, पीसी डॉस, में रेक्स को शामिल किया। और OS/2), और नोवेल नेटवेयर, माइक्रोसॉफ़्ट विंडोज़, जावा (प्रोग्रामिंग भाषा) और लिनक्स के लिए वर्जन उपलब्ध कराया है।

पहला गैर-आईबीएम संस्करण 1984/5 में चार्ल्स डेनी द्वारा पीसी डॉस के लिए लिखा गया था और मैन्सफील्ड सॉफ्टवेयर ग्रुप (1986 में केविन जे. केर्नी द्वारा स्थापित) द्वारा विपणन किया गया। 1987 में लुंडिन और वुड्रूफ़ द्वारा सीएमएस के लिए लिखा गया पहला संकलक संस्करण सामने आया। अटारी, अमिगाओएस, यूनिक्स (कई संस्करण), सोलारिस (ऑपरेटिंग सिस्टम), डिजिटल उपकरण निगम, माइक्रोसॉफ्ट विंडोज, विंडोज सीई, जेब में रखने लायक कंप्यूटर, डॉस, पाम ओएस, क्यूएनएक्स, ओएस/2, लिनक्स, BeOS के लिए अन्य संस्करण भी विकसित किए गए हैं।, EPOC32/सिम्बियन, AtheOS, OpenVMS, Apple Macintosh, और Mac OS X।   Rexx का Amiga संस्करण, जिसे ARxx कहा जाता है, को AmigaOS 2 के साथ शामिल किया गया था और यह स्क्रिप्टिंग के साथ-साथ एप्लिकेशन नियंत्रण के लिए लोकप्रिय था। कई Amiga अनुप्रयोगों में एक ARexx पोर्ट बनाया गया है जो Rexx से एप्लिकेशन को नियंत्रित करने की अनुमति देता है। कई चल रहे अनुप्रयोगों को नियंत्रित करने के लिए एक एकल Rexx स्क्रिप्ट विभिन्न Rexx बंदरगाहों के बीच भी स्विच कर सकती है।

1990 से वर्तमान
1990 में, SLAC की कैथी डैगर ने पहली स्वतंत्र Rexx संगोष्ठी का आयोजन किया, जिसके कारण REXX लैंग्वेज एसोसिएशन का गठन हुआ। संगोष्ठी प्रतिवर्ष आयोजित की जाती हैं।

Rexx के कई फ्रीवेयर संस्करण उपलब्ध हैं। 1992 में, दो सबसे व्यापक रूप से उपयोग किए जाने वाले ओपन-सोर्स सॉफ़्टवेयर | ओपन-सोर्स पोर्ट दिखाई दिए: यूनिक्स के लिए इयान कोलियर का REXX/imc और एंडर्स क्रिस्टेंसन का रेजिना (बाद में मार्क हेस्लिंग द्वारा अपनाया गया) विंडोज और यूनिक्स के लिए। BREXX WinCE और पॉकेट पीसी प्लेटफॉर्म के लिए अच्छी तरह से जाना जाता है, और इसे VM/370 और MVS में बैक-पोर्ट किया गया है।

OS/2 में Watcom VX-REXX का विजुअल डेवलपमेंट सिस्टम है। हॉकवेयर की एक अन्य बोली विज़प्रो रेक्स थी।

किलोवाट द्वारा पोर्टेबल Rexx और Quercus द्वारा व्यक्तिगत Rexx दो Rexx इंटरप्रेटर हैं जिन्हें DOS के लिए डिज़ाइन किया गया है और कमांड प्रॉम्प्ट का उपयोग करके विंडोज के तहत भी चलाया जा सकता है। 1990 के दशक के मध्य से, Rexx के दो नए संस्करण सामने आए हैं:


 * NetRexx: जावा स्रोत कोड के माध्यम से जावा (प्रोग्रामिंग भाषा) बाइट कोड को संकलित करता है; इसमें कोई भी आरक्षित कीवर्ड नहीं है, और जावा ऑब्जेक्ट मॉडल का उपयोग करता है, और इसलिए आमतौर पर 'क्लासिक' Rexx के साथ ऊपर-संगत नहीं होता है।
 * ऑब्जेक्ट REXX: Rexx का एक वस्तु के उन्मुख आम तौर पर ऊपर की ओर-संगत संस्करण।

1996 में American National Standards Institute (ANSI) ने Rexx के लिए एक मानक प्रकाशित किया: ANSI X3.274–1996 सूचना प्रौद्योगिकी - प्रोग्रामिंग भाषा REXX। 1985 से Rexx पर दो दर्जन से अधिक पुस्तकें प्रकाशित हो चुकी हैं।

Rexx ने 20 मार्च 2004 को अपनी 25वीं वर्षगांठ मनाई, जिसे मई 2004 में जर्मनी के बॉबलिंगेन में REXX लैंग्वेज एसोसिएशन के 15वें अंतर्राष्ट्रीय REXX संगोष्ठी में मनाया गया।

12 अक्टूबर 2004 को, आईबीएम ने सामान्य सार्वजनिक लाइसेंस के तहत अपने ऑब्जेक्ट REXX कार्यान्वयन के स्रोतों को जारी करने की अपनी योजना की घोषणा की। ऑब्जेक्ट REXX के हाल के रिलीज़ में Rexx भाषा के इस संस्करण को लागू करने वाला ActiveX Windows विंडोज स्क्रिप्टिंग होस्टWSH) स्क्रिप्टिंग इंजन शामिल है।

22 फरवरी, 2005 को ओपन ऑब्जेक्ट रेक्स (ooRexx) की पहली सार्वजनिक रिलीज की घोषणा की गई। इस उत्पाद में एक WSH स्क्रिप्टिंग इंजन है जो Windows ऑपरेटिंग सिस्टम और Rexx के साथ एप्लिकेशन को उसी तरह से प्रोग्रामिंग करने की अनुमति देता है जिसमें Visual Basic और JScript को डिफ़ॉल्ट WSH इंस्टॉलेशन और पर्ल, Tcl, Python (प्रोग्रामिंग लैंग्वेज) थर्ड-पार्टी द्वारा लागू किया जाता है। स्क्रिप्टिंग इंजन।

REXX को TIOBE इंडेक्स में शीर्ष 100 में शामिल पचास भाषाओं में से एक के रूप में सूचीबद्ध किया गया था जो शीर्ष 50 से संबंधित नहीं थी। 2019 में, 30वीं रेक्स लैंग्वेज एसोसिएशन सिम्पोजियम ने रेक्स की 40वीं वर्षगांठ मनाई। संगोष्ठी हर्सले, इंग्लैंड में आयोजित की गई थी, जहां Rexx को पहली बार डिजाइन और कार्यान्वित किया गया था।

टूलकिट
Rexx/Tk, ग्राफिक्स के लिए एक टूलकिट है जिसका उपयोग Rexx प्रोग्राम्स में Tcl/Tk के रूप में व्यापक रूप से उपलब्ध है।

विंडोज के लिए एक Rexx IDE, RxxxEd विकसित किया गया है। नेटवर्क संचार के साथ-साथ रेजिना रेक्स के अन्य ऐड-ऑन और कार्यान्वयन के लिए RxSock विकसित किया गया है, और Windows कमांड लाइन के लिए एक Rexx दुभाषिया विंडोज के विभिन्न संस्करणों के लिए अधिकांश संसाधन किटों में आपूर्ति की जाती है और उन सभी के साथ-साथ काम करती है करने योग्य।

वर्तनी और पूंजीकरण
मूल रूप से भाषा को Rex (Reformed Executor) कहा जाता था; अतिरिक्त X को अन्य उत्पादों के नामों के साथ टकराव से बचने के लिए जोड़ा गया था। REX मूल रूप से सभी अपरकेस था क्योंकि मेनफ्रेम कोड अपरकेस ओरिएंटेड था। उन दिनों की शैली में ऑल-कैप नाम होना था, आंशिक रूप से क्योंकि लगभग सभी कोड अभी भी ऑल-कैप थे। उत्पाद के लिए यह REXX बन गया, और माइक काउलीशॉ की पुस्तक के दोनों संस्करण ऑल-कैप का उपयोग करते हैं। 1984 में सिस्टम उत्पाद के लिए रीस्ट्रक्चर्ड एक्सटेंडेड एक्ज़ीक्यूटर के विस्तार का उपयोग किया गया था।

लूपिंग
Rexx में लूप कंट्रोल स्ट्रक्चर a से शुरू होता है  और एक के साथ समाप्त होता है   लेकिन कई किस्मों में आता है। NetRexx कीवर्ड का उपयोग करता है   के बजाय   लूपिंग के लिए, जबकि ooRexx व्यवहार करता है   तथा   लूपिंग करते समय समकक्ष के रूप में।

सशर्त पाश
Rexx किसी स्थिति का परीक्षण करने से पहले या के बाद  निर्देशों की सूची निष्पादित की जाती है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> जबकि [हालत] [निर्देश] समाप्त 

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> [शर्त] तक करो [निर्देश] समाप्त 

दोहराए जाने वाले लूप्स
अधिकांश भाषाओं की तरह, Rexx एक इंडेक्स वेरिएबल को बढ़ाते समय लूप कर सकता है और एक सीमा तक पहुंचने पर रुक सकता है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अनुक्रमणिका करें = प्रारंभ [सीमित करने के लिए] [वृद्धि द्वारा] [गिनती के लिए] [निर्देश] समाप्त 

वेतन वृद्धि को छोड़ा जा सकता है और 1 के लिए डिफॉल्ट किया जा सकता है। सीमा को भी छोड़ा जा सकता है, जिससे लूप हमेशा के लिए जारी रहता है।

Rexx गिने हुए लूप की अनुमति देता है, जहां लूप की शुरुआत में एक एक्सप्रेशन की गणना की जाती है और लूप के भीतर के निर्देशों को कई बार निष्पादित किया जाता है: <वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अभिव्यक्ति करो [निर्देश] समाप्त 

कार्यक्रम समाप्त होने तक रेक्स भी लूप कर सकता है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> हमेशा के लिए करो [निर्देश] समाप्त 

के साथ एक प्रोग्राम वर्तमान लूप से बाहर हो सकता है  निर्देश, जो a से बाहर निकलने का सामान्य तरीका है   लूप, या इसके साथ शॉर्ट-सर्किट कर सकते हैं   निर्देश।

संयुक्त लूप्स
PL/I की तरह, Rexx सशर्त और दोहराए जाने वाले दोनों तत्वों को एक ही लूप में संयोजित करने की अनुमति देता है: <वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अनुक्रमणिका करें = प्रारंभ [सीमित करने के लिए] [वृद्धि द्वारा] [गिनती के लिए] [जबकि स्थिति] [निर्देश] समाप्त  <वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अभिव्यक्ति करो [शर्त तक] [निर्देश] समाप्त 

सशर्त
के साथ परीक्षण की स्थिति :

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अगर [शर्त] तो करना [निर्देश] समाप्त वरना करना [निर्देश] समाप्त   ई> खंड वैकल्पिक है।

एकल निर्देशों के लिए,  तथा   छोड़ा भी जा सकता है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> अगर [शर्त] तो [निर्देश] वरना [निर्देश] 

इंडेंटेशन वैकल्पिक है, लेकिन यह पठनीयता में सुधार करने में मदद करता है।

कई स्थितियों के लिए परीक्षण
Rexx का स्विच स्टेटमेंट है, जैसे PL/I से प्राप्त कई अन्य निर्माण। CASE के कुछ कार्यान्वयनों की तरह अन्य गतिशील भाषाओं में निर्माण होता है, Rexx's  खंड पूरी शर्तें निर्दिष्ट करते हैं, जो एक दूसरे से संबंधित होने की आवश्यकता नहीं है। उसमें, वे अधिक के कैस्केड सेट की तरह हैं   कोड की तुलना में वे सी या जावा की तरह हैं   बयान।

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> चुनते हैं जब [हालत] तब [निर्देश] या एनओपी जब [हालत] तब करना [निर्देश] या एनओपी समाप्त अन्यथा [निर्देश] या एनओपी समाप्त   e> निर्देश कोई ऑपरेशन नहीं करता है, और इसका उपयोग तब किया जाता है जब प्रोग्रामर कुछ भी नहीं करना चाहता है जहां एक या अधिक निर्देशों की आवश्यकता होती है।

अन्यथा खंड वैकल्पिक है। यदि छोड़ दिया जाता है और कोई WHEN शर्तें पूरी नहीं होती हैं, तो SYNTAX की स्थिति बढ़ जाती है।

सरल चर
Rexx में वेरिएबल्स टाइपलेस हैं, और शुरुआत में अपर केस में उनके नाम के रूप में मूल्यांकन किया जाता है। इस प्रकार कार्यक्रम में इसके उपयोग के साथ एक चर का प्रकार भिन्न हो सकता है:

<वाक्यविन्यास लैंग = REXX> नमस्ते कहो /* => नमस्कार */ नमस्ते = 25 नमस्ते कहो /* => 25 */ हैलो = 5 + 3 कहो हैलो कहें /* => कहें 5 + 3 */ व्याख्या हैलो /* => 8 */ ड्रॉप हैलो नमस्ते कहो /* => नमस्कार */ 

यौगिक चर
कई अन्य प्रोग्रामिंग भाषाओं के विपरीत, क्लासिक रेक्स के पास संख्यात्मक सूचकांक द्वारा संबोधित चर के सरणियों के लिए कोई प्रत्यक्ष समर्थन नहीं है। इसके बजाय यह यौगिक चर प्रदान करता है। एक मिश्रित चर में एक तना होता है जिसके बाद एक पूंछ होती है। ए । (डॉट) का उपयोग तने को पूंछ से जोड़ने के लिए किया जाता है। यदि उपयोग की जाने वाली पूंछ संख्यात्मक हैं, तो सरणी के समान प्रभाव उत्पन्न करना आसान है।

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> क्या मैं = 1 से 10 स्टेम.आई = 10 - आई समाप्त 

बाद में निम्न मान वाले निम्न चर मौजूद हैं: ...

सरणियों के विपरीत, स्टेम चर के सूचकांक के लिए पूर्णांक मान होना आवश्यक नहीं है। उदाहरण के लिए, निम्न कोड मान्य है:

<वाक्यविन्यास लैंग = REXX> मैं = 'सोमवार' स्टेम.आई = 2 

Rexx में स्टेम के लिए डिफ़ॉल्ट मान सेट करना भी संभव है।

<वाक्यविन्यास लैंग = REXX> तना। = 'अज्ञात' स्टेम.1 = 'यूएसए' स्टेम.44 = 'यूके' स्टेम.33 = 'फ्रांस' 

इन कार्यों के बाद कार्यकाल  उत्पादन करेगा.

DROP स्टेटमेंट से पूरे तने को भी मिटाया जा सकता है।

<वाक्यविन्यास लैंग = REXX> ड्रॉप तना। 

यह पहले से सेट किए गए किसी भी डिफ़ॉल्ट मान को हटाने का प्रभाव भी रखता है।

सम्मेलन द्वारा (और भाषा के हिस्से के रूप में नहीं) यौगिक  अक्सर एक स्टेम में कितने आइटम हैं इसका ट्रैक रखने के लिए प्रयोग किया जाता है, उदाहरण के लिए सूची में एक शब्द जोड़ने की प्रक्रिया को इस तरह कोडित किया जा सकता है:

<वाक्यविन्यास लैंग = REXX> add_word: प्रक्रिया शब्दकोश को उजागर करती है। पार्स आर्ग डब्ल्यू एन = शब्दकोश.0 + 1 डिक्शनरी.एन = डब्ल्यू शब्दकोश.0 = एन वापसी 

मिश्रित चर के पुच्छ में अनेक तत्वों का होना भी संभव है। उदाहरण के लिए:

<वाक्यविन्यास लैंग = REXX> एम = 'जुलाई' डी = 15 वाई = 2005 day.y.m.d = 'शुक्रवार' </वाक्यविन्यास हाइलाइट>

बहु-आयामी सरणी के प्रभाव को प्रदान करने के लिए एकाधिक संख्यात्मक पूंछ तत्वों का उपयोग किया जा सकता है।

Rexx यौगिक चर के समान सुविधाएँ कई अन्य भाषाओं में पाई जाती हैं (AWK प्रोग्रामिंग भाषा में साहचर्य सरणियों सहित, पर्ल में हैश टेबल और जावा (प्रोग्रामिंग भाषा) में हैशटेबल्स)। इनमें से अधिकतर भाषाएं इस तरह के निर्माण के सभी चाबियों (या Rexx शर्तों में पूंछ) पर पुनरावृति करने के लिए एक निर्देश प्रदान करती हैं, लेकिन क्लासिक Rexx में इसकी कमी है। इसके बजाय पूंछ मूल्यों की सहायक सूचियों को उपयुक्त रखना आवश्यक है। उदाहरण के लिए, किसी प्रोग्राम में शब्दों की गिनती करने के लिए किसी शब्द की प्रत्येक घटना को रिकॉर्ड करने के लिए निम्नलिखित प्रक्रिया का उपयोग किया जा सकता है।

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> add_word: प्रक्रिया एक्सपोज़ गिनती। शब्द सूची पार्स आर्ग डब्ल्यू। काउंट.डब्ल्यू = काउंट.डब्ल्यू + 1 /* काउंट मान लें। 0 */ पर सेट किया गया है अगर गिनती.w = 1 तो word_list = word_list w वापसी </वाक्यविन्यास हाइलाइट>

और फिर बाद में:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> क्या मैं = 1 शब्दों के लिए (word_list) डब्ल्यू = शब्द (शब्द_सूची, मैं) डब्ल्यू काउंट डब्ल्यू कहें समाप्त </वाक्यविन्यास हाइलाइट>

कुछ स्पष्टता की कीमत पर इन तकनीकों को एक ही तने में संयोजित करना संभव है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> add_word: प्रक्रिया शब्दकोश को उजागर करती है। पार्स आर्ग डब्ल्यू। डिक्शनरी.डब्ल्यू = डिक्शनरी.डब्ल्यू + 1 अगर Dictionary.w = 1 /* डिक्शनरी मान लें। = 0 */ फिर करो एन = शब्दकोश.0 + 1 डिक्शनरी.एन = डब्ल्यू शब्दकोश.0 = एन समाप्त वापसी </वाक्यविन्यास हाइलाइट>

और बाद में:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> do i = 1 to dictionary.0 डब्ल्यू = डिक्शनरी.आई कहो मैं w dictionary.w समाप्त </वाक्यविन्यास हाइलाइट>

Rexx यहां कोई सुरक्षा जाल प्रदान नहीं करता है, इसलिए यदि कोई एक शब्द पूर्ण संख्या से कम होता है  यह तकनीक रहस्यमय तरीके से विफल हो जाएगी।

IBM के ऑब्जेक्ट REXX सहित Rexx के हाल के कार्यान्वयन और ooRexx जैसे ओपन सोर्स कार्यान्वयन में स्टेम के मान पर पुनरावृत्ति को सरल बनाने के लिए एक नई भाषा का निर्माण शामिल है, या किसी अन्य संग्रह वस्तु जैसे कि सरणी, तालिका या सूची पर।

<वाक्यविन्यास हाइलाइट लैंग = ooREXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> क्या मैं तने के ऊपर हूं। कहो मैं '-->' स्टेम.आई समाप्त </वाक्यविन्यास हाइलाइट>

पार्स
ई> निर्देश विशेष रूप से शक्तिशाली है; यह कुछ उपयोगी स्ट्रिंग-हैंडलिंग फ़ंक्शंस को जोड़ती है। इसका सिंटैक्स है:

<वाक्यविन्यास लैंग = REXX> पार्स [ऊपरी] मूल [टेम्पलेट] </वाक्यविन्यास हाइलाइट>

जहां मूल स्रोत निर्दिष्ट करता है:


 * (तर्क, कमांड लाइन के शीर्ष स्तर की पूंछ पर)
 * (मानक इनपुट, जैसे कीबोर्ड)
 * (Rexx डेटा कतार या मानक इनपुट)
 * (कार्यक्रम को कैसे क्रियान्वित किया गया, इसकी जानकारी)
 * (एक अभिव्यक्ति) : कीवर्ड   यह इंगित करना आवश्यक है कि अभिव्यक्ति कहाँ समाप्त होती है
 * (एक परिवर्तनीय)
 * (संस्करण/रिलीज़ नंबर)

और टेम्पलेट हो सकता है:


 * चर की सूची
 * स्तंभ संख्या सीमांकक
 * शाब्दिक सीमांकक

वैकल्पिक है; यदि निर्दिष्ट किया गया है, तो पार्स करने से पहले डेटा अपर केस में परिवर्तित हो जाएगा।

उदाहरण:

टेम्पलेट के रूप में चरों की सूची का उपयोग करना

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> myVar = जॉन स्मिथ पार्स var myVar firstName lastName पहला नाम है: पहला नाम कहें अंतिम नाम है: lastName </वाक्यविन्यास हाइलाइट>

निम्नलिखित प्रदर्शित करता है:

<पूर्व> पहला नाम है: जॉन अंतिम नाम है: स्मिथ </पूर्व>

टेम्पलेट के रूप में सीमांकक का उपयोग करना:

<वाक्यविन्यास लैंग = REXX> myVar = स्मिथ, जॉन पार्स var myVar LastName, FirstName पहला नाम है: पहला नाम कहें अंतिम नाम है: lastName </वाक्यविन्यास हाइलाइट>

निम्नलिखित भी प्रदर्शित करता है:

<पूर्व> पहला नाम है: जॉन अंतिम नाम है: स्मिथ </पूर्व>

स्तंभ संख्या सीमांकक का उपयोग करना:

<वाक्यविन्यास लैंग = REXX> मायवर = (202) 123-1234 पार्स var MyVar 2 एरियाकोड 5 7 सबनंबर कहते हैं एरिया कोड है: एरियाकोड कहें सब्सक्राइबर नंबर है: सबनंबर </वाक्यविन्यास हाइलाइट>

निम्नलिखित प्रदर्शित करता है:

<पूर्व> क्षेत्र कोड है: 202 सब्सक्राइबर संख्या है: 123-1234 </पूर्व>

एक टेम्पलेट चर, शाब्दिक सीमांकक और स्तंभ संख्या सीमांकक के संयोजन का उपयोग कर सकता है।

व्याख्या
INTERPRET निर्देश अपने तर्क का मूल्यांकन करता है और इसके मान को Rexx कथन के रूप में मानता है। कभी-कभी INTERPRET किसी कार्य को करने का सबसे स्पष्ट तरीका है, लेकिन इसका उपयोग अक्सर वहाँ किया जाता है जहाँ स्पष्ट कोड का उपयोग करना संभव होता है, जैसे,.

INTERPRET के अन्य उपयोग Rexx's (दशमलव) मनमाने ढंग से सटीक अंकगणित (फ़ज़ी तुलनाओं सहित), प्रोग्रामेटिक टेम्प्लेट, स्टेम्ड एरेज़ और विरल सरणियों के साथ PARSE स्टेटमेंट का उपयोग हैं। <वाक्यविन्यास लैंग = REXX> /* वर्ग(4) के साथ व्याख्या प्रदर्शित करें => 16 */ एक्स = 'वर्ग' व्याख्या 'कहो' एक्स || '(4); बाहर निकलना' स्क्वायर: वापसी तर्क (1) ** 2 </वाक्यविन्यास हाइलाइट>

यह 16 प्रदर्शित करता है और बाहर निकलता है। क्योंकि Rexx में चर सामग्री स्ट्रिंग्स हैं, जिसमें एक्सपोनेंट और यहां तक ​​​​कि पूरे प्रोग्राम के साथ परिमेय संख्याएं शामिल हैं, Rexx स्ट्रिंग्स को मूल्यांकन किए गए भावों के रूप में व्याख्या करने की पेशकश करता है।

इस सुविधा का उपयोग फ़ंक्शन मापदंडों के रूप में कार्यों को पारित करने के लिए किया जा सकता है, जैसे कि इंटीग्रल की गणना करने के लिए SIN या COS को एक प्रक्रिया में पास करना।

Rexx ABS, DIGITS, MAX, MIN, SIGN, RANDOM जैसे केवल बुनियादी गणित कार्यों और बिट संचालन के साथ हेक्स प्लस बाइनरी रूपांतरणों का एक पूरा सेट प्रदान करता है। एसआईएन जैसे अधिक जटिल कार्यों को खरोंच से लागू किया गया था या तीसरे पक्ष के बाहरी पुस्तकालय (कंप्यूटिंग) से प्राप्त किया गया था। कुछ बाहरी पुस्तकालय, विशेष रूप से पारंपरिक भाषाओं में लागू किए गए, विस्तारित परिशुद्धता का समर्थन नहीं करते थे।

बाद के संस्करण (गैर-क्लासिक) समर्थन करते हैं  निर्माण। साथ में बिल्ट-इन फ़ंक्शन , CALL के कई मामलों के स्थान पर उपयोग किया जा सकता है. यह एक क्लासिक प्रोग्राम है:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> / * इनपुट निकास या इसी तरह से समाप्त * / हमेशा के लिए करो; लाइनिन की व्याख्या करें ; समाप्त </वाक्यविन्यास हाइलाइट>

थोड़ा और परिष्कृत रेक्स कैलकुलेटर:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> एक्स = 'छोड़ने के लिए अलविदा इनपुट' X = 'BYE' तक करें; व्याख्या 'कहो' एक्स; एक्स खींचो; समाप्त </वाक्यविन्यास हाइलाइट>

के लिए आशुलिपि है. वैसे ही,  के लिए आशुलिपि है.

INTERPRET निर्देश की शक्ति के अन्य उपयोग थे। वेलोर (सॉफ्टवेयर) पैकेज वस्तु उन्मुख कार्यकर्म वातावरण को लागू करने के लिए Rexx की व्याख्यात्मक क्षमता पर निर्भर था। टाइम मशीन नामक एक अप्रकाशित वेस्टिंगहाउस इलेक्ट्रिक (1886) उत्पाद में एक अन्य उपयोग पाया गया जो एक घातक त्रुटि के बाद पूरी तरह से ठीक होने में सक्षम था।

संख्यात्मक
<वाक्यविन्यास लैंग = REXX> अंक कहें फ़ज़  फॉर्म  /* => 9 0 वैज्ञानिक */ कहें 999999999+1 /* => 1.000000000E+9 */ संख्यात्मक अंक 10 /* केवल उपलब्ध स्मृति द्वारा सीमित */ कहें 999999999+1 /* => 1000000000 */

कहें 0.9999999999=1 /* => 0 (गलत) */ संख्यात्मक फ़ज़ 3 कहें 0.99999999=1 /* => 1 (सच) */ कहते हैं 0.99999999==1 /* => 0 (गलत) */

कहें 100*123456789 /* => 1.23456789E+10 */ संख्यात्मक रूप इंजीनियरिंग कहें 100*123456789 /* => 12.34567890E+9 */

कहें 53 // 7 /* => 4 (शेष विभाजन)*/ </वाक्यविन्यास हाइलाइट>

संकेत
सिग्नल निर्देश नियंत्रण के प्रवाह में असामान्य परिवर्तन के लिए अभिप्रेत है (अगला खंड देखें)। हालाँकि, इसका दुरुपयोग किया जा सकता है और अन्य भाषाओं में पाए जाने वाले GOTO स्टेटमेंट की तरह व्यवहार किया जा सकता है (हालाँकि यह सख्ती से समतुल्य नहीं है, क्योंकि यह लूप और अन्य निर्माणों को समाप्त करता है)। यह पढ़ने में मुश्किल कोड उत्पन्न कर सकता है।

त्रुटि से निपटने और अपवाद
Rexx में SIGNAL निर्देश का उपयोग करके त्रुटियों और अन्य अपवादों को रोकना और उनसे निपटना संभव है। सात सिस्टम कंडीशन हैं: एरर, फेल्योर, हॉल्ट, नोवैल्यू, नोट्रेडी, लॉस्टडिजिट्स और सिंटेक्स। स्रोत कोड में वांछित के रूप में प्रत्येक की हैंडलिंग को चालू और बंद किया जा सकता है।

उपयोगकर्ता द्वारा समाप्त किए जाने तक निम्न प्रोग्राम चलेगा:

<वाक्यविन्यास हाइलाइट लैंग = REXX शैली = पृष्ठभूमि-रंग: #ffffff; महत्वपूर्ण> रुकने का संकेत; ए = 1 करो ए कहो 100000 /* देरी से करें */ समाप्त समाप्त पड़ाव: कार्यक्रम उपयोगकर्ता द्वारा बंद कर दिया गया था बाहर निकलना </वाक्यविन्यास हाइलाइट>

A  कथन अपरिभाषित चरों के उपयोग को रोकता है, जो अन्यथा उनके मूल्य के रूप में अपना (अपर केस) नाम प्राप्त करेंगे। राज्य की परवाह किए बिना   हालत, एक चर की स्थिति हमेशा अंतर्निहित फ़ंक्शन के साथ जांची जा सकती है   परिभाषित चरों के लिए VAR लौटाना।   e> फ़ंक्शन का उपयोग a को ट्रिगर किए बिना वेरिएबल्स का मान प्राप्त करने के लिए किया जा सकता है   हालत, लेकिन इसका मुख्य उद्देश्य POSIX के समान env (शेल) चर को पढ़ना और सेट करना है   तथा.

शर्तें

 * सिस्टम कमांड से सकारात्मक आरसी
 * सिस्टम कमांड से सकारात्मक आरसी


 * सिस्टम कमांड के लिए नेगेटिव आरसी (जैसे कमांड मौजूद नहीं है)
 * सिस्टम कमांड के लिए नेगेटिव आरसी (जैसे कमांड मौजूद नहीं है)


 * असामान्य समाप्ति
 * असामान्य समाप्ति


 * एक अनसेट चर का संदर्भ दिया गया था
 * एक अनसेट चर का संदर्भ दिया गया था


 * इनपुट या आउटपुट त्रुटि (उदाहरण फ़ाइल के अंत से परे पढ़ने के प्रयास)
 * इनपुट या आउटपुट त्रुटि (उदाहरण फ़ाइल के अंत से परे पढ़ने के प्रयास)


 * अमान्य प्रोग्राम सिंटैक्स, या कुछ अन्य त्रुटि स्थिति
 * अमान्य प्रोग्राम सिंटैक्स, या कुछ अन्य त्रुटि स्थिति


 * महत्वपूर्ण अंक खो गए हैं (एएनएसआई रेक्स, टीआरएल दूसरे संस्करण में नहीं)
 * महत्वपूर्ण अंक खो गए हैं (एएनएसआई रेक्स, टीआरएल दूसरे संस्करण में नहीं)

जब किसी शर्त को संभाला जाता है, द   तथा   स्थिति को समझने के लिए सिस्टम चर का विश्लेषण किया जा सकता है। आरसी में रेक्स त्रुटि कोड होता है और एसआईजीएल में वह पंक्ति संख्या होती है जहां त्रुटि उत्पन्न हुई थी।

Rexx संस्करण 4 के साथ शुरू होने वाली स्थितियों को नाम मिल सकते हैं, और एक भी है  निर्माण। यह आसान है अगर बाहरी कार्य जरूरी नहीं हैं:

<वाक्यविन्यास लैंग = REXX> ChangeCodePage: कार्यविधि /* SIGNAL सेटिंग सुरक्षित करें */ सिंटैक्स नाम ChangeCodePage.Trap पर संकेत वापसी SysQueryProcessCodePage ChangeCodePage.Trap: OS/2 पर 1004 /* windows-1252 लौटाएं */ </वाक्यविन्यास हाइलाइट>

यह भी देखें

 * आईएसपीएफ
 * एक्सईडीआईटी
 * कंप्यूटर गोले की तुलना
 * प्रोग्रामिंग भाषाओं की तुलना

अग्रिम पठन

 * Callaway, Merrill. The ARexx Cookbook: A Tutorial Guide to the ARexx Language on the Commodore Amiga Personal Computer. Whitestone, 1992. ISBN 978-0963277305.
 * Callaway, Merrill. The Rexx Cookbook: A Tutorial Guide to the Rexx Language in OS/2 & Warp on the IBM Personal Computer. Whitestone, 1995. ISBN 0-9632773-4-0.
 * Cowlishaw, Michael. The Rexx Language: A Practical Approach to Programming. Prentice Hall, 1990. ISBN 0-13-780651-5.
 * Cowlishaw, Michael. The NetRexx Language. Prentice Hall, 1997. ISBN 0-13-806332-X.
 * Daney, Charles. Programming in REXX. McGraw-Hill, TX, 1990. ISBN 0-07-015305-1.
 * Ender, Tom. Object-Oriented Programming With Rexx. John Wiley & Sons, 1997. ISBN 0-471-11844-3.
 * Fosdick, Howard. Rexx Programmer's Reference. Wiley/Wrox, 2005. ISBN 0-7645-7996-7.
 * Gargiulo, Gabriel. REXX with OS/2, TSO, & CMS Features. MVS Training, 1999 (third edition 2004). ISBN 1-892559-03-X.
 * Goldberg, Gabriel and Smith, Philip H. The Rexx Handbook . McGraw-Hill, TX, 1992. ISBN 0-07-023682-8.
 * Goran, Richard K. REXX Reference Summary Handbook. CFS Nevada, Inc.,1997. ISBN 0-9639854-3-4.
 * IBM Redbooks. Implementing Rexx Support in Sdsf. Vervante, 2007. ISBN 0-7384-8914-X.
 * Kiesel, Peter C. Rexx: Advanced Techniques for Programmers. McGraw-Hill, TX, 1992. ISBN 0-07-034600-3.
 * Marco, Lou ISPF/REXX Development for Experienced Programmers. CBM Books, 1995. ISBN 1-878956-50-7
 * O'Hara, Robert P. and Gomberg, David Roos. Modern Programming Using Rexx. Prentice Hall, 1988. ISBN 0-13-597329-5.
 * Rudd, Anthony S. 'Practical Usage of TSO REXX'. CreateSpace, 2012. ISBN 978-1475097559.
 * Schindler, William. Down to Earth Rexx. Perfect Niche Software, 2000. ISBN 0-9677590-0-5.

इस पेज में लापता आंतरिक लिंक की सूची

 * दुभाषिया (कंप्यूटिंग)
 * ZOC (सॉफ्टवेयर)
 * वीएम (ऑपरेटिंग सिस्टम)
 * साहचर्य सरणी
 * सभा की भाषा
 * से
 * ऑब्जेक्ट रेक्स
 * टीआईओबीई सूचकांक
 * एडब्ल्यूके प्रोग्रामिंग भाषा
 * भाषा निर्माण
 * पुस्तकालय (कम्प्यूटिंग)
 * वीरता (सॉफ्टवेयर)
 * एनवी (खोल)
 * कंप्यूटर खोल की तुलना
 * XEDIT

बाहरी संबंध

 * Mike Cowlishaw's home page
 * REXX language page at IBM
 * REXX Language Association
 * Rexx programming language at Open Hub