#خليك_مبرمج_واع
22 subscribers
247 photos
38 videos
114 files
903 links
مجموعة أخرى أكثر إفادة و تجيب على الأسئلة
https://msaht-programming-and-w-d.quora.com/?ch=10&oid=3116845&share=396067ef&srid=hBsZuY&target_type=tribe
Download Telegram
موقع شرح تثبيت اللغة:
https://aliflang.org/Learn/#
رابط التثبيت:
https://aliflang.org/Download/
الوثائق:
https://aliflang.org/Docs/#

رخصة برمجيات ألف (الإصدار 1.0)
© 1444 هـ (2023 م) – جميع الحقوق محفوظة لصالح مطوري برمجيات ألف عبدالرحمن ومحمد الخطيب - سوريا.

مقدمة:
- "برمجيات ألف" يقصد بها أي برنامج تم تطويره من قبل مالكي منظمة ألف أو اي عضو تم إعطاءه موافقة كتابية بنشر برمجية في مستودع منظمة ألف
- "البرمجية" يقصد بها البرنامج المستخدم والذي ينتمي إلى مستودع منظمة ألف

المادة 1: حقوق النشر والاستخدام
1.1 نطاق الحماية
تشمل الحماية:
- الشيفرة المصدرية للبرمجية والمكتبات الأساسية.
- التوثيق والوثائق الرسمية والأمثلة البرمجية المُرفقة.
- أي مكونات إضافية مُدرجة في المستودع الرسمي للبرمجية.

1.2 شروط التعديل
يُسمح بتعديل البرمجية أو مكتباتها شريطة:
- عدم إزالة أو تغيير إشارات حقوق النشر الأصلية (©) أو أسماء المطورين.
- إرفاق ملف (الرخصة) او (License) مع الإصدار المعدل يشير إلى التغييرات وأسماء المشاركين.
- الحصول على موافقة كتابية من المالكين الأصليين إذا كان التعديل سيُدمج في الفرع الرئيسي.

المادة 2: توزيع البرامج والمشاريع
2.1 شروط التوزيع العام
يُسمح بتوزيع البرامج الناتجة من برمجيات ألف لأي غرض (تجاري/تعليمي/شخصي) بشرط:
- إرفاق نسخة كاملة من هذه الرخصة مع كل توزيع.
- عدم توزيع "النواة الأساسية للبرمجية" كمنتج مستقل للبيع.

2.2 قيود التوزيع التجاري
يُحظر:
- بيع أي جزء من البرمجية دون ترخيص مكتوب من المطورين.
- استخدام البرمجية في مشاريع تتعارض مع القوانين أو الأخلاق العامة (مثل البرمجيات الضارة).

المادة 3: الإسناد والإعتراف
3.1 متطلبات الإسناد
عند استخدام اللغة في مشاريع عامة (مفتوحة المصدر أو تجارية):
- يجب ذكر اسم "البرمجية" بشكل واضح في:
*قسم "الاعتمادات" في البرنامج.
*التوثيق التقني أو صفحة الويب الرسمية للمشروع.

3.2 حماية الهوية
يُحظر تمامًا:
- إعادة تسمية البرمجية أو نسبتها بالكامل إلى جهة أخرى.
- استخدام شعار البرمجية أو اسم المطورين للترويج لمشاريع دون موافقة من مالكي البرمجية.

المادة 4: الملكية والإضافات
4.1 ملكية المكونات الإضافية
أي مكتبات أو إضافات تُنشَر بإستخدام برمجيات ألف:
- تظل ملكًا حصريًا لمُطوريها ما لم تُضمَّن رسميًا في المستودع الرسمي للبرمجية.
- يتحمل مُنشئ الإضافات مسؤولية توثيق حقوق النشر الخاصة بها.

4.2 الإدماج الرسمي
لدمج إضافة في المستودع الرسمي:
- يجب على المطورين تقديم طلب (Pull Request) مع موافقة على نقل الحقوق.
- يحق لفريق برمجيات ألف رفض الطلب دون إبداء أسباب.

المادة 5: التسمية والترويج
5.1 قيود استخدام الأسماء
يُحظر استخدام أسماء المطورين الأصليين أو العلامات التجارية المرتبطة ببرمجيات ألف للترويج لأي:
- نسخ معدلة (Forks) دون إخطار مسبق.
- منتجات أو خدمات تتنافس مع أهداف البرمجية المعلنة.

5.2 استثناءات
يُستثنى من ذلك:
- المشاريع التعليمية أو البحثية التي تشير إلى الأصل بوضوح.
- حالات الحصول على ترخيص كتابي من المالكين.

المادة 6: تبرئة المسؤولية
6.1 عدم الضمانات
تُقدَّم برمجيات ألف وأدواتها كما هي دون أي ضمانات، بما في ذلك:
- ضمان الأداء أو الأمان أو التوافق مع الأنظمة أو الأجهزة.
- ضمان صحة التوثيق أو استمرارية التحديثات.

6.2 مسؤولية المستخدم
يتحمل المستخدم المسؤولية الكاملة عن:
- اختبار البرمجية في بيئة معزولة قبل استخدامها في مشاريع حيوية.
- أي خسائر مالية أو فنية ناتجة عن استخدامها.
- صيانة النسخ المعدلة (Forks) وتحديثها بشكل مستقل.

المادة 7: الاختصاص القانوني
7.1 حل النزاعات
- تُحل أي نزاعات وفقًا لقوانين دولة المطورين المذكورة في ملف (License).
- في حالة عدم تحديد الدولة، تُطبق قوانين المملكة العربية السعودية.

7.2 عقوبات الانتهاك
في حال المخالفة:
- يُلزم المنتهك بإزالة المحتوى المنتهَك خلال (7 أيام).
- قد تصل الغرامات إلى 200% من الأرباح المتحققة من الانتهاك.

ملحق الرخصة
- يُنصح باستشارة خبير قانوني قبل التعديل أو التوزيع التجاري.
- للإبلاغ عن انتهاكات: التواصل عبر sha7dows@gmail.com.
- الرخصة خاضعة للتحديثات، ويمكن تتبعها عبر المستودع الرسمي.

© 1444 هـ (2023 م) – عبدالرحمن ومحمد الخطيب - سوريا. جميع الحقوق محفوظة.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
تدعم #لغة_ألف5 العديد من العمليات الحسابية، وهي كالتالي:

* الجمع: يتم باستخدام الرمز +، مثال: 1 + 2 = 3.
* الطرح: يتم باستخدام الرمز -، مثال: 9 - 3 = 6.
* الضرب: يتم باستخدام الرمز *، مثال: 2 * 8 = 16.
* القسمة: يتم باستخدام الرمز \، مثال: 9 \ 3 = 3.
* باقي القسمة (Modulo): يتم باستخدام الرمز \\، مثال: 8 \\ 5 = 3.
* ناتج القسمة (Integer Division): يتم باستخدام الرمز \*، مثال: 8 \* 3 = 2.
* القوة (Exponentiation): يتم باستخدام الرمز ^، مثال: 4 ^ 2 = 16.
* الجذر (Square Root): يتم باستخدام الرمز \^، مثال: \^ 4 = 2.
* الأولوية (Precedence): يمكن استخدام الأقواس () لتحديد أولوية العمليات الحسابية، مثال: (3 + 6) * 2 = 18.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
تدير #لغة_ألف5 الذاكرة بشكل تلقائي.

ومع ذلك، ينصح المصدر بـعدم معالجة كميات ضخمة جداً من البيانات أو الدخول في حلقات لا نهائية لتفادي أي ضرر قد يحصل لجهازك.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
أمثلة توضيحية على لغة ألف.
سوف أعمل عليها حتى أنتهي من توضيح اللغة قدر الإمكان .
الآن سوف أحل التمرين ثم أرسله
في مشكله في الكود هبعته بكره بعد ما نحل المشكله دي
الة_حاسبة.alif
4.4 KB
لبناء آلة حاسبة في لغة ألف5 تحسب الدوال المثلثية (جتا، جيب، ظل) وتطلب من المستخدم إدخال القيمة.

#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
#خليك_مبرمج_واع
الة_حاسبة.alif
لبناء آلة حاسبة في لغة ألف5 تحسب الدوال المثلثية (جتا، جيب، ظل) وتطلب من المستخدم إدخال القيمة.
(الردود المحفوظة متاحة للاطّلاع فقط)
بالتأكيد، إليك 8 أسئلة متكررة مع إجابات مفصلة حول لغة البرمجة "ألف5"، مع التركيز على المواضيع الرئيسية في المصادر المقدمة:

1. ما هي لغة البرمجة "ألف5"؟ وهل هي نفسها بايثون؟
لغة البرمجة "ألف5" هي لغة برمجة مصممة للتشغيل السهل والسريع للبرامج، مع إمكانية تشغيل الشفرة فورياً في الطرفية (وإن لم تكن هذه الميزة متاحة حالياً) أو عن طريق تنفيذ ملفات تحمل اللاحقة .alif. لا يجب تقديم "ألف5" على أنها بايثون، ولكن يمكن الإشارة إلى أنها تتبع نظام بايثون من حيث بعض المفاهيم والهيكل العام، مع الاحتفاظ بهويتها ولغتها العربية في الشرح والمصطلحات.

2. كيف يمكن تشغيل برنامج مكتوب بلغة "ألف5"؟ وما هي أوامر الطرفية الأساسية؟
يمكن تشغيل برنامج مكتوب بلغة "ألف5" بطريقتين رئيسيتين:

عبر الطرفية مباشرة: عن طريق تمرير كلمة alif في الطرفية، حيث ستبدأ الطرفية باستقبال الشفرة لتنفيذها فورياً. (ملاحظة: هذه الميزة غير متاحة حالياً).
من خلال ملف: عن طريق تمرير كلمة alif متبوعة باسم الملف الذي يحتوي على الشفرة، مثل alif test.alif.
الأوامر الطرفية الأساسية المتاحة هي:

alif -v: لعرض النسخة الحالية للغة.
alif -h: لعرض المساعدة.
3. ما هي أنواع البيانات الأساسية والعمليات المدعومة في "ألف5"؟
تدعم "ألف5" مجموعة متنوعة من أنواع البيانات والعمليات، بما في ذلك:

العمليات الحسابية: الجمع (+)، الطرح (-)، الضرب (*)، القسمة (\)، باقي القسمة (\\)، ناتج القسمة (\*)، القوة (^)، والجذر (\^). كما تدعم أولوية العمليات باستخدام الأقواس ().

المقارنات: يساوي (==)، لا يساوي (!=)، أكبر من (>)، أصغر من (<)، أكبر من أو يساوي (>=)، وأصغر من أو يساوي (<=).

العمليات المنطقية: و (AND)، او (OR)، ليس (NOT).

الإسناد: إسناد القيم (=)، إسناد متعدد (س, ص = 9, 7)، والإسناد الرجعي (مثل +=, -=, *=، وغيرها).

النصوص: تدعم النصوص العادية والنصوص المنسقة (formatted strings) التي تسمح بتضمين تعبيرات بسيطة داخل الأقواس المتعرجة {}.

الهياكل البيانية:

المصفوفات (Lists): يمكن تعريفها باستخدام الأقواس المعقوفة [] وتدعم عمليات مثل الإضافة (.اضف)، المسح (.امسح)، والإدراج (.ادرج)، بالإضافة إلى الوصول إلى العناصر باستخدام الفهرسة. تدعم أيضاً المصفوفات الضمنية (list comprehensions) لإنشاء مصفوفات بناءً على حلقات تكرار.
المترابطات (Tuples): تُعرف باستخدام الأقواس () وتسمح بالتكرار عبر القيم.
الفهارس (Dictionaries): تُعرف باستخدام الأقواس المتعرجة {} وتخزن البيانات على شكل أزواج مفتاح-قيمة. يمكن استرجاع المفاتيح باستخدام .مفاتيح() والتكرار يكون عبر المفاتيح.
4. كيف تعمل آليات الاستيراد والنطاق في "ألف5"؟
الاستيراد: تسمح "ألف5" باستيراد الملفات ذات اللاحقة .aliflib، سواء كانت ملفات فردية أو جزءًا من حزم (مجلدات تحتوي على ملفات _تهيئة_.aliflib). عند استيراد مكتبة للمرة الأولى، يتم تنفيذها، ولكن عند إعادة استيرادها، لا يتم تنفيذها مرة أخرى. يمكن الاستيراد بطرق مختلفة:

استورد اسم_المكتبة
من اسم_المكتبة استورد اسم_العنصر
استيراد من حزم فرعية مثل استورد مكتبة.فرعية.ملف_فرعي.
النطاق (Scope): تستخدم الكلمة المفتاحية عام (global) لجعل المتغيرات عامة داخل نطاق الدالة، مما يتيح التعديل عليها من داخل الدالة. يجب استدعاء الدالة لكي يصبح المتغير عاماً داخلها.

5. ما هي هياكل التحكم الرئيسية (الحلقات والشروط) في "ألف5"؟
حالة "اذا" (If-Else If-Else): تُستخدم لتنفيذ كتل من الشفرة بناءً على شروط معينة. تتضمن اذا (if)، اواذا (else if)، ووالا (else).

س = 6

اذا س > 9:

اطبع("س أكبر من 9")

اواذا س == 9:

اطبع("س تساوي 9")

والا:

اطبع("س ليست اكبر من 9 ولا تساويها")

حالة "لاجل" (For Loop): تستخدم للتكرار عبر مجموعة من القيم أو نطاق محدد. يمكن استخدام مدى() لإنشاء تسلسل من الأرقام.

لاجل ب في مدى(10):

اطبع(ب) # يطبع من 0 إلى 9

لاجل ب في (2,100,20):

اطبع(ب) # يطبع 2، 22، 42، 62، 82

لاجل ب في ("سلام", 1 , خطأ):

اطبع(ب) # يطبع القيم في المترابطة

حالة "بينما" (While Loop): تستخدم لتكرار كتلة من الشفرة طالما أن الشرط المحدد صحيح. تدعم الكلمات المفتاحية استمر (continue) للانتقال إلى التكرار التالي وتوقف (break) للخروج من الحلقة.

س = 1

بينما س < 10:

اذا س == 4:

س += 3

استمر

اواذا س == 9:

توقف

اطبع(س)

س += 1

6. كيف يتم التعامل مع الأخطاء والاستثناءات في "ألف5"؟
تُستخدم حالة حاول (Try-Except-Else-Finally) للتعامل مع الأخطاء المحتملة في الشفرة:


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
حاول: تحتوي على الشفرة التي قد تتسبب في خطأ.
خلل (Except): يتم تنفيذها إذا حدث خطأ في كتلة حاول.
وإلا (Else): يتم تنفيذها إذا لم يحدث أي خطأ في كتلة حاول.
نهاية (Finally): يتم تنفيذها دائماً، بغض النظر عما إذا كان هناك خطأ أم لا.
ملاحظة هامة: محدد الخطأ في "ألف5" غير مكتمل، وقد لا يتم تحديد موقع الخطأ بدقة أو قد يؤدي إلى خروج البرنامج دون معرفة السبب في بعض الحالات.

7. كيف يتم تعريف الدوال والأصناف والوراثة في "ألف5"؟
تعريف دالة: تستخدم الكلمة المفتاحية دالة لتعريف الدوال. يمكن للدوال قبول معاملات ذات قيم افتراضية وإرجاع قيم باستخدام ارجع.

دالة السرعة(المسافة, الزمن = 1):

ارجع المسافة \ الزمن

تعريف صنف (Class Definition): تستخدم الكلمة المفتاحية صنف لتعريف الأصناف. يتم تهيئة الصنف باستخدام دالة خاصة تسمى _تهيئة_ (constructor).

صنف مخروط_علوي:

دالة _تهيئة_(هذا, نق = 1, ع = 1):

هذا.نق_القاعدة = نق

هذا.الارتفاع = ع

الوراثة في الأصناف (Class Inheritance): تتم الوراثة عن طريق تمرير اسم الصنف الموروث ضمن قوسين بجانب اسم الصنف الوارث (مثال: صنف شخص(انسان):). يتم تهيئة الصنف الموروث من داخل الصنف الوارث باستخدام اصل()._تهيئة_(معاملات). في حال الوراثة المتعددة، يتم تهيئة كل صنف موروث باسمه بدلاً من اصل().

صنف انسان:

دالة _تهيئة_(هذا, عمر):

هذا.العمر = عمر

صنف شخص(انسان):

دالة _تهيئة_(هذا, عمر, طول):

اصل()._تهيئة_(عمر)

هذا.الطول = طول

8. ما هي القواعد التي تحكم بناء وتفسير شفرة "ألف5"؟
تعتمد قواعد مطابقة "ألف5 نـ5.0" على خليط من EBNF (Extended Backus-Naur Form) و PEG (Parsing Expression Grammar). هذه القواعد تحدد كيفية هيكلة اللغة وتفسيرها بواسطة المُطابِق (parser). بعض الجوانب الرئيسية لهذه القواعد تشمل:

تنسيق القواعد: اسم_الدالة: تعبير أو اسم_الدالة[النوع_المرجع]: تعبير (لتحديد النوع المرجع).
عوامل المطابقة:س ص: مطابقة متتالية.
س | ص: مطابقة بديلة (الأول الذي ينجح ينهي الدالة).
(س): تجميع.
[س] أو س؟: مطابقة اختيارية.
س*: صفر أو أكثر من المطابقات.
س+: واحد أو أكثر من المطابقات.
&س: نظرة أمامية إيجابية (يتابع المطابقة إذا نجح س دون استهلاكه).
!س: نظرة أمامية سلبية (يتابع المطابقة إذا لم ينجح س دون استهلاكه).
&&س: مطابقة فورية، تظهر خطأ إذا فشلت (لا تتراجع).
القواعد العامة: النصوص المحاطة بعلامات تنصيص "نص" تعتبر كلمات مفتاحية. الكلمات العريضة تعتبر كلمات محجوزة. يجب الالتزام بترتيب الحالات البديلة.
التعامل مع أخطاء النسق: تستخدم أسماء الدوال التي تبدأ بـ invalid_ لأخطاء النسق، ويتم استخدامها فقط في المحاولة الثانية للمطابق إذا فشلت المحاولة الأولى


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
دليل دراسة شامل للغة ألف5
نظرة عامة على لغة ألف5
لغة ألف5 هي لغة برمجة توفر طريقتين لتشغيل البرامج: إما عبر سطر الأوامر لتنفيذ الشفرة بشكل فوري (غير متاح حاليًا)، أو بتمرير اسم ملف بامتداد .alif لتنفيذ الشفرة الموجودة فيه. تدعم اللغة مجموعة واسعة من العمليات الأساسية والميزات المتقدمة، مثل العمليات الحسابية، المنطقية، المقارنة، والتعليقات. كما توفر آليات للتحكم في تدفق البرنامج مثل حالات إذا و لاجل و بينما و حاول. تدعم ألف5 أنواع بيانات متنوعة مثل النصوص، المصفوفات، المترابطات، والفهارس، بالإضافة إلى الدوال الضمنية وإدارة الذاكرة التلقائية. تتميز اللغة أيضًا بإمكانيات الاستيراد من الملفات والحزم، وتعريف الدوال والأصناف، والوراثة، وتحويل الأنواع.

المفاهيم الأساسية
تشغيل البرامج
التنفيذ الفوري: تشغيل alif في الطرفية واستقبال الشفرة فورياً (غير متاح حاليًا).
تنفيذ الملف: تشغيل alif متبوعًا باسم الملف (مثال: alif test.alif).
أوامر الطرفية
alif -v: لعرض النسخة الحالية من اللغة.
alif -h: لعرض المساعدة.
بناء الجملة (Syntax)
التعليقات: تبدأ بالرمز #. يمكن أن تكون في سطر منفصل أو بعد نهاية تعليمة.
حالات متعددة في سطر واحد: يتم فصل التعليمات بفاصلة منقوطة (;).
أنواع البيانات الأساسية
النصوص:نص عادي: يُحدد بعلامتي اقتباس مزدوجتين (مثال: "هذا نص عادي").
نص منسق (Formatted String): يُحدد بالحرف م قبل علامتي الاقتباس، ويسمح بتمرير عمليات بسيطة داخل أقواس متعرجة {} (مثال: م"نتيجة {7 + 9}").
المصفوفات (Lists): تُحدد بأقواس مربعة []. تدعم الإضافة (.اضف())، الحذف (.امسح())، الإدراج (.ادرج())، والوصول للعناصر بواسطة الفهرس ([ ]).
المصفوفة الضمنية: إنشاء مصفوفة باستخدام حلقة تكرار (مثال: س = [9 لاجل _ في مدى(9)]).
المترابطات (Tuples): تُحدد بأقواس عادية (). يتم التكرار خلالها عبر القيم.
الفهارس (Dictionaries/Maps): تُحدد بأقواس متعرجة {} مع أزواج مفتاح-قيمة. تدعم الحصول على المفاتيح (.مفاتيح()). يتم التكرار خلالها عبر المفاتيح.
القيم المنطقية: صح (True) و خطا (False).
العدد: يمثل الأرقام الصحيحة والعشرية.
عدم: يمثل القيمة الخالية (None).
العمليات
العمليات الحسابية:الجمع (+)، الطرح (-)، الضرب (*)، القسمة (\)، باقي القسمة (\\)، ناتج القسمة (\*)، القوة (^)، الجذر (\^).
الأولوية: تستخدم الأقواس () لتحديد أولوية العمليات.
المقارنة:يساوي (==)، لا يساوي (!=)، أكبر من (>)، أصغر من (<)، أكبر من أو يساوي (>=)، أصغر من أو يساوي (<=).
مقارنة خاصة (In/Not In): التحقق من وجود عنصر في مصفوفة (مثال: 7 في [3, 2, 9]).
العمليات المنطقية:و (AND)، او (OR)، ليس (NOT).
الإسناد (Assignment):إسناد قيمة لمتغير (مثال: س = 9).
إسناد متعدد (مثال: س, ص = 9, 7).
إسناد رجعي (Compound Assignment): عمليات مثل +=، -=، *=، \=, ^=, \*=, \\=.
إسناد شرطي (Ternary Assignment): إسناد قيمة بناءً على شرط (مثال: س = 9 اذا 6 == 6 والا 7).
الحذف (Deletion): حذف متغير (مثال: احذف س).
الدوال الضمنية (Built-in Functions)
ادخل("نص هنا: "): لأخذ مدخل من المستخدم.
اطبع("نص هنا او متغير"): لطباعة النصوص أو قيم المتغيرات.
اقصى(2, 9): لإرجاع القيمة الأكبر.
ادنى(3, 7): لإرجاع القيمة الأصغر.
طول(س): لإرجاع طول مصفوفة أو مترابطة أو فهرس.
المكتبات الضمنية (Built-in Libraries)
الوقت (Time):الوقت.الوقت(): للحصول على الوقت الحالي بالثواني.
الوقت.غفوة(9): لإيقاف التنفيذ مؤقتًا لعدد محدد من الثواني.
الرياضيات (Math):الرياضيات.جيب(30): لحساب جيب الزاوية.
الرياضيات.تجيب(60): لحساب تجيب الزاوية.
الرياضيات.ظل(90): لحساب ظل الزاوية (النتيجة بالراديان).
التحكم في تدفق البرنامج
حالة "اذا" (If Statement): لتنفيذ كتل شفرة بناءً على شروط. تدعم اواذا (elif) و والا (else).
حالة "لاجل" (For Loop): للتكرار عبر مدى من الأرقام أو عبر عناصر مصفوفة/مترابطة.
مدى(نهاية): يبدأ من 0 إلى نهاية-1.
مدى(بداية، نهاية، خطوة): يحدد البداية والنهاية وخطوة التزايد.
التكرار عبر القيم في المترابطات.
حالة "بينما" (While Loop): لتكرار كتلة شفرة طالما أن الشرط صحيح.
استمر (continue): يتخطى ما تبقى من التكرار الحالي وينتقل إلى التكرار التالي.
توقف (break): يوقف التكرار ويخرج من الحلقة.
حالة "حاول" (Try-Except/Finally): لمعالجة الأخطاء.
حاول: الكتلة التي قد تحتوي على خطأ.
خلل: الكتلة التي يتم تنفيذها في حال حدوث خطأ (استثناء).
وإلا: (اختياري) الكتلة التي يتم تنفيذها إذا لم يحدث أي خطأ.
نهاية: (اختياري) الكتلة التي يتم تنفيذها دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
👍1
الدوال المعرفة من قبل المستخدم
تعريف الدالة: يُستخدم الكلمة المفتاحية دالة. يمكن للدوال أن تأخذ معاملات بقيم افتراضية (مثال: دالة السرعة(المسافة, الزمن = 1):).
إرجاع قيمة: تُستخدم الكلمة المفتاحية ارجع لإرجاع قيمة من الدالة.
النطاق (Scope):عام: تُستخدم لجعل المتغيرات عامة ضمن نطاق الدالة.
المتغير العام لن يصبح عامًا إلا عند استدعاء الدالة.
الأصناف والوراثة (Classes and Inheritance)
تعريف الصنف: يُستخدم الكلمة المفتاحية صنف.
التهيئة (_تهيئة_): دالة خاصة تُستخدم لتهيئة كائن الصنف. تأخذ المعامل هذا (self) كأول معامل.
تمرير صنف ككائن: يمكن تمرير كائن من صنف كمعامل إلى صنف آخر.
الوراثة:تتم الوراثة بتمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):).
تهيئة الصنف الموروث: تُستخدم اصل()._تهيئة_(معاملات) لاستدعاء دالة التهيئة للصنف الأب.
وراثة متعددة: في حال وراثة أكثر من صنف، يتم تمرير أسمائهم مفصولة بفاصلة (موروث1, موروث2)، ويتم تهيئتهم باستخدام موروث1._تهيئة_(هذا, معاملات).
الاستيراد (Importing)
استيراد ملف: استورد اسم_الملف (اللاحقة .aliflib). يتم تنفيذ المكتبة عند الاستيراد الأول فقط.
استيراد عناصر محددة: من اسم_الملف استورد اسم_العنصر.
الاستيراد من الحزم (Packages): يتم تنظيم الحزم في مجلدات تحتوي على ملف _تهيئة_.aliflib.
مثال: استورد مكتبة.فرعية.ملف_فرعي.
من مكتبة.فرعية استورد ملف_فرعي.
من مكتبة.فرعية.ملف_فرعي استورد تم_الاستيراد.
استورد مكتبة.فرعية (يتطلب استيراد الدوال في ملف _تهيئة_ الخاص بالمجلد الفرعي).
تحويل النوع (Type Conversion)
صحيح("1"): تحويل إلى عدد صحيح.
عشري("0.5"): تحويل إلى عدد عشري.
مصفوفة(فهرس.مفاتيح()): تحويل مفاتيح فهرس إلى مصفوفة.
عشري("لانهائي"): يرجع قيمة عدد لانهائي موجب.
عشري("-لانهائي"): يرجع قيمة عدد لانهائي سالب.
ملاحظات عامة حول اللغة
إدارة الذاكرة: تلقائية.
محدد الخطأ: قد يكون غير مكتمل، وقد يؤدي إلى خروج البرنامج دون معرفة السبب الدقيق. يفضل تجنب معالجة كميات ضخمة من البيانات أو الحلقات اللانهائية.
قواعد مطابقة ألف نـ5.0 (Parsing Rules)
نسق القواعد
خليط من EBNF و PEG:EBNF (Extended Backus-Naur Form): تدوين خاص بقواعد لغات الحاسب.
PEG (Parsing Expression Grammar): شكل من أشكال نسق القواعد.
تنسيق القواعد العامة
اسم_الدالة: تعبير: تعريف قاعدة.
اسم_الدالة[النوع_المرجع]: تعبير: تحديد النوع المرجع (اختياري)، إذا حذف يرجع void* في C++ و أينوع في ألف.
س ص: مطابقة س ثم ص.
س | ص: مطابقة س أو ص، أول مطابقة تنهي الدالة.
(س): مطابقة المجموعة س.
[س] أو س؟: مطابقة س اختيارية.
س*: عدم مطابقة س، أو مطابقتها مرة واحدة أو أكثر.
س+: مطابقة س مرة واحدة أو أكثر.
س.ص+: مطابقة ص مرة أو أكثر، مفصولة بـ س. الفاصل س لا يُضمن في شجرة المطابق. تعادل ((س ص)*).
&س: (Lookahead) بدون استهلاك س، يتابع المطابقة إذا نجحت مطابقة س.
!س: (Negative Lookahead) بدون استهلاك س، يتابع المطابقة إذا نجح عدم مطابقة س.
~: (Cut) يلتزم بالمطابق الحالي حتى لو فشلت عملية المطابقة.
&&س: (Atomic Match) مطابقة فورية لـ س، المطابق لا يتراجع، ويظهر خطأ_نسق إذا تعذرت المطابقة.
قواعد عامة للمطابقة
الكلمات المفتاحية: النصوص المحاطة بعلامات تنصيص "نص".
الكلمات المحجوزة: الكلمات العريضة الخط.
ترتيب الحالات: يجب الالتزام بترتيب الحالات البديلة (مثال: "س | ص" يجب أن تبقى بهذا الترتيب).
دوال الأخطاء (invalid_):تُستخدم لتعريف أخطاء النسق.
لا تُستخدم في المحاولة الأولى للمطابق.
تُنفذ في محاولة ثانية فقط إذا فشلت المحاولة الأولى.
إذا فشلت المرحلة الثانية بسبب خطأ النسق، يتم استخدام موقع الفشل العام للمحاولة الأولى لتجنب الإبلاغ عن مواقع غير صحيحة.
ترتيب البدائل التي تتضمن دوال غير صالحة مهم.
حالات البداية
ملف: [حالات] نهاية: بداية تحليل الملف.
طرفية: حالة_سطر: بداية تحليل سطر في الطرفية.
الحالات الرئيسية
حالات: حالة+ (مجموعة من الحالات).
حالة: حالة_مركبة | حالات_بسيطة.
حالة_سطر: حالة_مركبة سطر | حالة_بسيطة | سطر | نهاية.
حالات_بسيطة: حالة_بسيطة !"؛" سطر | "؛".حالة_بسيطة+ ["؛"] سطر.
حالة_بسيطة: إسناد | نوع_بديل | تعبيرات_نجمة | حالة_ارجع | ... (قائمة طويلة من الحالات البسيطة).
حالة_مركبة: تعريف_دالة | حالة_اذا | تعريف_صنف | حالة_عند | حالة_لاجل | حالة_حاول | حالة_بينما | حالة_طابق.


#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
سوف ارسلها هنا في المجموعة، لأنني لا اهدف من هذا المجموعة شيء.
لأنه موجودة فقط لأرشفت فيها ما أستطيع من معرفة فقط ولا أكثر. تحياتي
تفاصيل قواعد المطابقة
إسناد: يحدد قواعد الإسناد بأنواعها المختلفة، بما في ذلك الإسناد الرجعي (+=, -=, etc.).
استيراد: قواعد لـ استورد و من ... استورد.
التعريفات (دالة، صنف): قواعد لتعريف الدوال والأصناف، بما في ذلك الزخارف (@).
معاملات الدالة: قواعد معقدة لتحديد المعاملات الاختيارية، ذات القيم الافتراضية، والمعاملات النجمية (مثل *args, **kwargs).
الحالات الشرطية والحلقات: اذا، بينما، لاجل، حاول، طابق، مع تفاصيل الهياكل الداخلية.
الأنماط (Patterns): قواعد مطابقة الأنماط المستخدمة في حالة_طابق، تشمل الأنماط الحرفية، الالتقاط، الشاملة، القيم، المجموعات، المتسلسلة، الفهارس، والأصناف.
التعبيرات (Expressions): قواعد لمطابقة أنواع مختلفة من التعبيرات، بما في ذلك التعبيرات الشرطية (اذا...والا)، التعبيرات المولدة (ولد من)، وتعبيرات النجمة (*).
عمليات المقارنة والمنطقية والرياضية: قواعد مفصلة لترتيب أسبقية العمليات (منطقية، مقارنة، بتية، رياضية).
العناصر الأولية (Primitives): قواعد مطابقة العناصر الأساسية مثل الأسماء، القيم المنطقية، الأرقام، النصوص، والمصفوفات/الفهارس/المترابطات.
النصوص (Strings): قواعد للنصوص العادية والنصوص التنفيذية (formatted strings).
الحاويات (Containers): قواعد لمطابقة المصفوفات، المترابطات، التشكيلات، والفهارس، بما في ذلك الأنواع الضمنية (comprehensions).
الوسيطات (Arguments): قواعد مطابقة الوسيطات في استدعاءات الدوال، بما في ذلك الوسيطات الموضعية والمفتاحية والنجمية.
أهداف الإسناد والحذف: قواعد لتحديد الأهداف التي يمكن الإسناد أو الحذف منها.
اختبار قصير: لغة ألف5
أجب عن الأسئلة التالية بإيجاز (2-3 جمل لكل إجابة).

ما هي الطريقتان الرئيسيتان لتشغيل برنامج مكتوب بلغة ألف5؟ وما هو أمر الطرفية المستخدم لكل طريقة؟
كيف يتم إضافة تعليقات في شفرة ألف5، وهل يمكن وضع عدة تعليمات في سطر واحد؟
اذكر ثلاثة من العمليات الحسابية المتوفرة في لغة ألف5، وكيف يمكن التحكم في أولويتها؟
ما هو الفرق بين النص العادي والنص المنسق في ألف5؟ وما هي الميزة الرئيسية للنص المنسق؟
اشرح كيفية عمل س.اضف(7) و س.امسح("سلام") عند التعامل مع المصفوفات في ألف5.
ما هو الغرض من دالة ادخل() ودالة اطبع() ضمن الدوال الضمنية في ألف5؟
ما هي الكلمة المفتاحية المستخدمة لتعريف دالة في ألف5؟ وكيف يمكن تحديد قيمة افتراضية لمعامل الدالة؟
اشرح باختصار مفهوم "النطاق" في لغة ألف5، وكيف تؤثر الكلمة المفتاحية عام على المتغيرات داخل الدالة؟
ما هو الغرض من حالة حاول في ألف5؟ وما هي الكتل الثلاثة (باستثناء وإلا) التي يمكن استخدامها معها؟
كيف تتم الوراثة بين الأصناف في ألف5؟ وما هي الطريقة الموصى بها لتهيئة الصنف الموروث داخل الصنف الوارث؟
مفتاح الإجابات: اختبار قصير
الطريقتان هما: تشغيل alif في الطرفية لتنفيذ الشفرة بشكل فوري (غير متاح حاليًا)، أو تمرير كلمة alif متبوعة باسم الملف (مثال: alif test.alif) لتنفيذ الشفرة المكتوبة في الملف.
تتم إضافة التعليقات في شفرة ألف5 باستخدام الرمز #. نعم، يمكن وضع عدة تعليمات في سطر واحد عن طريق فصلها بفاصلة منقوطة (;).
ثلاث عمليات حسابية متوفرة هي: الجمع (+)، الطرح (-)، والضرب (*). يمكن التحكم في أولويتها باستخدام الأقواس ().
النص العادي يُحدد بعلامتي اقتباس مزدوجتين فقط، بينما النص المنسق يُحدد بالحرف م قبل علامتي الاقتباس. الميزة الرئيسية للنص المنسق هي إمكانية تمرير وعمليات حسابية بسيطة ضمن أقواس متعرجة {} داخل النص.
عند التعامل مع المصفوفات س.اضف(7) تقوم بإضافة العدد 7 إلى نهاية المصفوفة س. بينما س.امسح("سلام") تقوم بمسح أو حذف العنصر "سلام" من المصفوفة.
دالة ادخل() تُستخدم لأخذ مدخل من المستخدم، بينما دالة اطبع() تُستخدم لطباعة النصوص أو قيم المتغيرات على الشاشة.
الكلمة المفتاحية المستخدمة لتعريف دالة في ألف5 هي دالة. يمكن تحديد قيمة افتراضية لمعامل الدالة بوضع علامة = متبوعة بالقيمة بعد اسم المعامل في تعريف الدالة، مثل دالة السرعة(المسافة, الزمن = 1):.
النطاق في ألف5 يشير إلى المنطقة التي يكون فيها المتغير مرئيًا ويمكن الوصول إليه. الكلمة المفتاحية عام تُستخدم لجعل المتغير عامًا ضمن نطاق الدالة، ولكن المتغير لن يصبح عامًا فعليًا إلا عند استدعاء الدالة.
الغرض من حالة حاول هو معالجة الأخطاء التي قد تحدث أثناء تنفيذ جزء من الشفرة. الكتل الثلاث التي يمكن استخدامها معها هي حاول (try)، خلل (except)، و نهاية (finally).
تتم الوراثة بين الأصناف في ألف5 عن طريق تمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):). الطريقة الموصى بها لتهيئة الصنف الموروث هي استخدام اصل()._تهيئة_(معاملات) داخل دالة التهيئة للصنف الوارث.