ريبول (بالإنجليزية: REBOL)‏ هي لغة تبادل بيانات متعددة المنصات ولغة برمجة ديناميكية متعددة النماذج ، صممها كارل ساسينراث للاتصالات الشبكية والحوسبة الموزعة. ويطرح REBOL مفهوم اللغات الفرعية (اللهجات) dialect، وهي لغات عالية الكفاءة محدودة الاستخدام بحقول معينة domain-specific للأكواد والبيانات ، وهوما يعد أبرز خواص اللغة وفقًا لمصممها.

«بالرغم من إمكانية استخدامها في البرمجة وتحرير الدوال وإنجاز عمليات المعالجة، إلا حتى أكبر مواطن قوتها هوقدرتها على إنشاء لغات محدودة بحقول معينة أوما نطلق عليه (لهجات) dialects» – كارل ساسينراث

وقد استخدم REBOL في برمجة عدد من تطبيقات الإنترنت (لأجهزة العميل والخادم) وتطبيقات قواعد البيانات والبرامج الخدمية وتطبيقات الوسائط المتعددة.

التاريخ

خرج أول إصدار من لغة الـ REBOL للنور في عام 1997، وقد صممت على مدار عشرين عامًا بواسطة (كارل ساسينراث)، وهوالمهندس والمطور الرئيسي لنظام أميغا أوإس، وذلك قيامًا على دراسته للسيمانطيقا الدلالية denotational semantics ومستخدما مفاهيم من لغات برمجة الـ Lisp وForth وLogo وSelf.

REBOL 2، المترجم، والذي أصبح قلب إصدارات المترجم الموسعة، صدر لأول مرة في 1999. REBOL/Comand، والذي أضاف تشفيرًا قوياً وأتاح الاتصالات بقواعد البيانات المفتوحة ODBC، صدر في سبتمبر 2000. REBOL/View وصدر في إبريل 2001، حيث أضاف إمكانيات رسومية على رأس اللغة الرئيسية. REBOL/IOS، وهوبيئة تعاونية ممتدة تم بناءها مع REBOL وصدرت في أغسطس 2001. REBOL/SDK، وقدّم خيار الأنوية kernels من أجل الربط، بالإضافة إلى معالج قبلي preprocessor، وصدر في ديسمبر 2002. REBOL 3، وهوالإصدار الأحدث من المترجم REBOL interpreter، وهوقيد التطوير حالياً، والنسخ المكتملة منه موجودة في السوق منذ يناير 2008.

اللغات الفرعية (اللهجات)

اللغات الفرعية للـ REBOL، والتي تشتهر حالياً بأنها محدودة بحقول معينة، هي لغات صُغرى micro-languages تم حمل كفاءتها لخدمة أغراض محددة. ويمكن استعمال الحقول لتحديد قواعد العمل وقابلات المستخدم الرسومية أوتتابع الشاشات أثناء تنصيب أي برنامج. وبوسع المستخدمين تحديد لهجاتهم الخاصة، بإعادة استخدام أي حدثة من حدثات REBOL القائمة وإعطاءها معنى معين في هذه اللهجة. وتتم ترجمة اللهجات عن طريق الدوال التي تقوم بمعالجة الكتل البرمجية (أوسلاسل الإعراب) بشكل محدد. ويمكن حتى نرى مثالاً على إمكانيات التفريع اللغوي (أي إنشاء اللهجات) لـ REBOL في حدثة return. ففي (لهجة تبادل البيانات)، يعد الـ return مجرد حدثة لا تحمل أي معنى محدد. أما في لهجة الـ do، نجد حتى الـ return هنا متغير تام global variable، يشير إلى دالّة محلية تقوم باستنادىء قيمة دالّية. وفي لهجة القابلة المرئية (VID)، نجد حتى الـ return هنا تكون تعبير عن حدثة أساسية تدفع بمحرك التصميم لمحاكاة نتيجة تحميل carriage return، حيث تحرك "قلم الترجمة" إلى بداية الخط التالي. ويجب على مترجم الـ REBOL الحامل للإمكانيات الرسومية حتى يفهم ويترجم الكثير من اللهجات. ويوضح الجدول أدناه اللهجات الأكثر أهمية مرتبة حسب الأهمية:

اسم اللغة الفرعية (اللهجة) الدالة التي تترجمها الهدف
لهجة تبادل البيانات تمثل البيانات والميتابيانات؛ وهي المنصة الشائعة للهجات للـ REBOL
لهجة do الدالة do البرمجة
لهجة التعريب parse الدالة مطابقة الأنماط
لهجة تحديد الدوال make الدالة تعريف الدوال؛ البرمجة الدالّية
لهجة تحديد الكائنات الشيئية make الدالة تعريف/وراثة الكائنات؛ البرمجة القائمة على النمذجة programming prototype-based
لهجة القابلة المرئية (VID) أوما يطلق عليه RebGUI layout function
أو
display الدالة
تحدد قابلة المستخدم الرسومية (GUI)
لهجة الرسم view الدالة تحدد العناصر الرسومية (الخطوط، المضلّعات الخ)
لهجة تحديد النصوص do الدالة تعريف النصوص
لهجة سياسة الأمان secure الدالة تحديد سياسة الأمن

بناء اللغة (السينتاكس)

تتسم لغة الـ REBOL بأنها من لغات البرمجة ذات الشكل الحر free-form، بمعنى أنها لا بحاجة لمواضع خاصة. ورغم ذلك، ينصح بمراعاة الإزاحة المتناسبة بين السطور (indentation) من أجل نقل أفضل لهيكل النص للقارئ البشري. وقد تتباين الخصائص البنائية للهجات المتنوعة. والمنصة المشهجرة لكافة لهجات الـ REBOL هي (لهجة لتبادل البيانات)؛ وهناك لهجات أخرى مشتقة منها. وبالإضافة لكونها المنصة المشهجرة لكافة اللهجات، فإن (لهجة تبادل البيانات) تستخدم مباشرة لتمثيل البيانات والميتابيانات، وتجميع أبنية البيانات، وإرسال البيانات على الإنترنت، وحفظها في مجمع لتخزين البيانات. وعلى خلاف لغات البرمجة مثل سي C، نجد حتى (لهجة تبادل البيانات) لا تتألف من إعلانات أوتعليمات أوصيغ أوحدثات مفتاحية. ويتخذ التيار النصي لـ (لهجة تبادل البيانات) شكل شجرة بيانات تتألف من كتل (والكتلة الجذرية تكون ضمنية implicit، فيما الكتل الفرعية يحدّ منها الأقواس المربعة "[]")، والسلاسل الحرفية strings (والتي تكون محدودة بعلامات الاقتباس المزدوجة "" أوبالأقواس المجعدة { مناسبة للسلاسل متعددة الأسطر؛ مع استخدام علامات الإقحام مع الأحرف غير القابلة للطباعة) وعنوان الإنترنت URLs أوعناوين البريد الإلكتروني e-mail أوالملفات أوالمسارات أوغيرها من القيم المُركّبة composite values. وعلى خلاف الكتل البرمجية للـ ALGOL، نجد حتى كتل الـ REBOL هي قيم مركّبة مماثلة للصيغ الرمزية s-expressions في لغة الـ Lisp. وتحتوى الكتل البرمجية blocks بالإضافة إلى الأقواس على قيم مُركّبة أخرى (وقد تحتوي الكتلة البرمجية على كتل فرعية وأقواس وسلاسل حرفية ...) أوقيم قياسية scalar مثل الحدثات أوالـ set-words (وهي الحدثات التي تلحقها في النهاية نقطتي الترقيم ":") أوالـ get-words (وهي الحدثات التي تسبقها نقطتي الترقيم) أوالـ lit-words (وهي الحدثات التي تسبقها الفاصلة العُليا) أوالأرقام أوالنقود أوالحروف الخ، وتفصل بينها مساحات فارغة. ولاحظ حتى الحروف الخاصة مسموح بها في الحدثات، ولذلك نجد حتى a+b تمثل حدثة، فيما a + b ليست كذلك، لأنها تمثل تتابعًا لثلاث حدثات تفصل فيما بينها مساحات فارغة. وقد تظهر التعليقات comments بعد علامة الفاصلة المنقوطة ";" حتى نهاية السطر. ويمكن كتابة التعليقات متعددة الأسطر أوالتعليقات التي لا يتجاهلها المعرّب المُعجمي lexical parser باستخدام أنواع البيانات "العاديّة" مثل السلاسل الحرفية متعددة الأسطر.

المعاني

يمكن تقديم الكتل المحتوية على اللغة المحددة بحقل معين كوسائط arguments إلى دوال تقييم evaluator معينة.

Do

يعد المقيم الأكثر شيوعاً في الاستخدام هوالدالة do. وهي تُستخدم بشكل افتراضي في ترجمة النص الذي يدخل نافذة المترجم. واللهجة do والتي تترجمها الدّآلة do هي لهجة تعبيرية التوجه expression-oriented للغة تبادل البيانات. والوحدة السيمانطيقية الرئيسية للغة هي التعبير expression. وعلى خلاف لغات البرمجة الإجرائية المنحدرة من الـ ALGOL، نجد حتى اللغة الفرعية do تخلومن الحدثات المفتاحية والتعليمات البرمجية. وتُستخدم الحدثات كمتغيرات غير حساسة لحالة الأحرف case insensitive. عملى غرار اللغات الديناميكية، ليس للمتغيرات نوع مرتبط بها، والنوع يرتبط بقيم. والنتيجة هي حتى تقييم الحدثة يرجع عندما تقابل الحدثة دالة do. ويمكن استعمال الحدثات الملحقة بنقطتي الترقيم set-words لأي حدثة من أجل عملية التعيين. ورغم غياب التعليمات البرمجية، إلا حتى التعيينات، وإلى جانب الدوال ذات الآثار الجانبية، يمكن استخدامها في البرمجة الإجرائية. وتقوم الكتل البرمجية بعملية التقييم لنفسها. وتُستخدم هذه الخاصية في معالجة كتل البيانات، وذلك في البرمجة الهيكلية، من خلال حمل هذه الكتل كوسائط للتحكم في دوال على غرار if وeither وloop الخ ومن أجل صياغة اللهجات، عندما يتم تمرير إحدى الكتل البرمجية إلى دالة ترجمة معيّنة. ومن المشكلات الخاصة الجديرة بالملاحظة حتى القيم المركّبة، والمرتبطة بالمتغيرات، لا تُنسخ. ولعمل نسخة منها، ينبغي تمرير القيمة إلى دالة copy. وتتبع دالة الـ do أسلوبًا البوادئ في التقييم prefix style of evaluation، حيث تقوم الدالّة بمعالجة الوسائط التي تتبعها. ورغم ذلك فهناك أيضًا التقييم القائم على الزيادة الحرفية في الوسط (أوالتوسيط) infix evaluation وباستخدام مؤثرات التوسيط infix operators. وللتقييم التوسيطي الأسبقية على التقييم بالبوادئ. فمثلاً abs -2 + 3 تقوم باستنادىء القيمة 1، نظرًا لأن عملية إضافة التوسيط لها الأسبقية على حساب القيمة المطلقة. وعند تقييم صيغ التوسيط، فإن ترتيب التقييمقد يكون من اليسار إلى اليمين، ولا يأخذ أي مؤثر operator الأسبقية على مؤثر آخر. فمثلاً

2 + ثلاثة * 4

تقوم بإرجاع القيمة 20، في حين حتى التقييم الذي يعطي الأسبقية للضرب (أي المضاعفة) يفترض أن يستدعي النتيجة 14. وكافة المؤثرات لها نسخ تقوم على البوادئ. وتقوم الدالة do عادة بتقييم الوسائط قبل تمريرها إلى أي دالة. وعليه، فإن الصيغة التالية مثلاً:

print read http://en.wikipedia.org/wiki/REBOL

تقوم في البداية بقراءة http://en.wikipedia.org/wiki/REBOL ثم تقوم بتمرير النتيجة بعد ذلك إلى الدالّة print. ويمكن استعمال الأقواس لتغيير ترتيب التقييم. وباستخدام التنويت بالبوادئ prefix notation، يمكن تلافي استخدام الأقواس في الصيغ. وتوفّر قواعد الأسبقية البسيطة عددًا من المزايا منها:

  • لا توجد حاجة "لاستشارة" جداول الأسبقية عند تحرير الصيغ
  • لا توجد حاجة لإعادة تحرير الجداول عند تعريف مؤثرات جديدة.
  • يمكن بسهولة إجراء الترجمة الصوتية من التنويت notation من الحروف الوسطية إلى البوادئ والعكس.

وهناك مساوئ منها:

  • اعتياد المستخدمين على قواعد الأسبقية الأقدم يؤدي لسهولة ارتكابهم الأخطاء.

Parse

دالة parse من الدوال المفضلة لتحليل وترجمة اللهجات حيث تقوم بمطابقة صيغ الإعراب parse expressions في زمن التشغيل. وتُخط صيغ الإعراب parse expressions في لهجة الإعراب parse dialect، والتي تعتبر – وعلى غِرار اللغة do – لهجة موجهة بالصيغ. ومن خلال خلال لهجة الـ do، تستعين لغة الإعراب parse بحدثات مفتاحية تمثل المؤثرات والرموز اللانهائية nonterminals الأكثر أهمية، ولا تحتوي المؤثرات وسطية الإعراب على ما يكافئها من البوادئ prefixes وتستخدم قواعد الأسبقية (حيث نجد حتى لـ sequence أسبقية أعلى من choice). ويمكن تضمين الإجراءات للأخذ بها أثناء عملية الإعراب أيضاً، كما يمكن استعمال دالة الـ parse لمعالجة الكتل البرمجية أوالسلاسل الحرفية. وعند مستوى إعراب السلاسل الحرفية string parsing، ينبغي على الدالة إجراء عملية الإعراب "منخفضة المستوى"، بالأخذ في الاعتبار الحروف والحدود الفاصلة delimiters. وينتمي إعراب الكتل البرمجية block parsing للمستوى الأعلى، حيث يتضمن عملية المسح على مستوى قيم الـ REBOL. وتنتمي لهجة الإعراب لعائلة القواعد البرمجية والتي تمثلها لغة الإعراب التنازلية top-down parsing أوقواعد صيغ الإعراب parsing expression grammar. ويتمثل التشابه الرئيسي في وجود مؤثرات الـ sequence وchoice الموجودة لدى جميع أفراد عائلة القواعد. ويتضح بناء وهجريب لغة الإعراب والتشابه بين لهجة الإعراب والـ PEG من خلال هذه الترجمة الصوتية لأحد الأمثلة على الـ PEG والتي تقوم بإعراب إحدى الصيغ الحسابية:

Digit: charset [#"0" - #"9"]
Value: [some Digit | "(" Expr ")"]
Product: [Value any [["*" | "/"] Value]]
Sum: [Product any [["+" | "-"] Product]]
Expr: Sum
parse/all "12+13" Expr

مثال

يمكن مثلاً عرض نافذة برنامج أهلا بالعالم التجريبية الشهيرة من خلال كتابة السطر البرمجي التالي:

view/title layout [h1 250x120 center middle "Hello world !"] "Hello world !"

وتُخط محتويات وسيط الكتلة البرمجية لدالة layout في لغة القابلة المرئية visual interface dialect.

التطبيقات

يعد التطبيق الرئيسي للغة الـ REBOL هوالمترجم المتوافر في عدة نسخ وهي (/Core و/View و/Command و/SDK و/IOS). وبعض أجزاء هذا المترجم تتسم بكونها مفتوحة المصدر open source. فمثلاً، يعتبر سطح مخط REBOL جزءًا مفتوح المصدر من مترجم الـ REBOL/View الذي يربط مجتمع REBOL على الإنترنت. وقد تمت إتاحة جميع من REBOL/Core وREBOL/View لإنتاج تطبيقات قابلة للتوزيع التجاري بدون لقاء. ويتم تخزين بيئة زمن التشغيل حاليًا في ملف تطبيقي واحد. ويصل حجم REBOL/Core، وهونسخة نافذة التحكم، إلى 300 كيلوبايت، أما حجم REBOL/View، وهي نسخة قابلة المستخدم الرسومية، فيصل إلى 650 كيلوبايت. وتقوم النسخة REBOL/View بتوفير إمكانيات دخول صوتية ورسومية مستقلة عن المنصّة، وتأتي مع أدواتها الخاصة للنوافذ ومجموعتها الممتدة من الأنماط (عناصر التحكم الرسومية GUI widgets). أما النسخ الموسّعة، على غرار REBOL/Command أوREBOL/SDK فتستلزم ترخيصًا له ثمن معين؛ حيث تتضمن خصائص مثل الاتصال المفتوح مع قواعد البيانات ODBC، وخيار إنشاء ملفات تطبيقية مستقلة بذاتها.

وتتوافر مجموعة من البرامج المجانية البديلة لهذا البرنامج، وهي:

  • The RebGUI, an alternative to VID
  • The Orca interpreter
  • The Boron Scripting Language
  • Red

مراجع

  1. Sassenrath, Carl (2000). Inside the REBOL scripting language. Dr. Dobb's Journal, 6/2000. نسخة محفوظة 27 أبريل 2009 على مسقط واي باك مشين.
  2. Roberts, Ralph (2000). REBOL for Dummies. Hungry Minds. ISBN 0-7645-0745-1.
  3. Auverlot, Olivier (2001). Rebol Programmation. Eyrolles. ISBN 2-212-11017-0.
  4. ^ Auverlot, Olivier (2007). Rebol - Guide du programmeur.
  5. In English: Auverlot, Olivier, Wood, Peter W.A. (2008). Rebol - A programmer's guide. Lulu.com
  6. Goldman, E., Blanton, J. (2000). REBOL: The Official Guide. McGraw-Hill Osborne Media. ISBN 0-07-212279-X.

وصلات خارجية

  • المسقط الرسمي
  • A REBOL tutorial
  • Developer network
  • REBOL Script Library
  • REBOL one-line programs
  • REBOL programs cookbook
  • RIX - a search engine for REBOL web pages, registering only sites containing the word «rebol»
تاريخ النشر: 2020-06-01 21:29:06
التصنيفات: برمجيات 1997, برمجيات أميغا أو إس 4, برمجيات احتكارية سابقة, لغات برمجة, لغات برمجة أنشئت في 1997, لغات برمجة بدئية الاعتماد, لغات برمجة ديناميكية, لغات برمجة ديناميكية النمط, لغات برمجة عالية المستوى, لغات برمجة نصية, لغات برمجة وظيفية, قالب أرشيف الإنترنت بوصلات واي باك, الصفحات التي تستخدم وصلات ISBN السحرية, صفحات تستخدم خاصية P154, صفحات بها بيانات ويكي بيانات, صفحات تستخدم خاصية P571, صفحات تستخدم خاصية P275, صفحات تستخدم خاصية P348, صفحات تستخدم خاصية P737, صفحات تستخدم خاصية P1195, صفحات تستخدم خاصية P856, مقالات تحتوي نصا بالإنجليزية, موقع رسمي بوصلة مختلفة عن ويكي بيانات, صفحات تستخدم خاصية P244, صفحات تستخدم خاصية P268, بوابة برمجة الحاسوب/مقالات متعلقة, جميع المقالات التي تستخدم شريط بوابات

مقالات أخرى من الموسوعة

سحابة الكلمات المفتاحية، مما يبحث عنه الزوار في كشاف:

آخر الأخبار حول العالم

مدينة حدائق العاصمة.. إعادة رسم خريطة سكان مصر (إنفوجراف)

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-06-30 03:22:48
مستوى الصحة: 44% الأهمية: 48%

أوتشا: فرار 2.6 مليون شخص من منازلهم منذ بدء الصراع في السودان 

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2023-06-30 03:26:07
مستوى الصحة: 56% الأهمية: 57%

"سين سؤال".. عرض مسرحى بمسرح جلال الشرقاوى.. قريبا

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-06-30 03:22:04
مستوى الصحة: 49% الأهمية: 59%

Réaction Conseil Canada: مطلوب عمال بكندا 2023-2024

المصدر: الوظيفة مروك - المغرب التصنيف: وظائف وأعمال
تاريخ الخبر: 2023-06-30 03:25:07
مستوى الصحة: 88% الأهمية: 86%

8000 إصابة حتى الخميس - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2023-06-30 03:24:37
مستوى الصحة: 50% الأهمية: 61%

برنت يتجه لتسجيل أول زيادة شهرية هذا العام

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-06-30 03:23:04
مستوى الصحة: 31% الأهمية: 36%

مصرع سيده سقطت من اعلي منزلها في ظروف غامضة بكفر الشيخ

المصدر: موقع الدستور - مصر التصنيف: سياسة
تاريخ الخبر: 2023-06-30 03:21:34
مستوى الصحة: 58% الأهمية: 70%

امتداد مدينة الشيخ زايد.. تكامل عمرانى خدمى.. (إنفوجراف)

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-06-30 03:22:52
مستوى الصحة: 33% الأهمية: 43%

مدينة غرب قنا.. مجتمع عمرانى متكامل فى قلب الصعيد (إنفوجراف)

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-06-30 03:22:44
مستوى الصحة: 41% الأهمية: 40%

اليوم.. الحجاج المتعجلون يختتمون مناسكهم بطواف الوداع السعودية

المصدر: جريدة الوطن - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-06-30 03:24:39
مستوى الصحة: 51% الأهمية: 70%

«شوري يمني»: ضيافة خادم الحرمين لمت شمل المختلفين - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2023-06-30 03:24:34
مستوى الصحة: 46% الأهمية: 60%

تراجع إنتاج المصانع اليابانية 1.6 % في مايو

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-06-30 03:23:07
مستوى الصحة: 31% الأهمية: 38%

ضربات الشمس.. الوفاة الصامتة ! - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2023-06-30 03:24:37
مستوى الصحة: 60% الأهمية: 58%

متحدث "الداخلية" يوجه رسالة مهمة للحجاج المتعجلين

المصدر: اليوم - السعودية التصنيف: سياسة
تاريخ الخبر: 2023-06-30 03:26:04
مستوى الصحة: 58% الأهمية: 64%

في يوم «القر» الحجاج يرمون الجمرات الثلاث - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2023-06-30 03:24:36
مستوى الصحة: 46% الأهمية: 61%

خطوات استخراج بدل فاقد للرخصة إلكترونيا

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-06-30 03:22:42
مستوى الصحة: 36% الأهمية: 38%

مدينة أسوان الجديدة.. بقعة ساحرة على ضفاف النيل (إنفوجراف)

المصدر: اليوم السابع - مصر التصنيف: غير مصنف
تاريخ الخبر: 2023-06-30 03:22:41
مستوى الصحة: 33% الأهمية: 36%

إقامة خاصة بالرباط توظف شيف مطبخ ذو خبرة، آخر أجل للترشيح هو 28 يوليوز 2023

المصدر: الوظيفة مروك - المغرب التصنيف: وظائف وأعمال
تاريخ الخبر: 2023-06-30 03:25:07
مستوى الصحة: 85% الأهمية: 91%

استيعاب أفواج الحجيج في التوسعة السعودية الثالثة - أخبار السعودية

المصدر: صحيفة عكاظ - السعودية التصنيف: مجتمع
تاريخ الخبر: 2023-06-30 03:24:35
مستوى الصحة: 45% الأهمية: 67%

تراجع إنتاج المصانع اليابانية 1.6 % في مايو

المصدر: صحيفة الإقتصادية - السعودية التصنيف: إقتصاد
تاريخ الخبر: 2023-06-30 03:23:10
مستوى الصحة: 43% الأهمية: 42%

تحميل تطبيق المنصة العربية