رينج (لغة برمجة) - ويكيبيديا
رينج (لغة برمجة)
التصنيف | القائمة ... |
---|---|
التنميط | القائمة ... |
ظهرت في | |
صممها | محمود سمير فايد |
نظام التشغيل | |
الرخصة |
المطور | محمود سمير فايد |
---|---|
الإصدار الأول | |
الإصدار الأخير | |
المستودع |
متأثرة بـ |
---|
امتدادات الملفات | كود مصدري: ring.* |
---|---|
موقع الويب |
رينج (بالإنجليزية: 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م
الهدف
[عدل]- لغة برمجة متخصصة في تطوير التطبيقات
- تركز على الإنتاجية وتطوير التطبيقات ذات الجودة العالية
- لغة صغيرة الحجم وسريعة يمكن تضمينها في مشاريع بلغة سى أو سى++
- لغة بسيطة يمكن أن تستخدم في التعليم وكذلك تقديم مفاهيم بناء لغات البرمجة
- لغة عامة ومتعددة الأغراض يمكن ان تستخدم في بناء الأدوات والمكتبات المتخصصة في مجال معين
- لغة عملية صممت من أجل بناء الجيل القادم من مشروع تقنية البرمجة بدون كود.[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
مراجع
[عدل]- ^ "Released 1.21.2". 13 سبتمبر 2024. اطلع عليه بتاريخ 2024-09-13.
- ^ ا ب ج د ه و ز ح ط وصلة مرجع: http://ring-lang-081.osdn.jp/docs-1.10/introduction.html#ring.
- ^ لغة برمجة جديدة بمواصفات عالمية من إبتكار مهندس مصرى الموقع الإخباري اليوم السابع ، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2016-07-28. اطلع عليه بتاريخ 2016-04-21.
{{استشهاد ويب}}
: صيانة الاستشهاد: BOT: original URL status unknown (link) - ^ لغة برمجية جديدة بأيدٍ عربيةموقع الباحثون المسلمون، اطلع عليه بتاريخ 22-04-2016 نسخة محفوظة 11 أكتوبر 2017 على موقع واي باك مشين.
- ^ موقع الغيتهوب الموقع لإستضافة المشاريح الحرة المفتوحة المصدر، اطلع عليه بتاريخ 22-04-2016 نسخة محفوظة 10 يناير 2020 على موقع واي باك مشين.
- ^ إصدارات اللغةموقع أخبار اللغة، اطلع عليه بتاريخ 12-10-2017 نسخة محفوظة 12 أكتوبر 2017 على موقع واي باك مشين.
- ^ historyموقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.
{{استشهاد ويب}}
: صيانة الاستشهاد: BOT: original URL status unknown (link) - ^ تطور إصدارات اللغةتطور اللغة، اطلع عليه بتاريخ 27-01-2019 نسخة محفوظة 08 أكتوبر 2018 على موقع واي باك مشين.
- ^ motivationموقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.
{{استشهاد ويب}}
: صيانة الاستشهاد: BOT: original URL status unknown (link)
وصلات خارجية
[عدل]- موقع اللغة على sourceforge.net
- مقال عن اللغة في codeproject.com
- مرجع كامل عن اللغة
- مجموعة من الأمثلة لبرامج صغيرة كتبت برينج
رينج في المشاريع الشقيقة: | |
|
ملحوظات
[عدل]تم استخدام إبانة نحو للغة البرمجة لوا في الاكواد بتلك الصفحة لعدم توافر إبانة نحو خاصة برينج في ويكيبيديا، استخدمت إبانة نحو لوا لانها الاقرب الى رينج.