المستندات

ما الجديد في لغة ألف نـ5

جميع التحديثات والتغيرات في لغة برمجة ألف
من الإصدار الاول حتى اخر إصدار 5.2.0


الإصدارات على جيت هاب

الجديد في نسخة ألف 5.2.0: . جيت هابالتاريخ: 1/8/1447

1- إضافة ميزة تغليف المعاملات الممررة للدالة. مثال:

دالة تجربة(س, *ض):
اطبع(س)
اطبع(ض)

تجربة(2, 5, 9)
# 2
# (5, 9)

2- إضافة ميزة تغليف المعاملات المفتاحية الممررة للدالة. مثال:

دالة تجربة(**ض):
اطبع(ض)

تجربة(رقم1 = "1", رقم2 = "2")
# {'رقم1': '1', 'رقم2': '2'}

3- إضافة دالة ضمنية تدعى "تحقق_اي" حيث تستقبل متغير من نوع حاوية مثل المصفوفة او الفهرس وتقوم بالمرور على جميع عناصره وفي حال وجدت قيمة واحدة صحيحة ترجع صح وإلا ترجع خطأ. مثال:

س = تحقق_اي([1, 0, 4])
اطبع(س)
# صح
س = تحقق_اي([0, "", عدم])
اطبع(س)
# خطأ

4- إضافة الدالة الخاصة والمتغير الخاص للصنف: مثال:

صنف الكرة:
دالة __تهيئة__(هذا):
هذا.__اسم_خاص = 9

دالة __القطر(هذا):
ارجع 5

دالة احسب_الحجم(هذا):
اطبع(هذا.__القطر() ^ 2 * 3.14)

كرة = الكرة()
كرة.احسب_الحجم()
# 78.5
كرة.__القطر()
# خلل بسبب عدم قدرة البرنامج على الوصول إلى هذه الدالة بشكل مباشر لأنها خاصة
اطبع(كرة.__اسم_خاص)
# خلل بسبب عدم قدرة البرنامج على الوصول إلى هذا المتغير بشكل مباشر لأنه خاصة

5- إضافة دالة __عرض__() الخاصة بالصنف والتي تسمح بطباعة قيمة للصنف عند طباعته. مثال:

صنف تجربة:
دالة __عرض__(هذا):
ارجع "هذا صنف تجربة"

التجربة = تجربة()
اطبع(التجربة)
# هذا صنف تجربة

6- إضافة دالة __استدعاء__() الخاصة بالصنف والتي تسمح بإستدعاء الصنف بعد إنشائه. مثال:

صنف تجربة:
دالة __تهيئة__(هذا, عدد):
هذا.متغير = عدد

دالة __استدعاء__(هذا):
ارجع هذا.متغير * 2

التجربة = تجربة(70)
اطبع(التجربة())
# 140

7- إضافة دالتي __اجمع__() و __اجمع_ع__() حيث تقوم الاولى بجمع الصنف مع القيمة الاخرى أما الثانية فتقوم بجمع القيمة مع الصنف وذلك لتفادي حصول خطأ في حال تم تمرير القيم بشكل معكوس. مثال:

صنف تجربة:
دالة __تهيئة__(هذا, القيمة):
هذا.قيمة = القيمة

دالة __عرض__(هذا):
ارجع م"هذه الدالة ترجع القيمة {هذا.قيمة}"

دالة __اجمع__(هذا, الاخر):
ارجع تجربة(هذا.قيمة + الاخر)

دالة __اجمع_ع__(هذا, الاخر):
ارجع تجربة(الاخر + هذا.قيمة)

التجربة = تجربة(18)
نتيجة = التجربة + 9
نتيجة2 = 3 + التجربة

اطبع(التجربة)
# هذه الدالة ترجع القيمة 18
اطبع(نتيجة)
# هذه الدالة ترجع القيمة 27
اطبع(نتيجة2)
# هذه الدالة ترجع القيمة 21

8- إضافة خاصية استبدل() لنوع النص حيث يمكن استبدال جزء من النص بجزء اخر إما مرة او اكثر من ذلك. مثال:

س = "السلام عليكم ورحمة الله"
ص = س.استبدل("عليكم", "علينا وعليكم")
اطبع(ص)
# السلام علينا وعليكم ورحمة الله

س = "هذا النص فيه نص مكرر ونريد تغيير كلمة واحدة منه"
ص = س.استبدل("نص", "متغير", 1)
اطبع(ص)
# هذا المتغير فيه نص مكرر ونريد تغيير كلمة واحدة منه

9- إضافة القدرة على التحكم بالفاصل بين المعاملات ونهايتها في دالة اطبع() مثال:

اطبع("السلام", "عليكم", الفاصل=" ", النهاية=".")
# السلام عليكم.

10- إضافة القدرة على التحويل الى نوع مترابطة: مثال:

ص = "123"
س = مترابطة(ص)
اطبع(س)
# (1, 2, 3)
------------
ص = [1, 4]
س = مترابطة(ص)
اطبع(س)
# (1, 4)

11- إضافة حالة مولد التعبير: مثال:

س =لكل ص في مدى(9))
اطبع(مترابطة(س))
# (0, 1, 2, 3, 4, 5, 6, 7, 8)

12- إضافة دالة احضر() الخاصة بالفهرس حيث تقوم بجلب قيمة من الفهرس عن طريق تمرير المفتاح وتستقبل قيمة اخرى بحيث في حال فشل إحضار القيمة من الفهرس تقوم بإرجاع القيمة الإفتراضية. مثال:

س = {"تفاح": 5, "تين": 3}
ص = س.احضر("تفاح")
ض = س.احضر("موز", 0)
اطبع(ص)
اطبع(ض)
# 5
# 0

13- إضافة القدرة على التحويل الى نوع منطق: مثال:

ص = 5
س = منطق(ص)
اطبع(س)
# صح
------------
ص = عدم
س = منطق(ص)
اطبع(س)
# خطأ

14- إضافة دالة افصل() للنص. مثال:

نص = "السلام, عليكم, ورحمة, الله"
اطبع(نص.افصل()) # في هذه الحالة يقوم بفصل النص على اساس الفراغ
اطبع(نص.افصل(", ")) # في هذه الحالة يقوم بفصل النص على اساس الفاصلة مع المسافة الممررة
اطبع(نص.افصل(",", 2)) # في هذه الحالة يقوم بفصل النص على اساس الفاصلة فقط مرتين

# ['السلام,', 'عليكم,', 'ورحمة,', 'الله']
# ['السلام', 'عليكم', 'ورحمة', 'الله']
# ['السلام', ' عليكم', ' ورحمة, الله']

15- إضافة دالة قسم() للنص حيث تقوم بتقسيم النص إلى ثلاث اجزاء بالنسبة للمعامل الممرر. مثال:

نص = "ملف.لاحقة"
اطبع(نص.قسم("."))
# ('ملف', '.', 'لاحقة')

1- التوقف عن استخدام كلمة "لاجل" في الحلقة التكرارية وذلك بسبب بيان خطأ إستخدامها في هذه الحالة وقد تم إستبدالها بكلمة "لكل" وذلك لأنها صحيحة الإستخدام في هذه الحالة.

2- تم تغيير تهيئة الصنف والمكتبة من "تهيئة" إلى "__تهيئة__" وذلك من اجل التعامل مع الاسم المسبوق بشحطة واحدة على أنه خاص غير إجباري ولا يمكن إستيراده في ملف مختلف

1- تم التحسين على نظام الاخطاء بشكل بسيط

2- تم التحسين على نظام الطباعة وفتح الملف

3- تم التحسين على نظام البناء للأنظمة المستندة الى نظام لينكس, يمكن تمرير make help لعرض خيارات البناء المتاحة والمساعدة

الجديد في نسخة ألف 5.1.0: . جيت هابالتاريخ: 1/4/1447

1- إضافة ميزة جمع نصين عن طريق عملية الجمع، مثال:

س = "السلام " + "عليكم"
اطبع(س)
#السلام عليكم

2- إضافة ميزة ترتيب المصفوفة تصاعديا، مثال:

س = [5، 9، 1، 6]
س.رتب()
اطبع(س)
# [1، 5، 6، 9]

3- حقن النص بسطر جديد: مثال:

س = "سطر\س سطر جديد"
اطبع(س)
# سطر
# سطر جديد

4- إضافة دالة وقت() لمكتبة الوقت حيث أنها تقوم بإرجاع المعلومات على شكل فهرس. النتيجة المرجعة: {السنة:2025، الشهر: 7، اليوم: 9، الساعة "بنظام الـ24 ساعة": 13، الدقيقة: 4، الثانية: 56، يوم_اسبوع "ترتيب اليوم في الاسبوع حيث يبدأ من الاثنين": 2، يوم_سنة "ترتيب اليوم خلال السنة": 183،هل_صيفي "هل نظام التوقيت الصيفي مفعل أم لا": 0، النطاق: "Arab Standard"، الإزاحة: 10800} مثال:

استورد الوقت
س = الوقت.وقت()
اطبع(م"التاريخ: {س["السنة"]}-{س["الشهر"]}-{س["اليوم"]} \سالوقت: {س["الساعة"]}:{س["الدقيقة"]}:{س["الثانية"]}")
# التاريخ: 2025-10-1
# الوقت: 3:20:55

6- إضافة دالة منسق() لمكتبة الوقت حيث تقوم بإرجاع معلومات الوقت بشكل منسق على شكل نص. مثال:

استورد الوقت()
س = الوقت.منسق()
اطبع(س)
# الخميس يوليو 2 13:27:28 2025

7- إضافة قراءة قيم الفهرس، حيث يمكن تحويلها إلى مصفوفة للعمل عليها مثال:

س = {"أ": 3, "ب": 5, "ت": 7}
اطبع(س.قيم())
# قيم_فهرس([3, 5, 7])

8- إضافة دالة ضمنية لقراءة الملف كامل او سطر منه مع إغلاقه بعد الإنتهاء، حيث حرف "ق" يعبر عن قراءة. مثال:

س = افتح("ملف.json"، "ق")
اطبع(س.اقرا_سطر())
اطبع(س.اقرا())
س.اغلق()
# محتويات الملف

9- إضافة القدرة على جذر الاعداد العشرية مثال:

س = \^ 3.9
اطبع(س)
# 1.9748417658131

10- القدرة على تشغيل حالة عن طريق الطرفية مثال:

alif  "اطبع(9)"
# 9

1- تم تصحيح مشكلة تظهر عند عدم إغلاق القوس حيث كان الخطأ لا يظهر باللغة العربية 2- تصحيح طباعة الوقت الحالي في مكتبة الوقت من الوقت.الوقت() --> الوقت.الان()

1- الان لاحقة الملف يمكن أن تكون .الف او .alif
مثال:

مثال.الف
example.alif

2- طريقة طباعة المساعدة والنسخة في الطرفية أصبحت كالتالي:

alif  او --مساعدة : للمساعدة 
alif او --نسخة : نسخة ألف الحالية

3- حالة (لاجل) اصبحت تقبل (لكل)
مثال:

|لاجل ب في مدى(50):	|لكل ب في مدى(50):
| اطبع(ب) | اطبع(ب)