لغة البرمجة EGL
EGL (لغة جيل المؤسسات)، التي طورتها شركة IBM في الأصل وهي متاحة الآن كمشروع EDT (أدوات تطوير EGL) [ 1 ] مفتوح المصدر بموجب رخصة Eclipse العامة (EPL)، هي تقنية برمجة مصممة لمواجهة تحديات تطوير التطبيقات الحديثة متعددة المنصات من خلال توفير لغة مشتركة ونموذج برمجة عبر اللغات والأطر ومنصات وقت التشغيل.
ملخص
تستعير هذه اللغة مفاهيم مألوفة لأي شخص يستخدم لغات البرمجة ذات الكتابة الثابتة مثل جافا ، وكوبول ، وسي ، وغيرها. إلا أنها تستعير مفهوم النمط النمطي من لغة النمذجة الموحدة (UML)، وهو مفهوم غير شائع في لغات البرمجة ذات الكتابة الثابتة. باختصار، EGL هي لغة برمجة تطبيقات عالمية عالية المستوى.
تتشابه لغة EGL في تركيبها النحوي مع لغات البرمجة الشائعة الأخرى، مما يسهل على مطوري التطبيقات ذوي الخبرة البرمجية السابقة تعلمها. توفر تجريدات تطوير تطبيقات EGL حماية للمبرمجين من الواجهات التقنية للأنظمة والبرمجيات الوسيطة، مما يسمح لهم بالتركيز على بناء وظائف الأعمال. تُكتب تطبيقات وخدمات EGL وتُختبر وتُصحح على مستوى مصدر EGL، وبمجرد اجتيازها لاختبارات وظيفية مُرضية، يمكن تجميعها إلى كود COBOL أو Java أو JavaScript لدعم نشر تطبيقات الأعمال التي يمكن تشغيلها في أي من البيئات التالية:
- المنصات التي تحتوي على آلة جافا افتراضية ، مثل مايكروسوفت ويندوز ولينكس ويونكس ، على سبيل المثال في سياق حاوية جافا إي إي سيرفلت ( خادم تطبيقات آي بي إم ويب سفير ، أباتشي تومكات ، جلاس فيش ) .
- نظام IBM z : خادم معاملات CICS ، وIMS ، وz/OS Batch، وخدمات نظام UNIX ، وخادم تطبيقات WebSphere، وz/VSE ، ولينكس
- أنظمة IBM Power : IBM i ، وخادم تطبيقات IBM WebSphere، و Apache Tomcat ، وخادم تطبيقات الويب المتكامل لنظام i
- متصفحات الويب التي تدعم جافا سكريبت، مثل إنترنت إكسبلورر وفايرفوكس وسفاري ، لتطبيقات الويب الغنية بتقنية أجاكس
أمثلة على التعليمات البرمجية
برنامج
جزء البرنامج في لغة EGL هو جزء منطقي قابل للتوليد، وله نقطة دخول واحدة. يحتوي كل جزء برنامج على دالة main()، التي تمثل المنطق الذي يُنفذ عند بدء تشغيل البرنامج. يمكن للبرنامج أن يتضمن دوالًا أخرى، وأن يصل إلى دوال خارج نطاقه. تستطيع الدالة main() استدعاء تلك الدوال الأخرى. تتكون دوال البرنامج من مجموعة من عبارات EGL والمتغيرات والثوابت.
برنامج HelloWorldconst GREETING string = " Hello , " ;دالة main ()myName string = " John " ;sayHello ( myName ) ;نهايةدالة sayHello ( الاسم سلسلة نصية في )SysLib.writeStdOut (" GREETING " + name + " !" ) ;نهايةنهايةسِجِلّ
يُعرّف جزء سجل EGL مجموعة من عناصر البيانات. في هذا المثال، تم تعريف سجل باسم CustomerRecord بستة حقول.
سجل العميل من النوع BasicRecord ، رقم العميل ( عدد صحيح) ؛ اسم العميل ( نص) ؛ عنوان العميل 1 ( نص) ؛ عنوان العميل 2 ( نص) ؛ عنوان العميل 3 (نص) ؛ رصيد العميل ( مال) ؛ نهايةيحتوي EGL على نوع خاص من السجلات يسمى SQLRecord والذي يستخدم لتبادل البيانات مع قاعدة بيانات علائقية.
سجل الموظف من نوع sqlRecord { أسماء الجداول =[["الموظف"]], عناصر المفاتيح =[رقم الموظف]} EMPNUMBER string{ column = "EMPNO", maxLen = 6}; FIRSTNME string{ sqlVariableLen = yes, maxLen = 12}; MIDINIT string{ isSqlNullable = yes, maxLen = 1}; LASTNAME string{ sqlVariableLen = yes, maxLen = 15}; DEPT string{ column = "WORKDEPT", isSqlNullable = yes, maxLen = 3}; PHONENO string{ isSqlNullable = yes, maxLen = 4}; تاريخ التعيين: { isSqlNullable = yes }; نهاية - في هذا المثال، يتم ربط سجل الموظف بجدول (أو عرض) باسم الموظف .
خدمة
يحتوي جزء خدمة EGL على وظائف عامة يُقصد الوصول إليها من تطبيقات أو أنظمة أخرى. في هذا المثال، تم تعريف خدمة تحتوي على وظيفتين.
package com.mycompany.services ;خدمة الموظفيندالة getEmployees () تُرجع ( Employee [])سجلات الموظف [ 0 ] ; // تعريف مصفوفة فارغة من السجلاتاسترجاع السجلات ؛ // استرجاع السجلات من قاعدة البياناتreturn ( records ) ; // إرجاع السجلات نهايةدالة إضافة موظف ( موظف في ) تُرجع ( قيمة منطقية )يحاولأضف remp ؛return ( true ) ;onException ( ex AnyException )أرجع ( خطأ ) ؛نهايةنهايةنهاية- في لغة EGL، يتم تنظيم الكود في حزم (مثل لغة جافا (لغة البرمجة) )
- تقوم الدالة الأولى، getEmployees ، بإرجاع مصفوفة من السجلات التي يتم ملؤها من السجلات الموجودة في قاعدة البيانات.
- أما الوظيفة الثانية، addEmployee ، فتضيف سجلاً جديداً إلى قاعدة البيانات وتعيد قيمة صحيحة أو خاطئة بناءً على ما إذا تمت إضافة السجل بنجاح.
معالج واجهة المستخدم الرسومية
المكون الرئيسي لتطبيق واجهة المستخدم الغنية هو جزء معالج واجهة المستخدم الغنية. يتم إنشاء هذه الأجزاء بلغة جافا سكريبت.
package com.mycompany.ui ;استيراد com.mycompany.services.Employee ؛استيراد com.mycompany.services.EmployeeService ؛استيراد dojo.widgets.DojoGrid ؛استيراد dojo.widgets.DojoGridColumn ؛معالج EmployeeView من نوع RUIhandler { initialUI = [ grid ],onConstructionFunction = start ,cssFile = "main.css" }شبكة DojoGrid { السلوكيات = [ ], سلوكيات الرأس = [ ], الأعمدة = [عمود جديد في شبكة DojoGrid { displayName = "الاسم الأول" ، name = "FIRSTNAME" },عمود جديد في شبكة DojoGrid { displayName = "الاسم الأخير" ، name = "LASTNAME" },عمود جديد في شبكة DojoGrid { displayName = "الراتب" ، name = "الراتب" }] };دالة بدء ()svc EmployeeService { };استدعاء svc.getEmployees ( ) والعودة إلى displayEmployees ؛نهايةدالة عرض الموظفين ( نتيجة الإرجاع الموظف [ ] في )grid.data = retResult as any [ ] ;نهايةنهايةويب 2.0 مع EGL
في ديسمبر 2008، قدمت شركة IBM تقنية جديدة، هي EGL Rich UI، لتبسيط إنشاء تطبيقات ويب غنية على غرار تطبيقات Web 2.0 . تُسهّل هذه التقنية عملية التطوير من خلال إخفاء تعقيدات Ajax و JavaScript و REST و SOAP عن المطور، مما يُمكّنه من التركيز على متطلبات العمل بدلاً من التقنيات الأساسية.
المنتجات التجارية
تتوفر أدوات برمجة EGL كمنتج تجاري قائم على Eclipse [ 2 ] ، وهو Rational Business Developer وأيضًا في إصدار EGL من Rational Developer لنظام System z .
تُعد لغة EGL لغة مستهدفة لتحديث التطبيقات القديمة نظرًا لتقارب دلالات اللغة مع اللغات الإجرائية ولغات الجيل الرابع القديمة :
- توفر مجموعة من أدوات التحويل المتوفرة ضمن منتج Rational Business Developer عملية تحويل آلية من لغات IBM و Informix القديمة والمستقرة من الجيل الرابع
- توفر مجموعة من عروض خدمات IBM والمنتجات التكميلية (Rational Migration Extension for Natural، وRational Migration Extension for System i، وRational Migration Extension for CA-products) إمكانية التحويل من Software AG Natural و IBM RPG وCA Cool:Gen وCA Ideal/Datacom إلى EGL
تتوفر أدوات للبحث في قواعد بيانات EGL الكبيرة، ومقارنة ملفات EGL الفردية بحثًا عن التغييرات، واكتشاف التعليمات البرمجية المكررة من Semantic Designs [ 3 ].
مراجع
للمزيد من القراءة
روابط خارجية
- لغات البرمجة من الجيل الرابع
- برنامج IBM
- لغات البرمجة النصية
