لغة التحكم التشغيلي

لغة التحكم التشغيلية (OCL) هي لغة التحكم الخاصة بعائلة الحواسيب الصغيرة IBM System/3 و System/32 و System/34 و System/36 . وهي مدعومة في بيئة System/36 الخاصة بنظام IBM i لأغراض التوافق مع الإصدارات السابقة. وهي مشابهة للغات التحكم الأقدم JCL ( System/370 )، ولا علاقة لها بلغة التحكم الأحدث ( System/38 و IBM AS/400 )، أو لغة REXX (AS/400).

ملخص

تُستخدم عبارات OCL لتحميل برامج المستخدم أو النظام مباشرةً في الذاكرة، وتخصيص موارد النظام لها، ونقل التحكم إليها في عملية تُسمى التنفيذ. ولا يعني وجود برنامج مُخزّن على قرص الحاسوب بحد ذاته أن الحاسوب سيُعالجه أو يُنفّذه.

يمكن إدخال عبارات OCL يدويًا من لوحة المفاتيح، ولكنها تُخزَّن عادةً كعضو إجراء. عضو الإجراء هو عنصر قابل للتعديل بحرية ضمن مكتبة، وهو ملف مصدر. في أنظمة S/32 وS/34 وS/36، لا تُجمَّع الإجراءات، بل تُفسَّر .

مثال

تبدأ عبارات OCL عادةً بشرطتين مائلتين ومسافة واحدة على الأقل. إليك مثال على إجراء مُخزَّن على نظام System/36 كعضو PROC1:

** الإجراء PROC1 - وثائق اختيارية ** ** كتبه جو يوزر 29-05-2006 ** ** // * 'إجراء PROC1 قيد التشغيل' // * ' ' // إذا كان نشطًا - 'PROC2,PROC3' انتقل إلى موافق ** IFF تعني "إذا كان خطأ" ** ACTIVE-'name1,name2' تعني صحيح ** إذا كان أحد البرامج المدرجة على الأقل قيد التشغيل حاليًا ** GOTO xxx تعني الانتقال إلى العبارة ** الذي يحتوي على علامة xxx واستئناف المعالجة // إيقاف مؤقت: "لا يمكن المتابعة لأن نظام رواتب آخر قيد التشغيل" ** يوقف التنفيذ برسالة // إلغاء: يوقف تنفيذ هذا الإجراء // علامة موافق // IFF DATAF1-PFILE1 IFF DATAF1-PFILE2 GOTO NODELT // * يعرض تنبيه "بيانات الدفع موجودة" معلومات على الجهاز // * ' ' // * اضغط 1 للمتابعة وحذف الملفات الموجودة // IFF '1'=?1R? CANCEL يُشار إلى المعامل بعلامات استفهام تحيط برقم. ** استخدام 1R بين علامتي الاستفهام يشير إلى ** أن المعلمة مطلوبة ** وتنتظر المعالجة إدخال المستخدم. ** إلغاء يعني الانتقال فوراً إلى نهاية المهمة. // تحميل $DELET $DELET تُستخدم لحذف الملفات // يجري ** يتطلب هذا البرنامج ويعالج ويستهلك ** العبارات اللاحقة كبيانات حتى عبارة النهاية (END) // إذا كانت DATAF1-PFILE1، فقم بتعطيل الوحدة F1، والتسمية PFILE1 ** حذف ملف موجود على القرص بشكل مشروط // إذا كانت DATAF1-PFILE2، فقم بتعطيل الوحدة F1، والتسمية PFILE2 // نهاية ** // علامة نودلت // تحميل PR101، قد يكون PR101 برنامجًا مكتوبًا بلغة RPG أو COBOL // اسم الملف - PAYMAST، العرض - SHR، PAYMAST هو ملف الرواتب الرئيسي // اسم الملف - PFILE1، العرض - جديد، عدد السجلات - 100، التمديد - 100 ** تم إنشاء ملف جديد PFILE1 وتخصيصه ** تم تخصيص 100 سجل لملف PFILE1 ** عندما يتم استخدام جميع الموارد، يحاول النظام تمديدها بمقدار 100 أخرى ** في كل مرة يمتلئ فيها. // يجري ** عبارة END ضرورية فقط ** بالنسبة لتلك البرامج المفعّلة ** لمعالجة أي بيانات لاحقة كبيانات ** لا يلزم تنسيق هذه البيانات مثل OCL // SWITCH 1XX0XXXX يؤدي إلى ضبط العلامات من U1 إلى U8 على SETON (1) أو OFF (0) أو تركها كما تم ضبطها مسبقًا (X) ** // LOCAL OFFSET-1,DATA-'PROC1' يضع PROC1 في منطقة البيانات المحلية (LDA) // LOCAL OFFSET-101,DATA-'?USER?' يستبدل معرف المستخدم الخاص بالمشغل ** يتم الوصول إلى LDA عبر بنية بيانات، UDS داخل برنامج RPG ** تظل مفاتيح LDA ومفاتيح المستخدم (الأعلام) متاحة للبرامج اللاحقة ** حتى يتم تحديد خلاف ذلك ** يجب فحص أعضاء الإجراءات الفرعية المستدعاة وشفرة المصدر للبرنامج المحمّل ** فيما يتعلق بما إذا كانت مفاتيح LDA و User تُقرأ أو تُعدّل بالفعل أم لا // تحميل PR102 // اسم الملف - PAYMAST، DISP-SHR تعني أن الملف مشترك، وليس الوصول إليه حصريًا ** يمكن لبرامج أخرى استخدام PAYMAST في نفس الوقت // يتم استخدام اسم الملف - PFILE، والتسمية - PFILE1 عند الإشارة إلى اسم ملف RPG ** وتسمية ملف القرص الفعلية مختلفة // يجري // العودة: العودة إلى الإجراء المُستدعي، وإلا نهاية المهمة 

يتضمن هذا الإجراء مجموعة متنوعة من عبارات OCL، بالإضافة إلى تعبيرات التحكم في الإجراءات (PCE)، والموارد، والتي يتم تخصيص معظمها للملفات، والعديد من خطوات العمل، أي تنفيذ البرامج.

تُمثَّل التعليقات بعلامة النجمة في العمود الأول، وباقي التعليقات تُكتب بصيغة حرة. أو يمكن وضعها بعد النهاية المنطقية للعبارة، إذا لم يكن هناك مؤشر لاستمرار العبارة في السطر التالي، مثل الفاصلة الأخيرة.

توفر شركة IBM كتيبات إرشادية متاحة مجانًا عبر الإنترنت وقابلة للتنزيل، بما في ذلك OCL 36.