رينج (لغة برمجة)
لغة برمجة
رينج (بالإنجليزية: Ring) وتعنى الخاتم، هي لغة برمجة جديدة [3]، الرينج تعد لغة برمجة نصية تشبه في ذلك بايثون وروبي وهي مطورة باستخدام لغة سي، وتعمل على مختلف أنظمة التشغيل مثل ويندوز ولينكس وماك، كما تدعم العديد من أنماط البرمجة [4][5]
رينج (لغة برمجة)
التصنيف | |
---|---|
التنميط | |
ظهرت في | |
صممها |
محمود سمير فايد |
نظام التشغيل | |
الرخصة |
المطور |
محمود سمير فايد |
---|---|
الإصدار الأول | |
الإصدار الأخير | |
المستودع |
متأثرة بـ |
---|
امتدادات الملفات |
كود مصدري: ring.* |
---|---|
موقع الويب |
تاريخ اللغة
عدل- بدأ التخطيط لها في نوفمبر 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)
وصلات خارجية
عدلملحوظات
عدلتم استخدام إبانة نحو للغة البرمجة لوا في الاكواد بتلك الصفحة لعدم توافر إبانة نحو خاصة برينج في ويكيبيديا، استخدمت إبانة نحو لوا لانها الاقرب الى رينج.