رينج (لغة برمجة)
المظهر
رينج (لغة برمجة)
التصنيف | القائمة ... |
---|---|
التنميط | القائمة ... |
ظهرت في | |
صممها |
محمود سمير فايد |
نظام التشغيل | |
الرخصة |
المطور |
محمود سمير فايد |
---|---|
الإصدار الأول | |
الإصدار الأخير | |
المستودع |
متأثرة بـ |
---|
امتدادات الملفات |
كود مصدري: 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.22". 1 ديسمبر 2024. اطلع عليه بتاريخ 2024-12-03.
- ^ ا ب ج د ه و ز ح ط وصلة مرجع: 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
- مرجع كامل عن اللغة
- مجموعة من الأمثلة لبرامج صغيرة كتبت برينج
ملحوظات
[عدل]تم استخدام إبانة نحو للغة البرمجة لوا في الاكواد بتلك الصفحة لعدم توافر إبانة نحو خاصة برينج في ويكيبيديا، استخدمت إبانة نحو لوا لانها الاقرب الى رينج.