مرجع
آخر الزيارات

ري أكس أكس

3٬716 كلمة•0 مشاهدة•🗒️ منذ 17 ساعة
باختصار: ظهر في سنة 1979 ؛ قبل 32 عام المصمم ايك كاوليشا و Mike Cowlishaw, المطور مايك كاوليشا وآى بى إم Mike Cowlishaw, IBM الإصدار المستقر ANSI X3.274 (1996 منذ 14 عام) قواعد الكتابة ديناميكي، كل شيء يعتبر سلسلة (REXX الكلاسيكي) أو جسم (REX الجسم)…. في هذه المقالة 64 قسماً: «stem.i = 2»، «value (تعبير) with» و«تحليل [العلوي] الأصل [قالب]» وغيرها.
المحتويات
  1. stem.i = 2
  2. value (تعبير) with
  3. تحليل [العلوي] الأصل [قالب]
  4. end
  5. المحددات الحرفية
  6. الحساب العشري، الفاصلة العائمة floating-point
  7. end
  8. Last name is: Smith
  9. X = 'input BYE to quit'
  10. end
  11. (s) with native REXX support
  12. end
  13. end
  14. say hello /* => 25 */
  15. الرقمية
  16. end
  17. do forever ; interpret linein ; end
  18. say "Subscriber number is:" SubNumber
  19. end
  20. end
  21. RexxLA's list of Rexx books
  22. الإشارات
  23. stem.33 = 'France'
  24. Last name is: Smith
  25. day.y.m.d = 'Friday'
  26. المميزات
  27. كتابة البيانات ديناميكياً، عدم وجود إعلانات
  28. مصنفون
  29. معالجة الخطأ والاستثناءات
  30. -like language compiling into Java byte code
  31. dictionary.w = dictionary.w + 1
  32. SQUARE: return arg(1)**2
  33. الوصول مباشرة لأوامر النظام والمرافق
  34. end
  35. [instruction]
  36. add_word: procedure expose count. word_list
  37. else [instruction]
  38. المتغيرات المركبة
  39. المشغلين غير تقليديين
  40. الأوضاع
  41. كتابة إملائية بأحرف كبيرة
  42. end
  43. end
  44. say 999999999+1 /* => 1.000000000E+9 */
  45. قواعد لغوية بسيطة
  46. Subscriber number is: 123-1234
  47. المتغيرات البسيطة
  48. مترجمون تقليديون
  49. التاريخ
  50. exit
  51. say "Last name is:" lastName
  52. return
  53. end
  54. say "Last name is:" lastName
  55. ومن ثم لاحقا
  56. end
  57. قواعد شكل حر
  58. مدربون
  59. اختبار الشروط المتعددة
  60. كتب
  61. التكرار الحلقي
  62. end
  63. return SysQueryProcessCodePage
  64. التحليل

في البداية، ظهر في سنة 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والسطر الأول من النص يحدد نظام التشغيل الذي عليه النص.

stem.i = 2

  • في REXX كذلك من الممكن تحديد قيمة افتراضية للجذع.
  • stem. = 'Unknown'
  • stem.1 = 'USA'
  • stem.44 = 'UK'

value (تعبير) with

  • الكلمة المفتاحية with مطلوبة للإشارة حيث ينتهي التعبير
  • var (متغير)
  • version (الإصدار / رقم الإصدار)
  • والقالب (النموذج) يمكن أن يكون :
  • قائمة المتغيرات
  • محددات (علامات البداية والمهاية) للعمود

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

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

end

  • and:
  • do forever
  • [instructions]
  • if [condition] then leave /*similar to UNTIL*/
  • end
  • الاشتراطية
  • اختبار الشروط مع إذا IF
  • if [condition] then
  • do
  • [instructions]
  • end
  • else
  • do
  • [instructions]

المحددات الحرفية

  • أمثلة :
  • باستخدام قائمة من المتغيرات كقالب (كنموذج)
  • myVar = "John Smith"
  • parse var myVar firstName lastName
  • say "First name is:" firstName

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

الحساب العشري، الفاصلة العائمة floating-point

  • مجموعة غنية من الوظائف المضمنة، وخاصة السلسلة وتجهيز سلسلة ومعالجة الكلمات
  • إدارة التخزين التلقائي
  • حماية ضد التحطم
  • محتوى بنية هيكل البيانات المعنونة
  • المصفوفات الترابطية associative arrays

end

  • للحصول على تعليمة واحدة، DO و END يمكن حذفها كذلك :
  • if [condition] then
  • [instruction]
  • else

Last name is: Smith

  • استخدام المحدد كقالب :
  • myVar = "Smith, John"
  • parse var myVar LastName "," FirstName
  • say "First name is:" firstName

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] الذي يسمى آلة الزمن الذي كان قادرا على تصحيح الأخطاء الفادحة بشكل كامل.

end

وفي هذا السياق، say "e=" e /*e=2.7182818284590452353602874713526624977572470936998*/

(s) with native REXX support

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

end

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

NOP لا يشير تنفيذ أي تعليمات.

end

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

do forever

[instructions]

say hello /* => 25 */

  • hello = "say 5 + 3"
  • say hello /* => say 5 + 3 */
  • interpret hello /* => 8 */
  • drop hello
  • say hello /* => HELLO */

الرقمية

say digits fuzz form /* => 9 0 SCIENTIFIC */

end

  • With an index variable:
  • do i = x [to y ] [by z]
  • [instructions]

do forever ; interpret linein ; end

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

say "Subscriber number is:" SubNumber

يعرض ما يلي :

Area code is: 202

end

say "The program was stopped by the user"

halt:

end

  • 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

في هذا الإطار، say "root" n '=' r /*root 2=1.414213562373095048801688724209698078569671875377*/

RexxLA's list of Rexx books

The Script Library

إضافةً إلى ذلك، REXX Information-- Downloads, tools, tutorials, reference materials, etc.

الإشارات

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

stem.33 = 'France'

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

  • add_word: procedure expose dictionary.
  • parse arg w
  • n = dictionary.0 + 1
  • dictionary.n = w
  • dictionary.0 = n
  • بعد هذه المهام فإن مصطلح stem.3 سوف ينتج 'شيء غير معروف' 'Unknown'.
  • ويمكن كذلك حذف كل الجذع مع عبارة DROP.
  • drop stem.
  • وله كذلك تأثير إزالة أي قيمة افتراضية معينة سابقا.

Last name is: Smith

  • باستخدام المحددات رقم العمود :
  • myVar = "(202) 123-1234"
  • parse var MyVar 2 AreaCode 5 7 SubNumber
  • say "Area code is:" AreaCode

day.y.m.d = 'Friday'

إضافةً إلى ذلك، يمكن استخدام عناصر الذيل الرقمي المتعدد لتوفير تأثير مصفوفة متعددة الأبعاد.

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

المميزات

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

كتابة البيانات ديناميكياً، عدم وجود إعلانات

الدقة العددية التعسفية arbitrary numerical precision

لا يوجد كلمات محفوظة، إلا في السياق المحلي

مصنفون

  • IBM Compiler and Library for REXX on zSeries
  • برمجيات تستعمل REXX للسيناريوهات
  • OS/2
  • z/OS
  • z/VM
  • ISPF and XEDIT clones
  • مجموعات مناقشة
  • comp.lang.rexx

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

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

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

هذا المثال سوف يستمر حتى يتم وقفه من قبل المستعمل :

  • في بعض الأنظمة المركزية، الضغط على مفتاح PA1 (يساعد البرنامج Program Assist).
  • signal on halt;
  • do a = 1
  • say a
  • do 100000 /* a delay */
  • end

-like language compiling into Java byte code

  • برمجة كائنية التوجه based on the REXX language
  • مقارنة بين لغات البرمجة
  • المراجع

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

SQUARE: return arg(1)**2

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

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

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

/* terminated by input "exit" or similar */

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

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

الوصول مباشرة لأوامر النظام والمرافق

  • معالجة الأخطاء البسيطة، ومعالجة العطل وتصحيح الأخطاء متضمنة
  • قيود مصطنعة قليلة
  • تسهيلات I/O محددة

end

  • another variant:
  • do i = x [by z ] [to y] [for k]
  • [instructions]

[instruction]

if [condition] then [instruction]

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

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

else [instruction]

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

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

do i = 1 to 10

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

stem.i = 10 - i

المشغلين غير تقليديين

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

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

جزئيا فقط يدعم معاملات خط أمر يونكس، إلا تطبيقات محددة

ومن جهة أخرى، لا يوفر أي وسيلة عامة لتشمل الوظائف أوالوظائف الفرعية من المكتبات الخارجية، باستثناء في تطبيقات محددة

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

الأوضاع

ChangeCodePage: procedure /* protect SIGNAL settings */

signal on syntax name ChangeCodePage.Trap

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

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

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

قواعد اللغة

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

end

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

  • النماذج do while و do until متعادلة :
  • do forever
  • if [condition] then leave /*similar to WHILE*/
  • [instructions]

end

  • لاحظ أن فقرة ELSE اختياري.
  • أو، باختصار :
  • if [condition] then do
  • [instructions]
  • end
  • else do
  • [instructions]

say 999999999+1 /* => 1.000000000E+9 */

  • numeric digits 10 /* 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

قواعد لغوية بسيطة

مجموعة صغيرة من التعليمات تحتوي على 23 تعليم

Subscriber number is: 123-1234

  • /* a touch of ليسب */
  • X = 'square'
  • interpret 'say' X || '(4) ; exit'

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

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

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

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

hello = 25

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

say hello /* => HELLO */

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

وفي هذا الصدد، Regina: open-source (LGPL) interpreter for Linux, BSD, Windows, etc.

إضافةً إلى ذلك، 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.

  • 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

علاوةً على ذلك، REXX/imc: source available (non-standard license) interpreter for Unix and Linux systems.

وفي السياق ذاته، roo!: freeware interpreter for Windows with object-oriented extensions from Kilowatt Software.

التاريخ

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

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

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

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

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

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

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

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

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

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

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

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

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

كائن REXX—وهو توجه جسمي عموماً إصدار متوافق معزز من REXX.

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

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

وفي هذا السياق، تمت كتابة النسخة الأولية التي ليست من آي بي إم لـ PC DOS عن طريق تشارلز داني في 5 / 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]،

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

exit

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

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

say "Last name is:" lastName

First name is: John

كذلك يعرض ما يلي :

return

  • m = 'July'
  • d = 15
  • y = 2005

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

end

كذلك، وخلافا للمصفوفات، مؤشر المتغير الجذعي غير مطلوب أن يكون له قيمة عددية. مثلًا، الرمز التالي هو صحيح :

وعلى صعيد آخر، فيما بعد المتغيرات التالية مع القيم التالية موجودة : stem.1 == 9, stem.2 = 8, stem.3 == 7...

i = 'Monday'

say "Last name is:" lastName

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

First name is: John

ومن ثم لاحقا

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

قواعد شكل حر

أسس سلسلة الأحرف

حالة الرموز الغير الحساسة، بما في ذلك أسماء المتغيرات

مدربون

  • 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)

ومن ناحية أخرى، Rexx for everyone: An introduction by David Mertz for IBM developerWorks.

وفي هذا السياق، [./Http://zabrodsky-rexx.byethost18.com/aat/index.html Vladimir Zabrodsky's Album of Algorithms and Techniques for Standard Rexx]

من جانب آخر، [./Http://zabrodsky-rexx.byethost18.com/introrexx.html Vladimir Zabrodsky's An Introduction to the Rexx Programming Language]

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

  • SELECT هو بناء CASE لـ REXX، مثل غيرها من الكثير من البنيات المستمدة من PL/I:
  • select
  • when [condition] then
  • [instruction]
  • when [condition] then
  • do
  • [instructions]
  • end
  • otherwise
  • [instructions] or NOP

كتب

وعلى صعيد آخر، Cowlishaw, Michael. The NetRexx Language. Prentice Hall, 1997. ISBN 0-13-806332-X.

وفي هذا السياق، Marco, Lou ISPF/REXX Development for Experienced Programmers. CBM Books, 1995. ISBN 1-878956-50-7

ومن جهة أخرى، Deuring, Johannes. REXX Grundlagen für die z/OS Praxis. Germany, 2005. ISBN 3-486-20025-9.

ومن ناحية أخرى، IBM Redbooks. Implementing Rexx Support in Sdsf. Vervante, 2007. ISBN 0-7384-8914-X.

وفي هذا السياق، 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.

وفي هذا الصدد، Cowlishaw, Michael. The Rexx Language: A Practical Approach to Programming. Prentice Hall, 1990. ISBN 0-13-780651-5.

من جانب آخر، 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.

من جانب آخر، Kiesel, Peter C. Rexx: Advanced Techniques for Programmers. McGraw-Hill, TX, 1992. ISBN 0-07-034600-3.

وفي هذا السياق، Goldberg, Gabriel and Smith, Philip H. The Rexx Handbook . McGraw-Hill, TX, 1992. ISBN 0-07-023682-8.

ومن ناحية أخرى، O'Hara, Robert P. and Gomberg, David Roos. Modern Programming Using Rexx. Prentice Hall, 1988. ISBN 0-13-597329-5.

كذلك، Ender, Tom. Object-Oriented Programming With Rexx. John Wiley & Sons, 1997. ISBN 0-471-11844-3.

من جانب آخر، Schindler, William. Down to Earth Rexx. Perfect Niche Software, 2000. ISBN 0-9677590-0-5.

علاوةً على ذلك، Daney, Charles. Programming in REXX. McGraw-Hill, TX, 1990. ISBN 0-07-015305-1.

  • وصلات خارجية
  • Mike Cowlishaw's home page
  • REXX language page at IBM
  • REXX Language Association

وفي هذا الصدد، Goran, Richard K. REXX Reference Summary Handbook. CFS Nevada, Inc.,1997. ISBN 0-9639854-3-4.

من جهة ثانية، Rudd, Anthony S. Practical Usage of Rexx. Ellis Horwood Ltd., 1991. ISBN 0-13-682790-X.

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

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

  • الأشكال التقليدية :
  • do expression [count]
  • [instructions]
  • end
  • do until [condition]
  • [instructions]
  • end
  • do while [condition]
  • [instructions]

end

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

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

  • do i over stem.
  • say i '-->' stem.i
  • end
  • تعليمات الكلمات المفتاحية

return SysQueryProcessCodePage

  • ChangeCodePage.Trap: return 1004 /* windows-1252 on OS/2 */
  • انظر كذلك
  • AmigaOS

التحليل

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

ما رأيك في هذه المقالة؟

📝 هل في هذه المقالة خطأ؟

إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.