ري أكس أكس

عودة للموسوعة
Icon Translate to Arabic.png
هذه الموضوعة بها ترجمة آلية يجب تحسينها أوإزالتها لأنها تخالف سياسات ويكيبيديا. (يوليو2016)

ظهر في عام 1979 ؛ قبل 32 عاماالمصممم ايك كاوليشا وMike Cowlishaw, المطور مايك كاوليشا وآى بى إم Mike Cowlishaw, IBMالإصدار المستقر ANSI X3.274 (1996 منذ 14 عام) قواعد الكتابة ديناميكي، جميع شيء يعتبر سلسلة (REXX الكلاسيكي) أوجسم (REX الجسم) التطبيقات الرئيسية VM/SP ثم بعده, TSO/E V2 ثم بعده, IBMNetRexx,[1] وObject REXX,وOpen Object وRexxو,[2]Regina ,[3] others اللهجاتObject REXX و، Open Object وRexx و، NetRexxتأثرت بـPL/I, وAlgol و، EXEC 2 أثرت فيNetRexx, وObject REXX و، Open Object وRexx REXX (المنفذ الممتد المعدل) هي لغة برمجة تفسير التي استحدثت في آي بي إم IBM. وهى لغة برمجة رفيعة المستوى منظمة التي صممت لتكون سهلة التفهم وسهلة القراءة على حد سواء. كلا من الملكية ومترجمين المصدر المفتوحة لREXX متاحة على نطاق واسع في مجال الحوسبة، والمترجمين المتاحين للحاسباات اي بي ام الكبيرة.

يستخدم Rexx على نطاق واسع كلغة جلوglue language، ولغة الماكروmacro، وغالبا ما تستخدم لمعالجة البيانات والنصوص توليد التقارير، وهذه أوجه التشابه مع بيرل Perl يعني حتى Rexx يعمل بشكل جيد في برمجة القابلة العمومية للمعبر (CGI) ويستخدم في الواقع لهذا الغرض. Rexx هي لغة برمجة النصوص المكتوبة في بعض أنظمة التشغيل، على سبيل المثال OS/2, MVS, VM, AmigaOS، وأيضا يستخدم كلغة ماكروداخلية في بعض البرامج الأخرى، مثل، KEDIT, THE، المحاكي الطرفي ZOC. بالإضافة إلى ذلك، يمكن استعمال لغة Rexx للبرمجة في برمجة النصوص ووحدات الماكروفي أي برنامج يستخدم برمجة ويندوز المضيفه، ولغة برمجة المشغلات أكتف أكس (مثلأً VBScript وJScript) لوتم تثبيت إحدى مشغلات ريكس Rexx (أنظر أدناه).

Rexx متوفر مع VM/SP إلى، الإصدار 2 من TSO/E ،إلى OS/2 (1.3 on up), وPC DOS (7.0 or 2000) وWindows NT 4.0 (الموارد Resource Kit: Regina). نصوص REXX لـ OS/2 ويندوز القائم على ان تي NT-based Windows لديه تمدد اسم الملف. cmdوالسطر الأول من النص يحدد نظام التشغيل الذي عليه النص.

المميزات

REXX لديها الخصائص والميزات التالية :

  • قواعد لغوية بسيطة
  • مجموعة صغيرة من التعليمات تحتوي على 23 تعليم
  • قواعد شكل حر
  • حالة الرموز الغير الحساسة، بما في ذلك أسماء المتغيرات
  • أسس سلسلة الأحرف
  • كتابة البيانات ديناميكياً، عدم وجود إعلانات
  • لا يوجد حدثات محفوظة، إلا في السياق المحلي
  • الدقة العددية التعسفية arbitrary numerical precision
  • الحساب العشري، الفاصلة العائمة floating-point
  • مجموعة غنية من الوظائف المضمنة، وخاصة السلسلة وتجهيز سلسلة ومعالجة الحدثات
  • إدارة التخزين التلقائي
  • حماية ضد التحطم
  • محتوى بنية هيكل البيانات المعنونة
  • المصفوفات الترابطية associative arrays
  • الوصول مباشرة لأوامر النظام والمرافق
  • معالجة الأخطاء البسيطة، ومعالجة العطل وتسليم الأخطاء متضمنة
  • قيود مصطنعة قليلة
  • تسهيلات I/O محددة
  • المشغلين غير تقليديين
  • جزئيا فقط يدعم معاملات خط أمر يونكس، إلا تطبيقات محددة
  • لا يوفر سيطرة على الطرف الأساسي كجزء من اللغة، إلا في تطبيقات محددة
  • لا يوفر أي وسيلة عامة لتضم الوظائف أوالوظائف الفرعية من المخطات الخارجية، باستثناء في تطبيقات محددة

REXX تحتوي فقط على 23 تعليمات بديهية عموماً (على سبيل المثال call وparse, وselect) مع الحد الأدنى من علامات الترقيم ومتطلبات التنسيق. وهى أساسية ولغة ذات شكل حر تقريبا مع نوع واحد فقط من البيانات، وسلسلة الأحرف، وهذه الفلسفة تعني حتى جميع البيانات مرئية (رمزية)، ومميزات تسليم الأخطاء وتعقب الخطأ مبسطة.

قواعد REXX مماثلة لـ PL/I، ولكن رموزها أقل، وهذا يجعلها أصعب في التحليل (حسب البرنامج) ولكن أسهل في الاستخدام، باستثناء الحالات التيقد يكون فيها سلوك PL/I قد يؤدي إلى مفاجآت.

التاريخ

REXX صمت ونفذت أولا، في لغة التجميع، كمشروع "لوقته "بين 20 مارس 1979 ومنتصف 1982 من قبل مايك كاوليشاوMike Cowlishaw من آي بي إم، أصلا كلغة برمجة نصية لتحل محل الغاتEXEC وEXEC 2.[4] وقد صممت لتكون لغة برمجة نصية أوماكرولأي نظام. على هذا النحو، تعتبر REXX سلفاً لـ Tcl وPython. وكان هدف REXX من قبل مؤلفها حتى تكون مبسطة وأسهل للتفهم نسخة من لغة البرمجة PL/I. ومع ذلك، بعض الاختلافات من PL/I قد تخدع الغافلين.

وقد وصفت لأول مرة للجمهور في مؤتمر شير 56 SHARE 56 في هيوستن، تكساس، في 1981 ،[5] حيث تفاعل العملاء، وأيدها تيد جونستون في SLAC، أدت إلي تضمينها على أنها منتج آي بي إم في عام 1982.

على مدى السنين، آي بي إم ضمنت REXX تقريبا في جميع نظم التشغيلها (VM/CMS وVM/GCS وMVS TSO/E وAS/400 وVSE/ESA وAIX, CICS/ESA وPC DOS, وOS/2,) واستحدثت إصدارات متوفرة ل نوفيل نت وار Novell NetWare، ويندوزWindows,، جافا Java، ولينوكسLinux.

تمت كتابة النسخة الأولية التي ليست من آي بي إم لـ PC DOS عن طريق تشارلز داني فيخمسة / 1984. والإصدار الأول للمترجم ظهر في عام 1987، خط لـ CMS بواسطة وندين وودروف. [6] وتم استحداث إصدارات أخرى أيضاً لـ Atari وAmigaOS وUnix (أشكال متعددة) وSolaris وDEC, Windows وWindows CE وPocket PC وDOS وPalm OS وQNX وOS/2 وLinux وBeOS وEPOC32 وAtheOS وOpenVMS وOpenEdition وAppleMacintosh, وMac OS X.[7]،

إصدار Amiga من REXX، يسمى ARexx وكان متضمناً مع 2 AmigaOS وكانت شعبية أبتداءً من البرمجة وكذلك مراقبة التطبيق. الكثير من تطبيقات أميغا لديها "منفذ ARexx" "ARexx port" متضمن فيهم مما يتيح السيطرة على التطبيق من Rexx. نص Rexx وحيد يمكنه التبديل بين منافذ Rexx المتنوعة من أجل السيطرة على الكثير من التطبيقات التي تعمل.

الكثير من إصدارات برامج REXX المجانية متاحة. وفي عام 1992، ظهري معظم المنافذ مفتوحة المصدر التي تستخدم على نطاق واسع : REXX/imc من إيان كولير ليونكس وريجينا Regina من اندرس كريستنسن (التي اعتمدت لاحقاً من قبل مارك هيسلينج Mark Hessling) لويندوز ولينكس. BREXX معروفة لـ WinCE وبرامج Pocket PC.

OS/2 لديه نظام بصري تطويري من واتكم Watcom VX-REXX وكتنت هناك لهجة أخرى VisPro REXX من هوكوير Hockware.

في عام 1996 نشر المعهد الوطني الأمريكي للمعايير (ANSI) مقياساً لREXX : ANSI X3.274–1996 "تكنولوجيا المعلومات -- لغة برمجة REXX". وقد تم نشر أكثر من أربعة وعشرون كتاباً في REXX منذ عام 1985.

منذ منتصف التسعينات، ظهر شكلين حديثين من REXX :

  • NetRexx—الذي ترجم رمز جافا بايت عن طريق شفرة مصدر جافا، وكان لا يوجد لديه حدثات محفوظة على الإطلاق وهذا، ويستخدم نموذج كائن جافا، وبالتالي فهي ليست عادة متوافقة تقريباً مع REXX الكلاسيكية.
  • كائن REXX—وهوتوجه جسمي عموماً إصدار متوافق معزز من REXX.

في عام 1990، نظمت كاثي داغر من SLAC أول ندوة مستقلة عن REXX، مما أدى إلى تشكيل رابطة لغة REXX. وتعقد ندوات سنويا.

إشارة REXX حدد عيدها ال25 في 20 مارس 2004، الذي احتفل به في بلوجين، بأمانيا في الندوة العالمية الخامسة عشر لرابطة لغة REXX ،في مايو2004.

يوم 12 أكتوبر 2004، أعربت آي بي إم خطتهم لإصدار مصادر تطبيق Object REXX تحت الرخصة العامة المشهجرة Common Public License.الإصدارات الأخيرة من Object REXX تحتوي على مشغل البرامج النصية ActiveX WSH لتطبيق هذا الإصدار من لغة Rexx.

في 22 فبراير 2005، تم الإعلان عن الإصدار الأول العام من كائن Rexxالمفتوح Open Object Rexx (ooRexx). يحتوي هذا المنتج على مشغل البرمجة النصية WSH الذي يسمح لبرمجة لنظام التشغيل ويندوز والتطبيقات بـ Rexx في نفس الشكل تطبيق مع Visual Basic وJava/J++بتثبيت WSH الافتراضي وبيرل ومشغلات البرمجة النصية ،Perl وTcl و.Python-third-party ملحق اسم الملف الافتراضي لنصوص ooRexxScript هو*.rxs.

يتم أيضا تثبيت سطر الأوامر مترجم Rexx مع ooRexx، ومن الممكن أيضا تشغيل برامج ooRexxScript من سطر الأوامر بواسطة الأمر CScript (WScript يمكن أيضا حتى يتم تشغيلها من سطر الأوامر) استناداً إلى مضيف برمجة ويندوز.

وقد تم تطوير A Rexx IDE, RxxxEd لويندوز. RxSock لشبكة الاتصالات، فضلا عن الإضافات الأخرى، تطبيقات Regina Rexx تم تطويرها، ومترجم Rexx لسطر أوامر ويندوز تم توفيره في معظم الإصدارات المتنوعة من ويندوز وتعمل تحت جميع منها وكذلك مايكروسوفت دوس MS-DOS.

Rexx القابلة للنقل بواسطة كيلو-واط Kilowatt وRexx الشخصية بواسطة كويركس Quercus هما نوعان من مترجمين Rexx صممتا لمايكروسوفت دوس MS-DOS ويمكن من طبيعة الحال حتى تعمل تحت ويندوز وكذلك باستخدام موجه الأوامر.

كتابة إملائية بأحرف كبيرة

في الأصل كانت تسمى فقط " Rex" و"المنفذ المعدل" ؛ " X" الاضافية تم إضاف لتجنب التعارض مع أسماء المنتجات الأخرى. والتوسع في Rexx إلى المنفذ الموسع المعدل يعتقد حتىقد يكون backronym. وكانت ريكس أصلا كافة أحرفها كبيرة لأن رمز الكمبيوتر المركزي كان موجه بالحرف الكبيرة. وكان النمط في تلك الأيام حتى جميع أسماء تكون بأحرف كبيرة، ويرجع ذلك جزئيا تقريبا حتى جميع الرموز كانت لا تزال تخط بالاحرف الكبيرة حينها، ثم أصبح المنتج REXX، وكلا من طبعات كتاب مايك كاوليشاوCowlishaw تستخدم الإحرف الكبيرة. منالتسعينات كانت مكتوبة في المجمل Rexx، مع أحرف صغيرة : REXX. اعتبارا من عام 2008، مايك كاوليشا وMike Cowlishaw يظهر وكأنه يفضل Rexx، وثائق آي بي إم استخدمت REXX، مقاييسANSI استخدمت REXX.

قواعد اللغة

التكرار الحلقي

بناء التحكم في الحلقة في REXX يبدأ من DO وينتهي مع END نهاية ولكنه يأتي في عدة أشكال. NetRexx تستخدم الحدثة الرئيسية LOOP بدلا من DO لعمل التكرار الحلقي، في حين ooRexx تعامل LOOP وDO بالتساوي في حالة التكرار الحلقي.

الأشكال التقليدية :

   do expression [count]
     [instructions]
   end

   do until [condition]
     [instructions]
   end

   do while [condition]
     [instructions]
   end

With an index variable:

   do i = x [to y ] [by z]
     [instructions]
   end

another variant:

   do i = x [by z ] [to y] [for k]
     [instructions]
   end

قد يتم حذف المستوى الزائدة (Z أعلاه) وافتراضها إلى 1. ويمكن أيضا حذف الحد الأعلى (Y أعلاه) يمكن حذفها، مما يجعل الحلقة تستمر إلى الأبد. تقدر أيضا يتم التكرار الحلقي إلى الأبد بدون متغير مؤشر مع هذا :

   do forever
     [instructions]
   end

يمكن للبرنامج الخروج من الحلقة الحالية مع تعليمات leave (والذي هوالطريق الطبيعي للخروج من الحلقة "الأبدية")، أويمكن حتى تختصر الطريق مع التعليمات iterate.

النماذج do while وdo until متعادلة :

  do forever
    if [condition] then leave                /*similar to WHILE*/
    [instructions]
  end

and:

  do forever
    [instructions]
    if [condition] then leave                /*similar to UNTIL*/  
  end

الاشتراطية

اختبار الشروط مع إذا IF

   if [condition] then
     do
       [instructions]
     end
   else
     do
       [instructions]
     end

لاحظ حتى فقرة ELSE اختياري. أو، باختصار :

   if [condition] then  do
                        [instructions]
                        end
                  else  do
                        [instructions]
                        end

للحصول على تعليمة واحدة، DO وEND يمكن حذفها أيضاً :

   if [condition] then
     [instruction]
   else
     [instruction]

أو، في نسخة موجزة :

   if [condition] then   [instruction]
                  else   [instruction]

التفصيل اختياري، ولكنه يساعد على تحسين القراءة.

اختبار الشروط المتعددة

SELECT هوبناء CASE لـ REXX، مثل غيرها من الكثير من البنيات المستمدة من PL/I:

   select
     when [condition] then
         [instruction]
     when [condition] then
       do
         [instructions]
       end
     otherwise
       [instructions] or NOP
   end

NOP لا يشير تطبيق أي تعليمات. لاحظ حتى بند OTHERWISE (الخلاف) اختياري. إذا تم حذفه ولا يتم استيفاء WHEN الشروط، ثم يتم حمل حالة القواعد.

المتغيرات البسيطة

المتغيرات في REXX ليس لها أنواع، وفي البداية يتم تقييمها بأسمائهم، في أحرف كبيرة. إلى غير ذلك يمكن حتى تختلف أنواع المتغيرات مع استخدامها في البرنامج :

 say hello             /* =>  HELLO      */
 hello = 25
 say hello             /* =>  25         */
 hello = "sayخمسة + 3"
 say hello             /* =>  sayخمسة + ثلاثة  */
 interpret hello       /* => ثمانية          */
 drop hello
 say hello             /* =>  HELLO      */

المتغيرات المركبة

خلافا للعديد من لغات البرمجة الأخرى، REXX الكلاسيكية لا يوجد لديها دعم مباشر لمصفوفات المتغيرات التي تعالج بمؤشر عددي. بدلا من ذلك فإنها توفر متغيرات مركبة. المتغير المركب يتكون من جذع يليه ذيل A.. يتم استخدام (نقطة) لضم الجذع إلى الذيل. إذا كانت الذيول المستخدمة رقمية، فمن السهل لإنتاج نفس التأثير كمصفوفة.

 do i = 1 to 10
   stem.i =عشرة - i
 end

بعد ذلك المتغيرات التالية مع القيم التالية موجودة : stem.1 == 9, stem.2 = 8, stem.3 == 7... وخلافا للمصفوفات، مؤشر المتغير الجذعي غير مطلوب حتىقد يكون له قيمة عددية. على سبيل المثال، الرمز التالي هوسليم :


 i = 'Monday'
 stem.i = 2

في REXX أيضاً من الممكن تحديد قيمة افتراضية للجذع.

 stem. = 'Unknown'
 stem.1 = 'USA'
 stem.44 = 'UK'
 stem.33 = 'France'

بعد هذه المهام فإن مصطلح stem.3 يفترض أن ينتج 'شيء غير معروف' 'Unknown'. ويمكن أيضا حذف جميع الجذع مع تعبير DROP.

 drop stem.

وله أيضاً تأثير إزالة أي قيمة افتراضية معينة سابقا.

بالاتفاق (وليس كجزء من اللغة) مجمع stem.0 غالبا ما يستخدم لتتبع عدد العناصر الموجودة في الساق، على سبيل المثال إجراء لإضافة حدثة إلى قائمة قد تكون مشفرة مثل هذا :

 add_word: procedure expose dictionary.
   parse arg w
   n = dictionary.0 + 1
   dictionary.n = w
   dictionary.0 = n
   return

ومن الممكن أيضا حتىقد يكون هناك عناصر متعددة في ذيل المتغير امركب. على سبيل المثال :

 m = 'July'
 d = 15
 y = 2005
 day.y.m.d = 'Friday'

يمكن استعمال عناصر الذيل الرقمي المتعدد لتوفير تأثير مصفوفة متعددة الأبعاد.

تم العثور على ملامح مماثلة لمتغيرات REXX المركبة في الكثير من اللغات الأخرى (المصفوفات الترابطية في أووك AWK، علامات الرقم hashes في بيرل Perl، Hashtablesجداول البعثرة في جافا، الخ). ومعظم هذه اللغات توفير تعليمات للتكرار على جميع المفاتيح (أوذيول في لغة REXX) من مثل هذا البناء، ولكن هذا غير موجود في REXX الكلاسيكية. بدلا من ذلك فإنه من الضروري للحفاظ على قوائم المساعدة لقيم الذيل، حسب اقتضاء الأمر. على سبيل المثال في برنامج لعد الحدثات يمكن استعمال الإجراء التالي لتسجيل جميع وجود لحدثة.


 add_word: procedure expose count. word_list
   parse arg w.
   count.w = count.w + 1 /* assume count. has been set to 0 */
   if count.w = 1 then word_list = word_list w
   return

ومن ثم لاحقا

 do i = 1 to words(word_list)
   w = word(word_list,i)
   say w count.w
 end

في سبيل بعض الوضوح من الممكن الجمع بين هذه التقنيات إلى جذع واحد.

 add_word: procedure expose dictionary.
   parse arg w.
   dictionary.w = dictionary.w + 1
   if dictionary.w = 1 /* assume dictionary. = 0 */
     then do
       n = dictionary.0+1
       dictionary.n = w
       dictionary.0 = n
     end
   return

ثم لاحقا

 do i = 1 to dictionary.0
   w = dictionary.i
   say i w dictionary.w
 end

ومع ذلك، لا يوفر REXX شبكة أمان هنا، إذا كانت إحدى الحدثات رقم تام أقل من dictionary.0 ستفشل في ظروف غامضة.

التطبيقات الحديثة من REXX، بما في ذلك كائن REXX آي بي إم والتطبيقات مفتوحة المصدر مثل ooRexx تضم بناء لغة جديدة لتبسيط التكرار أكثر من القيمة الجذعية، أوأكثر من مجموعة الكيانات أخرى مثل مصفوفة، قائمة، جدول، الخ.

 do i over stem.
   say i '-->' stem.i
 end

تعليمات الحدثات المفتاحية

التحليل

تعليمات التحليل قوية بوجه خاص ؛ فهى تجمع بين بعض وظائف معالجة السلسلة. وقواعدها هو :

   تحليل [العلوي] الأصل [نطقب]

حيث الأصل يحدد المصدر :

  • arg (المعاملات، في ذيل أعلى مستوى من سطر الأوامر)
  • linein (المدخلات القياسية، مثل لوحة المفاتيح)
  • pull (بيانات طابور(رتل) REXX أوالمدخلات القياسية)
  • source (معلومات حول كيفية تطبيق البرنامج)
    value (تعبير) with

الحدثة المفتاحية with مطلوبة للإشارة حيث ينتهي التعبير

  • var (متغير)
  • version (الإصدار / رقم الإصدار)

والنطقب (النموذج) يمكن حتىقد يكون :

  • قائمة المتغيرات
  • محددات (علامات البداية والمهاية) للعمود
  • المحددات الحرفية

الأحرف العلوية اختيارية، وإذا تم تحديدها، سيتم تحويل البيانات إلى حالة الأحرف العلوية قبل التحليل.

أمثلة : باستخدام قائمة من المتغيرات كنطقب (كنموذج)

   myVar = "John Smith"
   parse var myVar firstName lastName
   say "First name is:" firstName
   say "Last name is:"  lastName

سوف يعرض الآتي :

   First name is: John
   Last name is: Smith

استخدام المحدد كنطقب :

   myVar = "Smith, John"
   parse var myVar LastName "," FirstName
   say "First name is:" firstName
   say "Last name is:"  lastName

أيضاً يعرض ما يلي :

   First name is: John
   Last name is: Smith

باستخدام المحددات رقم العمود :

   myVar = "(202) 123-1234"
   parse var MyVar 2 AreaCodeخمسة سبعة SubNumber
   say "Area code is:" AreaCode
   say "Subscriber number is:" SubNumber

يعرض ما يلي :

   Area code is: 202
   Subscriber number is: 123-1234

النطقب يمكن حتى استخدام مزيج من المتغيرات والمحددات الحرفية، ومحددات رقم العمود.

التفسير (الترجمة)

تعليمات التفسير تقيم معاملاتها، وتعامل قيمتها كعبارة REXX. أحيانا التفسير هوأوضح وسيلة لتطبيق المهمة، ولكن غالبا ما يستخدم عند وجود رمز أكثر وضوحا باستخدام مثلاً قيمة، value()..


 /* a touch of ليسب */
 X = 'square'
 interpret 'say' X || '(4) ; exit'
 SQUARE: return arg(1)**2

هذا يعرض 16 والمخارج. لأن محتويات المتغير في REXX هي سلاسل، متضمنة أرقام منطقية مع رموز أسية وحتى البرامج بأكملها، REXX يعرض تفسير السلاسل كمصطلحات مقيمة.

ويمكن استعمال هذه الميزة لتمرير الوظائف كمعاملات الوظيفة، مثل تمرير SIN، COS، إلخ. إلى الإجراء لحساب التكاملات.

فهما بأن REXX توفر الوظائف الحسابية الأساسية فقط مثل ABS وDIGITS وMAX وMIN وSIGN وRANDOM، ومجموعة كاملة من التحويلات الثنائية والزائدة عن السداسية مع عمليات بت. وظائف أكثر تعقيدا مثل SIN يجب حتى تنفذ بالتسويد أويتم الحصول عليها من المخطات الخارجية للطرف الثالث. إذا بعض المخطات الخارجية، التي تنفذ بتلك اللغات التقليدية، لا تدعم الدقة الموسعة.

الإصدارات اللاحقة (غير الكلاسيكية) تؤيد بناء المتغير CALL. جنباً إلى جنب مع وظيفة القيمة VALUE المتضمنة، يمكن استعمال CALL في مكان كثير من حالات التفسير INTERPRET.

هذا هوبرنامج كلاسيكي :

 /* terminated by input "exit" or similar */
 do forever ; interpret linein() ; end

آلة حاسبة REXX أكثر تعقيدا قليلا:

 X = 'input BYE to quit'
 do until X = 'BYE' ; interpret 'say' X ; pull X ; end

PULL هواختصار لـ parse upper pull (سحب تخليل علوي) وبالمثل، ARG هواختصار لـ parse upper arg (معمل تحليل علوي)

وكانت قوة تعليمات التفسير لها استخدامات أخرى. حزمة برامج Valour software (الشجاعة) أعتمد عليها قدرة REXX التفسيرية لتطبيق بيئة OOP. عثر على استخدام اخر لها في منتج ويستنغهاوس Westinghouse الغير معلن [disambiguation needed] الذي يسمى آلة الزمن الذي كان قادرا على تسليم الأخطاء الفادحة بشكل كامل.

الرقمية

  say digits() fuzz() form()          /* =>تسعة 0 SCIENTIFIC */
  say 999999999+1                     /* => 1.000000000E+9 */
  numeric digitsعشرة                   /* only limited by available memory */ 
  say 999999999+1                     /* => 1000000000 */
  say 0.9999999999=1                  /* => 0 (false) */
  numeric fuzz 3
  say 0.99999999=1                    /* => 1 (true) */
  say 0.99999999==1                   /* => 0 (false) */
  say 100*123456789                   /* => 1.23456789E+10 */
  numeric form engineering
  say 100*123456789                   /* => 12.34567890E+9 */
  numeric digits 50
  n=2
  r=1
        do forever                    /* Newton's method */
        rr=(n/r+r)/2
        if r=rr then leave
        r=rr
        end
  say "root" n '=' r                  /*root 2=1.414213562373095048801688724209698078569671875377*/
  numeric digits 50
  e=2.5
  f=0.5  
       do n=3
       f=f/n
       ee=e+f
       if e=ee then leave
       e=ee
       end
  say "e=" e                           /*e=2.7182818284590452353602874713526624977572470936998*/

الإشارات

تعليمات إشارة REXX هدفها التغييرات الغير طبيعية في تدفق التحكم (راجع المبتر التالي). ومع ذلك، فإنه يمكن حتى يساء استخدامها ومعالجتها مثل تعبير GOTO التي وجدت في لغات أخرى (على الرغم من أنها غير متساوية تماما، بسبب حلقات النهاية وبنيات أخرى). هذا يمكن ان ينتج رمز من الصعب قراءته difficult-to-read code.

معالجة الخطأ والاستثناءات

من الممكن في REXX التصدي للأخطاء والتعامل معها والاستثناءات الأخرى، وذلك باستخدام تعليمة SIGNAL (الإشارة). هناك سبع حالات للنظام: خطأ ERROR، الفشل FAILURE، توقف HALT، لا قيمة NOVALUE، غير مستعد NOTREADY، أرقام ضائعة LOSTDIGITS والقواعد SYNTAX. ومعالجة جميع منها يمكن حتى تبدل تشغيل أوإيقاف في رمز المصدر على النحوالمرغوب فيه.

هذا المثال يفترض أن يستمر حتى يتم وقفه من قبل المستخدم :

في معظم أجهزة الكمبيوتر، فإن الوقف يتحقق عن طريق الضغط على Ctrl-Pause (وتسمى أيضا مفتاح الكسرأوالإيقاف).

في بعض الأنظمة المركزية، الضغط على مفتاح PA1 (يساعد البرنامج Program Assist).

 signal on halt;
 do a = 1
   say a
   do 100000 /* a delay */
   end
 end
 halt:
   say "The program was stopped by the user" 
 exit

تقريبا جميع برامج REXX الجادة تحتوي على إشارة novalue أوتعبير مماثل. هذا يعطل "الميزة"، حيث المتغيرات الغير معروف تحصل على (حالة الأحرف الكبيرة) الاسم كالقيمة. يمكن التحقق من حالة المتغير مع وظيفة SYMBOL المتضمنة تعيد VAR للمتغيرات المحددة.

الوظيفة VALUE يمكن استخدامها للحصول على قيمة المتغيرات دون حتى تسبب حالة NOVALUE، ولكن الغرض الرئيسي منها هولقراءة وتعيين متغيرات البيئة environment variables—المماثلة لPOSIXgetenv وputenv.

الأوضاع

ERROR موجب من أمر نظام التشغيل
FAILURE سالب من أمر نظام التشغيل (أي الأمر غير موجود)
HALT إنهاء غير طبيعي (انظر أعلاه)
NOVALUE تمت الإشارة إلى تغيير قيمة وحدة معلومات إلى صفر ثنائي (انظر أعلاه)
NOTREADY مدخلات أومخرجات خطأ (قراءة المحاولات ما بعد نهاية الملف)
SYNTAX قواعد البرنامج غير صالحة، أوبعض حالات خطأ الغير مشمولة أعلاه
LOSTDIGITS يتم فقدان أرقام هامة (ANSI REXX، وليس في الطبعة الثانية من TRL)

عندما يتم معالجة الوضع عن طريق SIGNAL ON فإن متغيرات نظام التشغيل SIGL وRC يمكن تحليلها لفهم الوضع. RC يحتوي على رمز خطأ REXX وSIGL يحتوي على رقم السطر حيث نشأ الخطأ.

بدءا من إصدارREXX الرابع بدأت الأوضاع حتىقد يكون لها أسماء، وهناك أيضا SIGNAL ON دعوة للبناء. وهى مفيد إذا المهام الخارجية غير موجودة بالضرورة :

  ChangeCodePage: procedure /* protect SIGNAL settings */
    signal on syntax name ChangeCodePage.Trap
    return SysQueryProcessCodePage()
  ChangeCodePage.Trap: return 1004 /* windows-1252 on OS/2 */

انظر أيضا

AmigaOS (s) with native REXX support

  • إكس إديت, text editor(s) with native REXX support

-like language compiling into Java byte code برمجة كائنية التوجه based on the REXX language

  • مقارنة بين لغات البرمجة

المراجع

  1. ^ IBM NetRexx نسخة محفوظة 2020-04-12 على مسقط واي باك مشين.
  2. ^ Open Object Rexx نسخة محفوظة 31 ديسمبر 2017 على مسقط واي باك مشين.
  3. ^ Regina نسخة محفوظة 30 يوليو2017 على مسقط واي باك مشين.

خط

  • 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.
  • Deuring, Johannes. REXX Grundlagen für die z/OS Praxis. Germany, 2005. ISBN 3-486-20025-9.
  • 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 Rexx. Ellis Horwood Ltd., 1991. ISBN 0-13-682790-X.
  • Schindler, William. Down to Earth Rexx. Perfect Niche Software, 2000. ISBN 0-9677590-0-5.

وصلات خارجية

  • Mike Cowlishaw's home page
  • REXX language page at IBM
  • REXX Language Association
    • RexxLA's list of Rexx books
  • REXX Information-- Downloads, tools, tutorials, reference materials, etc.
  • The Script Library

مترجمون تقليديون

  • Regina: open-source (LGPL) interpreter for Linux, BSD, Windows, etc.
  • REXX/imc: source available (non-standard license) interpreter for Unix and Linux systems.
  • BREXX: source available (non-commercial) interpreter for Linux, DOS, Windows CE, etc.. (Versions 2.1.3 to 2.1.6 are available under GPL licence (see file COPYING in unpacked tarball.))
  • Reginald: free interpreter for Windows.
  • roo!: freeware interpreter for Windows with object-oriented extensions from Kilowatt Software.
  • r4: freeware interpreter for Windows from Kilowatt Software.
  • REXX for Palm OS: shareware interpreter for Palm OS from Jaxo Inc.
  • S/REXX: commercial interpreter for UNIX and Windows from Benaroya.
  • uni-REXX: commercial interpreter for UNIX from The Workstation Group Ltd.

مترجمون آخرون

  • Open Object Rexx web site
  • IBM NetREXX web site

مصنفون

  • IBM Compiler and Library for REXX on zSeries

برمجيات تستخدم REXX للسيناريوهات

  • OS/2
  • z/OS
  • z/VM
  • ISPF and XEDIT clones

مجموعات مناقشة

  • comp.lang.rexx

مدربون

  • Rexx for everyone: An introduction by David Mertz for IBM developerWorks.
  • PLEAC-REXX: Programming Language Examples Alike Cookbook for REXX
  • Tips & tricks 3.60 by Bernd Schemmer (OS/2 INF format, 755 KB ZIP, 2004)
  • Rexx Frequently Asked Questions (FAQ)
  • Introductory Rexx Tutorial, SHARE, Spring 1997
تاريخ النشر: 2020-06-02 00:56:50
التصنيفات: أوامر شل, برمجيات آي‌ بي‌ إم, لغات برمجة نصية, برمجيات متعددة المنصات, لغات برمجة أنشئت في 1979, قالب أرشيف الإنترنت بوصلات واي باك, مقالات مترجمة آليا منذ يوليو 2016, جميع المقالات المترجمة آليا, جميع المقالات التي بحاجة لصيانة, صفحات بها بيانات ويكي بيانات, صفحات تستخدم خاصية P348, صفحات تستخدم خاصية P737, صفحات تستخدم خاصية P1195, قالب تصنيف كومنز بوصلة كما في ويكي بيانات, بوابة برمجة الحاسوب/مقالات متعلقة, بوابة برمجيات حرة/مقالات متعلقة, بوابة تقنية المعلومات/مقالات متعلقة, بوابة علم الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات, صفحات تستخدم خاصية P244, صفحات تستخدم خاصية P227, الصفحات التي تستخدم وصلات ISBN السحرية

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

الأهلى فى صدارة ترتيب الدورى المصرى قبل انطلاق الجولة الـ"18" اليوم

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-02-09 03:22:35
مستوى الصحة: 36% الأهمية: 45%

خالد مرتجى: الخسارة أمام ريال مدريد محزنة لأنها لا تعكس سير اللقاء

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:49
مستوى الصحة: 53% الأهمية: 66%

مانشستر يونايتد يسقط فى فخ التعادل أمام ليدز فى الدورى الإنجليزى

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:01
مستوى الصحة: 50% الأهمية: 58%

«الدوم» يعرض قصة حياة محمود مختار أول من جسد حياة الريف بأعماله

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:51
مستوى الصحة: 56% الأهمية: 53%

إصابة 4 أشخاص إثر انقلاب سيارة بملوى

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:11
مستوى الصحة: 53% الأهمية: 51%

لافروف: سنواصل مطالبة جوتيريش بالضغط لرفع القيود عن الأسمدة الروسية

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:38
مستوى الصحة: 56% الأهمية: 68%

تفاصيل تحول مصر إلى مركز إقليمى لصناعة وتصميم الإلكترونيات

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:50
مستوى الصحة: 56% الأهمية: 53%

رابط الاستعلام عن فيزا تكافل وكرامة بالرقم القومى

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:50
مستوى الصحة: 56% الأهمية: 70%

مفتى السعودية: المملكة حريصة على سد حاجات المنكوبين فى أنحاء العالم

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:37
مستوى الصحة: 48% الأهمية: 58%

حفل إطلاق كتاب «أمينة رشيد أو العبور إلى الآخر» للكاتبة سلمى مبارك

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:22:03
مستوى الصحة: 58% الأهمية: 50%

النيابة تحبس قاتلة شقيقة سلفتها بالشرقية 4 أيام على ذمة التحقيقات

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:15
مستوى الصحة: 48% الأهمية: 70%

«صحة الإسكندرية» تسلم أهالى بشاير الخير من ضعاف السمع سماعات طبية

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:12
مستوى الصحة: 54% الأهمية: 53%

5 أنظمة غذائية صحية لفقدان الوزن بشكل مستدام.. منها الصيام المتقطع

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-02-09 03:22:36
مستوى الصحة: 40% الأهمية: 39%

حماة الوطن بالغربية ينظم ندوة حول «دور الأحزاب فى الحياة السياسية»

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:43
مستوى الصحة: 46% الأهمية: 64%

موعد نهائى كأس العالم للأندية بين ريال مدريد والهلال السعودى

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:00
مستوى الصحة: 50% الأهمية: 62%

مارسيليا يهزم باريس سان جيرمان بثنائية فى كأس فرنسا

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:21:03
مستوى الصحة: 47% الأهمية: 65%

كيفية طباعة استمارة الثانوية العامة 2023

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:54
مستوى الصحة: 57% الأهمية: 59%

مواعيد عقد امتحانات شهرى فبراير ومارس لطلاب صفوف النقل

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-02-09 03:20:55
مستوى الصحة: 59% الأهمية: 59%

تحميل تطبيق المنصة العربية