العربية  

books keyword instructions

If you do not find what you're looking for, you can use more accurate words.

View more

تعليمات الكلمات المفتاحية (Info)


التحليل

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

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

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

  • 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 5 7 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() /* => 9 0 SCIENTIFIC */ 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 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.

Source: wikipedia.org