رينج (لغة برمجة) - ويكيبيديا

رينج (بالإنجليزية: Ring)‏ وتعنى الخاتم، هي لغة برمجة جديدة [3]، الرينج تعد لغة برمجة نصية تشبه في ذلك بايثون وروبي وهي مطورة باستخدام لغة سي، وتعمل على مختلف أنظمة التشغيل مثل ويندوز ولينكس وماك، كما تدعم العديد من أنماط البرمجة [4][5]

تاريخ اللغة

[عدل]
  • بدأ التخطيط لها في نوفمبر 2011م
  • بدأ التنفيذ في سبتمبر 2013م
  • تم اختيار اسم اللغة في إبريل 2015م
  • تم الانتهاء من المترجم في مايو 2015م
  • تم الانتهاء من كتابة التوثيق في سبتمبر 2015م
  • تم إطلاق الإصدار الأول في 25 يناير 2016م
  • تم إطلاق الإصدار 1.1 في 6 أكتوبر 2016م
  • تم إطلاق الإصدار 1.2 في 25 يناير 2017م
  • تم إطلاق الإصدار 1.3 في 15 مايو 2017م
  • تم إطلاق الإصدار 1.4 في 29 يونيو 2017م
  • تم إطلاق الإصدار 1.5 في 21 أغسطس 2017م
  • تم إطلاق الإصدار 1.6 في 30 نوفمبر 2017م
  • تم إطلاق الإصدار 1.7 في 25 يناير 2018م
  • تم إطلاق الإصدار 1.8 في 25 يونيو 2018م
  • تم إطلاق الإصدار 1.9 في 6 أكتوبر 2018م
  • تم إطلاق الإصدار 1.10 في 25 يناير 2019م
  • تم إطلاق الإصدار 1.11 في 15 سبتمبر 2019م
  • تم إطلاق الإصدار 1.12 في 25 يناير 2020م
  • تم إطلاق الإصدار 1.13 في 15 سبتمبر 2020م
  • تم إطلاق الإصدار 1.14 في 25 يناير 2021م
  • تم إطلاق الإصدار 1.15 في 24 سبتمبر 2021م
  • تم إطلاق الإصدار 1.16 في 23 أكتوبر 2021م

[6][7][8]

الهدف

[عدل]
  • لغة برمجة متخصصة في تطوير التطبيقات
  • تركز على الإنتاجية وتطوير التطبيقات ذات الجودة العالية
  • لغة صغيرة الحجم وسريعة يمكن تضمينها في مشاريع بلغة سى أو سى++
  • لغة بسيطة يمكن أن تستخدم في التعليم وكذلك تقديم مفاهيم بناء لغات البرمجة
  • لغة عامة ومتعددة الأغراض يمكن ان تستخدم في بناء الأدوات والمكتبات المتخصصة في مجال معين
  • لغة عملية صممت من أجل بناء الجيل القادم من مشروع تقنية البرمجة بدون كود.[9]

امثلة

[عدل]

برنامج Hello World!

[عدل]

يمكن كتابة برنامج الترحيب كالتالى:

See "Hello, World!" 

ما يلي هو نص برمجي لتنفيذ تعمية قيصر على مدخل معين :

# Project : Caesar cipher  cipher = "pack my box with five dozen liquor jugs" abc = "abcdefghijklmnopqrstuvwxyz" see "text is to be encrypted:" + nl see cipher+ nl + nl str = "" key = random(24) + 1 see "key = " + key + nl + nl see "encrypted:" + nl caesarencode(cipher, key) see str + nl + nl cipher = str see "decrypted again:" + nl caesardecode(cipher, key) see str + nl  func caesarencode(cipher, key)        str = ""        for n = 1 to len(cipher)             if cipher[n] != " "                pos = substr(abc, cipher[n])                if pos + key < len(abc)                   str = str + abc[pos + key]                else                   if (pos+key)-len(abc) != 0                      str = str + abc[(pos+key)%len(abc)]                   else                       str = str +abc[key+pos]                   ok                     ok                 else                   str = str + " "                ok        next      return str  func caesardecode(cipher, key)        str = ""        for n= 1 to len(cipher)             if cipher[n] != " "                pos = substr(abc, cipher[n])                if (pos - key) > 0 and pos != key                    str = str + abc[pos - key]                    loop                else                     if pos = key                       str = str + char(122)                    else                      str = str + abc[len(abc)-(key-pos)]                    ok                                     ok                             else                str = str + " "             ok        next        return str 

تدعم رينج البرمجة كائنية التوجه (الكائنات، الاصناف، التغليف، الوراثة)

new point {            # Create new object from the Point class the access the object using braces x=10  y=20  z=30       # Set the object attributes print()                # Call the print() method }                      # end of object access using braces class point            # Define the class x y z                  # Define the attributes (x,y,z) func print             # Define the print() method ? x + nl + y + nl + z  # Print the attributes values (nl means printing a new line) 

العودية في رينج

[عدل]

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

for n = 1 to 15     see catalan(n) + nl next   func catalan n      if n = 0 return 1 ok      cat = 2 * (2 * n - 1) * catalan(n - 1) / (n + 1)      return cat 

المخرجات:

1 2 5 14 42 132 429 1430 4862 16796 58786 208012 742900 2674440 9694845 

مراجع

[عدل]
  1. ^ "Released 1.21.2". 13 سبتمبر 2024. اطلع عليه بتاريخ 2024-09-13.
  2. ^ ا ب ج د ه و ز ح ط وصلة مرجع: http://ring-lang-081.osdn.jp/docs-1.10/introduction.html#ring.
  3. ^ لغة برمجة جديدة بمواصفات عالمية من إبتكار مهندس مصرى الموقع الإخباري اليوم السابع ، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2016-07-28. اطلع عليه بتاريخ 2016-04-21.{{استشهاد ويب}}: صيانة الاستشهاد: BOT: original URL status unknown (link)
  4. ^ لغة برمجية جديدة بأيدٍ عربيةموقع الباحثون المسلمون، اطلع عليه بتاريخ 22-04-2016 نسخة محفوظة 11 أكتوبر 2017 على موقع واي باك مشين.
  5. ^ موقع الغيتهوب الموقع لإستضافة المشاريح الحرة المفتوحة المصدر، اطلع عليه بتاريخ 22-04-2016 نسخة محفوظة 10 يناير 2020 على موقع واي باك مشين.
  6. ^ إصدارات اللغةموقع أخبار اللغة، اطلع عليه بتاريخ 12-10-2017 نسخة محفوظة 12 أكتوبر 2017 على موقع واي باك مشين.
  7. ^ historyموقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.{{استشهاد ويب}}: صيانة الاستشهاد: BOT: original URL status unknown (link)
  8. ^ تطور إصدارات اللغةتطور اللغة، اطلع عليه بتاريخ 27-01-2019 نسخة محفوظة 08 أكتوبر 2018 على موقع واي باك مشين.
  9. ^ motivationموقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.{{استشهاد ويب}}: صيانة الاستشهاد: BOT: original URL status unknown (link)

وصلات خارجية

[عدل]


ملحوظات

[عدل]

تم استخدام إبانة نحو للغة البرمجة لوا في الاكواد بتلك الصفحة لعدم توافر إبانة نحو خاصة برينج في ويكيبيديا، استخدمت إبانة نحو لوا لانها الاقرب الى رينج.