الدوال المعرفة من قبل المستخدم
تعريف الدالة: يُستخدم الكلمة المفتاحية دالة. يمكن للدوال أن تأخذ معاملات بقيم افتراضية (مثال: دالة السرعة(المسافة, الزمن = 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 عن طريق تمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):). الطريقة الموصى بها لتهيئة الصنف الموروث هي استخدام اصل()._تهيئة_(معاملات) داخل دالة التهيئة للصنف الوارث.
إسناد: يحدد قواعد الإسناد بأنواعها المختلفة، بما في ذلك الإسناد الرجعي (+=, -=, 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 عن طريق تمرير اسم الصنف الموروث بين قوسين بعد اسم الصنف الوارث (مثال: صنف شخص(انسان):). الطريقة الموصى بها لتهيئة الصنف الموروث هي استخدام اصل()._تهيئة_(معاملات) داخل دالة التهيئة للصنف الوارث.
مسرد المصطلحات الأساسية (Glossary)
ألف5 (Alif5): لغة برمجة عربية تتميز ببساطة بناء الجملة وميزات برمجية متقدمة.
الطرفية (Terminal): واجهة سطر الأوامر التي يمكن من خلالها تشغيل برامج ألف5.
alif -v: أمر طرفية لعرض رقم نسخة لغة ألف5 المثبتة.
alif -h: أمر طرفية لعرض تعليمات المساعدة حول لغة ألف5.
التعليقات (#): نصوص في الشفرة يتجاهلها المترجم، تستخدم لتوضيح الغرض من الشفرة.
النص العادي (Normal String): سلسلة من الحروف محاطة بعلامتي اقتباس مزدوجتين، تُعالج كنص ثابت.
النص المنسق (Formatted String): سلسلة من الحروف مسبوقة بالحرف م تسمح بتضمين تعبيرات ديناميكية داخل أقواس متعرجة {}.
المصفوفة (List): مجموعة مرتبة ومتغيرة من العناصر، محاطة بأقواس مربعة [].
المصفوفة الضمنية (List Comprehension): طريقة مختصرة لإنشاء مصفوفة جديدة بناءً على مصفوفة موجودة أو تكرار.
المترابطة (Tuple): مجموعة مرتبة وغير متغيرة من العناصر، محاطة بأقواس عادية ().
الفهرس (Dictionary/Map): مجموعة غير مرتبة من أزواج المفتاح-القيمة، محاطة بأقواس متعرجة {}.
صح (True): قيمة منطقية تمثل الصدق.
خطا (False): قيمة منطقية تمثل الكذب.
عدم (None): قيمة خاصة تمثل غياب القيمة أو الكائن.
العمليات الحسابية (Arithmetic Operations): مثل الجمع (+)، الطرح (-)، الضرب (*)، والقسمة (\).
العمليات المنطقية (Logical Operations): مثل و (AND)، او (OR)، ليس (NOT)، تستخدم للتعامل مع القيم المنطقية.
المقارنة (Comparison): مثل == (يساوي)، != (لا يساوي)، > (أكبر من)، تستخدم لمقارنة القيم.
الإسناد (Assignment): عملية تعيين قيمة لمتغير، مثل س = 9.
إسناد رجعي (Compound Assignment): اختصارات لعمليات حسابية وإسناد في نفس الوقت، مثل += و -=.
إسناد شرطي (Ternary Assignment): تعيين قيمة لمتغير بناءً على تحقق شرط معين، على شكل س = قيمة_1 اذا شرط والا قيمة_2.
احذف (Delete): كلمة مفتاحية تُستخدم لحذف متغير أو عنصر من حاوية.
الدوال الضمنية (Built-in Functions): دوال مُضمّنة في اللغة نفسها، مثل ادخل() و اطبع().
المكتبات الضمنية (Built-in Libraries): مجموعات من الدوال والوحدات المدمجة مع اللغة، مثل الوقت و الرياضيات.
اذا (If): كلمة مفتاحية لبدء كتلة شرطية يتم تنفيذها إذا كان الشرط صحيحًا.
اواذا (Elif): اختصار لـ "وإلا إذا"، تستخدم لتحديد شروط إضافية بعد اذا.
والا (Else): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها إذا لم يتحقق أي من الشروط السابقة في اذا/اواذا.
لاجل (For): كلمة مفتاحية لبدء حلقة تكرارية تقوم بالتكرار عبر عناصر متسلسلة أو مدى محدد.
مدى (Range): دالة تُستخدم لتوليد تسلسل من الأرقام في حلقات لاجل.
بينما (While): كلمة مفتاحية لبدء حلقة تكرارية تستمر في التنفيذ طالما أن الشرط صحيح.
استمر (Continue): كلمة مفتاحية تُستخدم لتخطي التكرار الحالي في حلقة والانتقال إلى التكرار التالي.
توقف (Break): كلمة مفتاحية تُستخدم لإنهاء حلقة تكرارية والخروج منها بالكامل.
حاول (Try): كلمة مفتاحية لبدء كتلة شفرة محتملة الأخطاء.
خلل (Except): كلمة مفتاحية تُستخدم لتحديد كتلة شفرة يتم تنفيذها عند حدوث خطأ معين داخل كتلة حاول.
نهاية (Finally): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.
دالة (Function): كلمة مفتاحية تُستخدم لتعريف دالة مُعرفة من قبل المستخدم.
ارجع (Return): كلمة مفتاحية تُستخدم لإرجاع قيمة من دالة.
النطاق (Scope): المنطقة التي يمكن فيها الوصول إلى متغير أو دالة.
عام (Global): كلمة مفتاحية تُستخدم للإشارة إلى أن المتغير داخل دالة يشير إلى متغير عام خارج الدالة.
صنف (Class): كلمة مفتاحية تُستخدم لتعريف صنف (قالب لإنشاء الكائنات).
_تهيئة_ (Initializer): دالة خاصة في الصنف تُستخدم لتهيئة الكائن عند إنشائه (مثل Constructor).
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
ألف5 (Alif5): لغة برمجة عربية تتميز ببساطة بناء الجملة وميزات برمجية متقدمة.
الطرفية (Terminal): واجهة سطر الأوامر التي يمكن من خلالها تشغيل برامج ألف5.
alif -v: أمر طرفية لعرض رقم نسخة لغة ألف5 المثبتة.
alif -h: أمر طرفية لعرض تعليمات المساعدة حول لغة ألف5.
التعليقات (#): نصوص في الشفرة يتجاهلها المترجم، تستخدم لتوضيح الغرض من الشفرة.
النص العادي (Normal String): سلسلة من الحروف محاطة بعلامتي اقتباس مزدوجتين، تُعالج كنص ثابت.
النص المنسق (Formatted String): سلسلة من الحروف مسبوقة بالحرف م تسمح بتضمين تعبيرات ديناميكية داخل أقواس متعرجة {}.
المصفوفة (List): مجموعة مرتبة ومتغيرة من العناصر، محاطة بأقواس مربعة [].
المصفوفة الضمنية (List Comprehension): طريقة مختصرة لإنشاء مصفوفة جديدة بناءً على مصفوفة موجودة أو تكرار.
المترابطة (Tuple): مجموعة مرتبة وغير متغيرة من العناصر، محاطة بأقواس عادية ().
الفهرس (Dictionary/Map): مجموعة غير مرتبة من أزواج المفتاح-القيمة، محاطة بأقواس متعرجة {}.
صح (True): قيمة منطقية تمثل الصدق.
خطا (False): قيمة منطقية تمثل الكذب.
عدم (None): قيمة خاصة تمثل غياب القيمة أو الكائن.
العمليات الحسابية (Arithmetic Operations): مثل الجمع (+)، الطرح (-)، الضرب (*)، والقسمة (\).
العمليات المنطقية (Logical Operations): مثل و (AND)، او (OR)، ليس (NOT)، تستخدم للتعامل مع القيم المنطقية.
المقارنة (Comparison): مثل == (يساوي)، != (لا يساوي)، > (أكبر من)، تستخدم لمقارنة القيم.
الإسناد (Assignment): عملية تعيين قيمة لمتغير، مثل س = 9.
إسناد رجعي (Compound Assignment): اختصارات لعمليات حسابية وإسناد في نفس الوقت، مثل += و -=.
إسناد شرطي (Ternary Assignment): تعيين قيمة لمتغير بناءً على تحقق شرط معين، على شكل س = قيمة_1 اذا شرط والا قيمة_2.
احذف (Delete): كلمة مفتاحية تُستخدم لحذف متغير أو عنصر من حاوية.
الدوال الضمنية (Built-in Functions): دوال مُضمّنة في اللغة نفسها، مثل ادخل() و اطبع().
المكتبات الضمنية (Built-in Libraries): مجموعات من الدوال والوحدات المدمجة مع اللغة، مثل الوقت و الرياضيات.
اذا (If): كلمة مفتاحية لبدء كتلة شرطية يتم تنفيذها إذا كان الشرط صحيحًا.
اواذا (Elif): اختصار لـ "وإلا إذا"، تستخدم لتحديد شروط إضافية بعد اذا.
والا (Else): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها إذا لم يتحقق أي من الشروط السابقة في اذا/اواذا.
لاجل (For): كلمة مفتاحية لبدء حلقة تكرارية تقوم بالتكرار عبر عناصر متسلسلة أو مدى محدد.
مدى (Range): دالة تُستخدم لتوليد تسلسل من الأرقام في حلقات لاجل.
بينما (While): كلمة مفتاحية لبدء حلقة تكرارية تستمر في التنفيذ طالما أن الشرط صحيح.
استمر (Continue): كلمة مفتاحية تُستخدم لتخطي التكرار الحالي في حلقة والانتقال إلى التكرار التالي.
توقف (Break): كلمة مفتاحية تُستخدم لإنهاء حلقة تكرارية والخروج منها بالكامل.
حاول (Try): كلمة مفتاحية لبدء كتلة شفرة محتملة الأخطاء.
خلل (Except): كلمة مفتاحية تُستخدم لتحديد كتلة شفرة يتم تنفيذها عند حدوث خطأ معين داخل كتلة حاول.
نهاية (Finally): كلمة مفتاحية تحدد كتلة شفرة يتم تنفيذها دائمًا، بغض النظر عما إذا كان هناك خطأ أم لا.
دالة (Function): كلمة مفتاحية تُستخدم لتعريف دالة مُعرفة من قبل المستخدم.
ارجع (Return): كلمة مفتاحية تُستخدم لإرجاع قيمة من دالة.
النطاق (Scope): المنطقة التي يمكن فيها الوصول إلى متغير أو دالة.
عام (Global): كلمة مفتاحية تُستخدم للإشارة إلى أن المتغير داخل دالة يشير إلى متغير عام خارج الدالة.
صنف (Class): كلمة مفتاحية تُستخدم لتعريف صنف (قالب لإنشاء الكائنات).
_تهيئة_ (Initializer): دالة خاصة في الصنف تُستخدم لتهيئة الكائن عند إنشائه (مثل Constructor).
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
هذا (Self): المعامل الأول في دوال الصنف، يشير إلى الكائن الحالي.
الوراثة (Inheritance): آلية تسمح لـصنف جديد (الوارث) باكتساب الخصائص والسلوكيات من صنف موجود (الموروث).
اصل() (Super): دالة تُستخدم لاستدعاء دوال الصنف الأب في سياق الوراثة.
استورد (Import): كلمة مفتاحية تُستخدم لاستيراد وحدات أو حزم برمجية أخرى.
الحزم (Packages): طريقة لتنظيم الوحدات البرمجية في مجلدات هرمية.
_تهيئة_.aliflib: ملف خاص في مجلد الحزمة يُستخدم لتهيئة الحزمة عند استيرادها.
تحويل النوع (Type Conversion): عملية تغيير نوع بيانات قيمة من نوع إلى آخر (مثال: صحيح("1")).
EBNF (Extended Backus-Naur Form): تدوين وصفي يستخدم لتمثيل قواعد بناء جملة لغات الحاسوب.
PEG (Parsing Expression Grammar): شكل من أشكال قواعد التحليل النحوي، يتميز بالغموض الصفري والتراجع المحدود.
&س (Lookahead): عامل في قواعد المطابقة يتحقق من وجود نمط س دون استهلاكه.
!س (Negative Lookahead): عامل في قواعد المطابقة يتحقق من عدم وجود نمط س دون استهلاكه.
~ (Cut): عامل في قواعد المطابقة يمنع التراجع إلى البدائل السابقة إذا نجحت المطابقة حتى هذه النقطة.
&&س (Atomic Match): مطابقة فورية لـ س حيث لا يتراجع المحلل، ويؤدي الفشل إلى خطأ نحوي.
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
الوراثة (Inheritance): آلية تسمح لـصنف جديد (الوارث) باكتساب الخصائص والسلوكيات من صنف موجود (الموروث).
اصل() (Super): دالة تُستخدم لاستدعاء دوال الصنف الأب في سياق الوراثة.
استورد (Import): كلمة مفتاحية تُستخدم لاستيراد وحدات أو حزم برمجية أخرى.
الحزم (Packages): طريقة لتنظيم الوحدات البرمجية في مجلدات هرمية.
_تهيئة_.aliflib: ملف خاص في مجلد الحزمة يُستخدم لتهيئة الحزمة عند استيرادها.
تحويل النوع (Type Conversion): عملية تغيير نوع بيانات قيمة من نوع إلى آخر (مثال: صحيح("1")).
EBNF (Extended Backus-Naur Form): تدوين وصفي يستخدم لتمثيل قواعد بناء جملة لغات الحاسوب.
PEG (Parsing Expression Grammar): شكل من أشكال قواعد التحليل النحوي، يتميز بالغموض الصفري والتراجع المحدود.
&س (Lookahead): عامل في قواعد المطابقة يتحقق من وجود نمط س دون استهلاكه.
!س (Negative Lookahead): عامل في قواعد المطابقة يتحقق من عدم وجود نمط س دون استهلاكه.
~ (Cut): عامل في قواعد المطابقة يمنع التراجع إلى البدائل السابقة إذا نجحت المطابقة حتى هذه النقطة.
&&س (Atomic Match): مطابقة فورية لـ س حيث لا يتراجع المحلل، ويؤدي الفشل إلى خطأ نحوي.
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
عمل كود يقوم بعمل ملفات txt وكتابة شيء داخلها؟
بناءً على المصادر المتوفرة، لا يوجد أي معلومات محددة أو أمثلة تعليمات برمجية توضح كيفية إنشاء ملفات نصية (
المصادر تشرح العديد من جوانب اللغة مثل:
* طرق تشغيل البرامج.
* أوامر الطرفية.
* العمليات الحسابية والمنطقية والمقارنات.
* الدوال الضمنية مثل
* أنواع البيانات مثل النصوص والمصفوفات والمترابطات والفهارس.
* الاستيراد من الملفات والحزم.
* النطاق والمكتبات الضمنية (مثل الوقت والرياضيات).
* هياكل التحكم مثل
* تعريف الدوال والأصناف والوراثة.
* تحويل الأنواع وحالات خاصة.
* ملاحظات حول إدارة الذاكرة وتحديد الأخطاء.
ومع ذلك، لا توجد أي إشارة إلى وظائف أو مكتبات مخصصة لمعالجة الملفات (مثل فتح ملف، قراءة منه، أو الكتابة فيه).-
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
بناءً على المصادر المتوفرة، لا يوجد أي معلومات محددة أو أمثلة تعليمات برمجية توضح كيفية إنشاء ملفات نصية (
.txt
) أو الكتابة داخلها باستخدام لغة البرمجة ألف5.المصادر تشرح العديد من جوانب اللغة مثل:
* طرق تشغيل البرامج.
* أوامر الطرفية.
* العمليات الحسابية والمنطقية والمقارنات.
* الدوال الضمنية مثل
ادخل
واطبع
.* أنواع البيانات مثل النصوص والمصفوفات والمترابطات والفهارس.
* الاستيراد من الملفات والحزم.
* النطاق والمكتبات الضمنية (مثل الوقت والرياضيات).
* هياكل التحكم مثل
اذا
ولاجل
وبينما
وحاول
.* تعريف الدوال والأصناف والوراثة.
* تحويل الأنواع وحالات خاصة.
* ملاحظات حول إدارة الذاكرة وتحديد الأخطاء.
ومع ذلك، لا توجد أي إشارة إلى وظائف أو مكتبات مخصصة لمعالجة الملفات (مثل فتح ملف، قراءة منه، أو الكتابة فيه).-
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
سوف أعلن عن الذكاء الأصطناعي المساعد في اللغة البرمجية ألف قريبا.
- في مرحلة التجربة
هذا رابط شرح ميزاته
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
- في مرحلة التجربة
هذا رابط شرح ميزاته
#لغة_ألف #ألف #برمجة_بالعربي #برمج_بألف #ألف_كود_عربي #ألف_رمز #كود_ألف
#Aliflang #Alis_programming_language
#خليك_مبرمج_واع @Programmer_educated
YouTube
جوجل عملت أداة تخليك تبدأ ستارت أب ببلاش! NotebookLM
لو إنت طالب، أو بتذاكر، أو حتى بتشتغل في شركة أو بتفكر تبدأ ستارت أب، لازم تشوف الفيديو ده! بنقدملك فيه أداة من جوجل هتغيّرلك طريقة تعاملك مع المعلومات كليًا. اسمها NotebookLM، وهي أداة ذكية بتشتغل بالذكاء الاصطناعي وتعتبر زي مفكرة إلكترونية متطورة تقدر تخزن…
Forwarded from محمد ع ح 📖
نصيحة إضافية للممارسة:
غيّر القيم: في كل مثال، حاول تغيير الأرقام، النصوص، أو القيم المنطقية وشاهد كيف يتغير الناتج.
أضف تعليقاتك الخاصة: اجعل من عادتك إضافة تعليقات تشرح ما يفعله كل سطر أو مجموعة أسطر.
جرب بنفسك: حاول كتابة كود مشابه من الصفر بعد فهم المثال، دون النظر إليه مباشرة.
لا تستعجل، الممارسة هي مفتاح التعلم. كل سطر تكتبه وكل خطأ تصلحه يقوي فهمك للغة.
غيّر القيم: في كل مثال، حاول تغيير الأرقام، النصوص، أو القيم المنطقية وشاهد كيف يتغير الناتج.
أضف تعليقاتك الخاصة: اجعل من عادتك إضافة تعليقات تشرح ما يفعله كل سطر أو مجموعة أسطر.
جرب بنفسك: حاول كتابة كود مشابه من الصفر بعد فهم المثال، دون النظر إليه مباشرة.
لا تستعجل، الممارسة هي مفتاح التعلم. كل سطر تكتبه وكل خطأ تصلحه يقوي فهمك للغة.
خريطة ذهنية لإرشادات اللغة ألف ٥
- قد لا تكون كاملة
https://drive.google.com/file/d/1Jx0HUIoBIzxphNSvbyE0eeM3Y1npX7Zv/view?usp=drivesdk
- قد لا تكون كاملة
https://drive.google.com/file/d/1Jx0HUIoBIzxphNSvbyE0eeM3Y1npX7Zv/view?usp=drivesdk