رينج (لغة برمجة)
رينج (لغة برمجة)

الشعار
| التصنيف |
لغة برمجة — لغة برمجة كائنية التوجه [لغات أخرى] — لغة برمجة وظيفية [لغات أخرى] — لغة برمجة متعددة الأنماط [لغات أخرى] — لغة برمجة أمرية [لغات أخرى] — لغة مفسرة — برمجيات حرة — لغة برمجة نصية |
|---|---|
| التنميط | |
| ظهرت في | |
| صممها |
محمود سمير فايد |
| نظام التشغيل | |
| الرخصة |
| المطور |
محمود سمير فايد |
|---|---|
| الإصدار الأول |
2016 |
| الإصدار الأخير | |
| المستودع |
| متأثرة بـ |
|---|
| امتدادات الملفات |
كود مصدري: ring.* |
|---|---|
| موقع الويب |
رينج (بالإنجليزية: Ring) وتعنى الخاتم، هي لغة برمجة جديدة [2]، الرينج تعد لغة برمجة نصية تشبه في ذلك بايثون وروبي وهي مطورة باستخدام لغة سي، وتعمل على مختلف أنظمة التشغيل مثل ويندوز ولينكس وماك، كما تدعم العديد من أنماط البرمجة [3][4]
تاريخ اللغة
- بدأ التخطيط لها في نوفمبر 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م
الهدف
- لغة برمجة متخصصة في تطوير التطبيقات
- تركز على الإنتاجية وتطوير التطبيقات ذات الجودة العالية
- لغة صغيرة الحجم وسريعة يمكن تضمينها في مشاريع بلغة سى أو سى++
- لغة بسيطة يمكن أن تستخدم في التعليم وكذلك تقديم مفاهيم بناء لغات البرمجة
- لغة عامة ومتعددة الأغراض يمكن ان تستخدم في بناء الأدوات والمكتبات المتخصصة في مجال معين
- لغة عملية صممت من أجل بناء الجيل القادم من مشروع تقنية البرمجة بدون كود.[8]
امثلة
برنامج 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 2 3 4 5 6 7 8 9 وصلة مرجع: 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 نسخة محفوظة 12 أغسطس 2022 على موقع واي باك مشين.موقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.
{{استشهاد ويب}}: صيانة الاستشهاد: BOT: original URL status unknown (link) - ↑ تطور إصدارات اللغةتطور اللغة، اطلع عليه بتاريخ 27-01-2019 نسخة محفوظة 08 أكتوبر 2018 على موقع واي باك مشين.
- ↑ motivation نسخة محفوظة 30 أغسطس 2017 على موقع واي باك مشين.موقع سورس فورغ لإستضافة المشاريع الحرة، اطلع عليه بتاريخ 22-04-2016 "نسخة مؤرشفة". مؤرشف من الأصل في 2017-08-30. اطلع عليه بتاريخ 2016-04-21.
{{استشهاد ويب}}: صيانة الاستشهاد: BOT: original URL status unknown (link)
وصلات خارجية
ملحوظات
تم استخدام إبانة نحو للغة البرمجة لوا في الاكواد بتلك الصفحة لعدم توافر إبانة نحو خاصة برينج في ويكيبيديا، استخدمت إبانة نحو لوا لانها الاقرب الى رينج.