لغة الأوامر الرقمية
لغة الأوامر الرقمية ( DCL ) هي لغة الأوامر القياسية للعديد من أنظمة التشغيل التي طورتها شركة Digital Equipment Corporation . طُبقت DCL في الأصل لنظام IAS كنظام تطوير البرامج (PDS)، [ 3 ] [ 4 ] ثم أُضيفت لاحقًا إلى أنظمة RSX-11M و RT-11 و RSTS/E ، لكنها بلغت ذروة قوتها في نظام VAX/VMS (الذي أصبح لاحقًا OpenVMS ). ولا تزال شركة VSI تُطور DCL كجزء من OpenVMS. [ 5 ]
لغة DCL هي لغة برمجة نصية تدعم أنواعًا متعددة من البيانات ، بما في ذلك السلاسل النصية، والأعداد الصحيحة ، ومصفوفات البتات ، والمصفوفات ، والقيم المنطقية، ولكنها لا تدعم الأعداد العشرية . يتم الوصول إلى خدمات نظام OpenVMS ( واجهة برمجة تطبيقات النواة ) من خلال الدوال المعجمية ، التي تؤدي نفس وظائف نظيراتها في اللغات المُترجمة، وتتيح للبرامج النصية الحصول على معلومات حول حالة النظام. تتضمن DCL عبارات IF-THEN-ELSE ، وإمكانية الوصول إلى جميع أنواع ملفات خدمات إدارة السجلات (RMS)، بما في ذلك الملفات المتدفقة، والمفهرسة، والتسلسلية، ولكنها تفتقر إلى حلقة DO-WHILE أو أي بنية تكرارية أخرى ، مما يُجبر المستخدمين على استخدام عبارات IF و GOTO بدلاً من ذلك.
يتوفر برنامج DCL لأنظمة تشغيل أخرى أيضًا، بما في ذلك
- VCL و VX/DCL لنظام يونكس،
- VCL لـ MS-DOS و OS/2 و Windows ،
- PC-DCL [ 6 ] و Open DCL لنظامي التشغيل Windows/Linux
- و Accelr8 DCL Lite لنظام التشغيل Windows. [ 7 ]
تُعد لغة DCL أساس لغة XLNT ، التي تم تنفيذها على نظام التشغيل Windows بواسطة مجموعة من المفسر ومحرك IDE وWSH مع إمكانيات CGI التي قامت شركة Advanced System Concepts Inc. بتوزيعها منذ عام 1997.
محلل سطر الأوامر
في نظام OpenVMS، يُعد محلل سطر الأوامر مكتبة وقت التشغيل ( CLI$ ) التي يمكن تجميعها في تطبيقات المستخدم، مما يوفر واجهة سطر أوامر متسقة لكل من أوامر نظام التشغيل والأوامر التي يكتبها المستخدم. يجب أن يبدأ سطر الأوامر بفعل، يليه ما يصل إلى 8 معلمات (وسائط) و/أو محددات (مفاتيح تبديل في مصطلحات يونكس ) تبدأ بالرمز '/'. على عكس يونكس، لا يلزم وجود مسافة قبل '/'. يمكن أن تكون المحددات مستقلة عن الموقع (تظهر في أي مكان على سطر الأوامر) أو مرتبطة بالموقع، وفي هذه الحالة يؤثر المحدد على المعلمة التي تظهر بعدها. معظم المحددات مستقلة عن الموقع. يمكن أيضًا تعيين قيم أو سلسلة من القيم للمحددات. يُشترط فقط الجزء الأول الأكثر أهمية من اسم الفعل والمحدد. يمكن أن تكون المعلمات أعدادًا صحيحة أو نصوصًا أبجدية رقمية.
قد يبدو مثال على أمر نظام التشغيل كما يلي:
ضبط التدقيق / الإنذار / التمكين = ( التفويض ، الاختراق = الكل ) عرض الجهاز / الملفات $1$DGA1424 :يمكن أيضًا كتابة أمر العرض الثاني على النحو التالي:
sho dev $1$DGA1424:/fil
بينما تُظهر وثائق DCL عادةً جميع أوامر DCL بأحرف كبيرة، فإن أوامر DCL غير حساسة لحالة الأحرف ويمكن كتابتها بأحرف كبيرة أو صغيرة أو مختلطة.
استخدمت بعض التطبيقات مثل OpenVMS و RSX مخططًا للحد الأدنى من التفرد في السماح بتقصير الأوامر.
على عكس الأنظمة الأخرى التي تستخدم المسارات لتحديد مواقع الأوامر، يتطلب DCL تعريف الأوامر بشكل صريح، إما عبر تعريفات CLD (تعريف لغة الأوامر) أو رمز خارجي . تُعرَّف معظم أوامر OpenVMS الأصلية عبر ملفات CLD؛ حيث يقوم CDU (أداة تعريف الأوامر) بتجميعها وإضافتها إلى "جدول" DCL -SYS$LIBRARY:DCLTABLES.EXE افتراضيًا، مع إمكانية استخدام العمليات لجداولها الخاصة - ويمكن للمستخدم استدعاؤها بعد ذلك. على سبيل المثال، يمكن تعريف الأمر FOO الذي يقبل الخيار "/BAR" ويتم تنفيذه بواسطة الصورة باستخدام ملف CLD مشابه لما يلي:SYS$SYSEXE:FOO.EXE
تعريف الفعل FOO صورة "SYS$SYSEXE:FOO.EXE" شريط التأهيل يمكن للمستخدم بعد ذلك كتابة " " أو " "، وسيتم استدعاء برنامج FOO. تدعم لغة تعريف الأوامر أنواعًا عديدة من الخيارات، مثل التواريخ ومواصفات الملفات، وتسمح باستخدام مُحدِّد لتغيير الصورة المُستدعاة - على سبيل المثال، " " لإنشاء ملف، مقابل " " لإنشاء مجلد.FOOFOO/BARCREATECREATE/DIRECTORY
الطريقة الأخرى (الأبسط، ولكن الأقل مرونة) لتعريف الأوامر هي عبر الأوامر الخارجية . وهي أقرب إلى طريقة يونكس في استدعاء البرامج. وذلك بإعطاء الأمر التالي:
foo :== $sys$sysexe:foo.exe سيؤدي الأمر 'FOO' إلى استدعاء FOO.EXE، مع توفير أي وسائط إضافية للبرنامج حرفيًا، على سبيل المثال، . تُستخدم هذه الطريقة عمومًا للبرامج المنقولة من أنظمة Unix وغيرها من الأنظمة غير الأصلية؛ ولبرامج C التي تستخدم صيغة أوامر argc و argv.foo -v
تدعم إصدارات OpenVMS DCL بدءًا من الإصدار 6.2 الاسم المنطقي لإنشاء مسارات أوامر بنمط يونكس. تُعرف هذه الآلية باسم "الأمر الخارجي التلقائي". تسمح هذه الآلية بتحديد قائمة من الدلائل، ثم يتم البحث في هذه الدلائل عن إجراءات أوامر DCL ( الأمر .COM) ثم عن الصور التنفيذية ( الأمر .EXE) التي تتطابق أسماء ملفاتها مع الأمر الذي أدخله المستخدم. وكما هو الحال مع الأوامر الخارجية التقليدية، تسمح الأوامر الخارجية التلقائية أيضًا بإدخال أوامر بنمط يونكس.DCL$PATHDCL$PATH
كتابة البرامج النصية
تتشابه نصوص DCL إلى حد كبير مع أي لغة برمجة نصية أخرى، مع بعض الاستثناءات. تسبق جميع أفعال DCL في النص البرمجي رمز $؛ وتُعتبر الأسطر الأخرى مدخلات للأمر السابق. على سبيل المثال، لاستخدام الأمر TYPE لطباعة فقرة على الشاشة، يمكن استخدام نص برمجي مشابه لما يلي:
$ TYPE SYS $INPUT : هذا مثال على استخدام فعل TYPE في لغة DCL. $ EXIT الإشارة إلى المتغيرات غير المباشرة
من الممكن إنشاء مصفوفات في لغة DCL يتم الرجوع إليها عبر رموز مترجمة. وهذا يسمح للمبرمج بإنشاء هياكل بيانات ذات أحجام عشوائية باستخدام البيانات نفسها كدالة فهرسة.
$ i = 1 $ variable 'i' = "blue" $ i = 2 $ variable 'i' = "green" $ j = 1 $ color = variable 'j' $ rainbow 'color' = "red" $ color = variable 'i' $ rainbow 'color' = "yellow"في هذا المثال ، تم تعيين القيمة "أحمر" للمتغير rainbowblue ، وتم تعيين القيمة "أصفر" للمتغير rainbowgreen .
الأوامر
فيما يلي قائمة بأوامر DCL لمهام الحوسبة الشائعة التي تدعمها واجهة سطر الأوامر لنظام التشغيل OpenVMS . [ 2 ]
الوظائف المعجمية
توفر الوظائف المعجمية وظائف السلاسل النصية وإمكانية الوصول إلى البيانات التي يتم صيانتها بواسطة نظام إدارة الفيديو (VMS).
بعض المفردات هي:
F$EXTRACT(start,length,string)— استخراج سلسلة فرعيةF$CVTIME— الحصول على معلومات التاريخ/الوقت، على سبيل المثالYEST_DOW=F$EXTRACT(0,3,F$CVTIME(DATE_EXPR,,"WEEKDAY"))
F$ELEMENT(0," ",ABC_DEF)— لأنهABC_DEF = "ABC DEF"سيعود"ABC"F$SEARCHيبحث عن ملف، ويعيد قيمة فارغة ("") إذا لم يتم العثور عليهF$LOCATE(needle,haystack)F$SetPRV("BYPASS,CMKRNL,ALTPRI")— إنه لشرف عظيم أن أتمكن من الوصول إلى هذا.
انظر أيضاً
مراجع
- ↑ "دليل لغة وأدوات برمجيات VAX/VMS" (ملف PDF) . bitsavers.org . 1985. تاريخ الاسترجاع: 31 ديسمبر 2020 .
- 1 2 "دليل مستخدم VSI OpenVMS" (ملف PDF) . VSI. يوليو 2020. تم الاطلاع عليه بتاريخ 27 يناير 2021 .
- ↑ دليل مستخدم IAS MCR (ملف PDF) . شركة المعدات الرقمية. مايو 1990.
- ↑ شركة المعدات الرقمية - من عام 1957 إلى الوقت الحاضر (ملف PDF) . شركة المعدات الرقمية. 1975.
- ↑ "وصف المنتج البرمجي والمواصفات السريعة - VSI OpenVMS الإصدار 8.4-2L1 لخوادم Integrity" (ملف PDF) . شركة VMS Software Inc.، يوليو 2019. تاريخ الاسترجاع: 2 يناير 2021 .
- ↑ "MichelValentin/PC-DCL" . GitHub . 29 مايو 2022.
- ↑ "مقارنة بين PC-DCL و Open DCL Lite" .
مقارنة بين برنامج PC-DCL من فالنتين وبرنامج Accelr8 Open DCL Lite
للمزيد من القراءة
- بول سي. أناغنوستوبولوس؛ ستيف هوفمان (1998). كتابة برامج حقيقية بلغة DCL ( الطبعة الثانية). دار النشر الرقمية. ISBN 1-55558-191-9.
روابط خارجية
- قاموس VSI OpenVMS DCL: AM
- قاموس VSI OpenVMS DCL: نيوزيلندا
- أرشيف DCL الخاص بموقع OpenVMS.org
- واجهات الأوامر
- برنامج DEC
- أوبن في إم إس
- برنامج OpenVMS
- لغات البرمجة النصية
- لغات البرمجة التي تم ابتكارها عام 1975
