JCL اختصار لـ Job Control Language وهي ليست لغة برمجة، بل هي لغة سكربت أو لغة أوامر تُستخدم للتحكم في تشغيل الوظائف أو المهام (Jobs) على أنظمة الحاسب الكبيرة مثل IBM z/OS.
JCL تستخدم في :
تحديد الموارد المطلوبة لتشغيل المهمة مثل CPU وذاكرة وملفات.
ترتيب تشغيل الأعمال وتحديد التعليمات والخطوات.
تحديد خيارات إدخال وإخراج البيانات.
توجيه المخرجات والتقارير إلى أماكن محددة.
JCL لا تستخدم للبرمجة أو إيجاد الثغرات أو صنع الفيروسات، بل هي لغة مختصة بأتمتة وتنفيذ مهام الحوسبة الكبيرة على منصات محددة. استخدامها شائع في الشركات الكبيرة ذات الأنظمة والتطبيقات الlegacy القديمة.
لا ليست لغة برمجة، فلغات البرمجة تتكون من مجموعة من التعليمات التي يتم تجميعها أو تحويلها إلى تعليمات machine instructions (تعليمات الآلة) التي تتحكم في المعالج لإنجاز المهام.
بينما JCL هي اختصار لـ Job Control Language، وهي لغة سكريبت تستخدم للتحكم في وظائف أنظمة تشغيل IBM الكبيرة، مثل z/OS وOS/390.
و تُستخدم JCL لتحديد البرامج وبيانات الإدخال والإخراج وأجهزة التخزين ومصادر المعالجة الأخرى التي تحتاجها الوظيفة، أي كواجهة بين البرامج التي يقوم المستخدم بكتابتها وبين وظائف نظام التشغيل.
أو اعتبرها كلغة خاصة بالإعدادات والتهيئة، وفي الوقت الحالي الأنظمة الحديثة تستخدم شيء مشابه مثل JSON وXML وجافا من أجل تهيئة الإعدادات الخاصة بالنظام.
وتستخدم لبناء برامج قابلة للتنفيذ. ومع ذلك، فهي ليست لغة برمجة عامة، ولكنها مصممة خصيصًا للاستخدام مع أنظمة تشغيل IBM الكبيرة، وأيضًا للتعامل مع حالة تنفيذ البرنامج وحالة الملف، كتحديد ما يجب أن يحدث إذا فشل برنامج ما.
والمثال يصف مهمة (JOB) تسمى JOB1. تتكون المهمة من خطوة واحدة (STEP1)، والتي تقوم بتشغيل برنامج يسمى MYPROG، وتحدد الخطوة أيضًا ملف الإدخال (INFILE) وملف الإخراج (OUTFILE).
بالإضافة إلى ما سبق، إليك بعض النقاط المهمة حول JCL:
JCL حساسة لحالة الأحرف.
يجب أن تكون كل سطر من JCL منتهي بنقطة الانتهاء (.).
يمكن تقسيم JCL إلى أقسام (Sections) باستخدام علامات (Directives).
تحدد العلامات نوع القسم الذي يتم تعريفه حيث تحدد علامة //JOB قسم المهمة.