الخوارزم

آخر الأخـــــــــــــــــــــــــــــــبـــــــــــــــــــــــــــــار

إطلاق الاصدار 1.9.2

04/2022

مترجم الخوارزم:

  • يمكن الآن للعامل حجم استقبال انواع معرفة من قبل المطور. مثلا :
    تعريف النوع : النوع م_صحيح ۢ صحيح
    استعمال حجم : اكتب (حجم(م_صحيح))
  • اصلاح خطأ : تخصيص الذاكرة يرجع النوع ايما. يجب إذا استعمال القولبة عند تمرير القيمة :
    المتغير شبكة ۢ ۢ صحيح := ذاكرة::تخصيص(حجم_الشبكة كما صحيح طبيعي، حجم(م_صحيح)) كما ۢ ۢ صحيح
  • يمكن اعلان متغير محلي من نوع شيء
  • يمكن تخصيص متغير بجامد معرف قبلا.المتغير عشرة صحيح جامد:= 10؛ المتغير حجم_الشبكة صحيح := عشرة؛

بيئة التطوير للخوارزم:

  • اختيار شكل الخط

محرر الخوارزم يستعمل شكل خط خاص محسن، لكن يمكن الآن للمستخدم اختيار شكل الخط الخاص به من الأشكال المتاحة في النظام.
--> نقر أيمن --> تفظيلات --> اختيار خط النص

  • تحسين سلسلة استدعاءات المترجم

تم تحسين سلسلة استدعاءات المترجم من طرف البيئة على نحو يبنئ به المشروع بشكل سلس مع بناء الملف الاصل في نهاية السلسلة.

المكتبيات

  • تم اضافة دالة اظهر_صورة
    لاظهار الصور على النافذة بإحداثيات و طول و عرض محددين، وذلك باستعمال اسم مسار ملف باللغة العربية كليا. مثال : اظهرصورة ( "صور//فضاء.صورة" ، 0 ، 0 ، طولالنافذة ، عرض_النافذة)

  • تم اضافة ادوات تشغيل مقاطع الاصوات :

	
استعمل الخوارزم.وسائط.صوت	؛	(۩ استعمال الصنف صوت ۩)

المتغير	مقطع_شطب	 ۢ صوت::مقطع_صوت؛	      (۩	متغير يمثل مقطع الصوت 	۩)

مقطع_شطب	:=	صوت::تحميل	("اصوات\مسح.صوت")؛    (۩	تحميل مقطع الصوت۩)
مقطع_شطب	.تشغيل()	؛	(۩	تشغيل مقطع الصوت ۩)

	
اذا 	صوت::تحميل_الموسيقى("اصوات\موسيقى.صوت") < 0 {		(۩	تحميل موسيقى 	۩)
			شاشة::اكتب("خطأ عند تحميل ملف الموسيقى/س")	
		}

اذا 	صوت::اطلاق_الموسيقى() < 0 {	(۩	اطلاق موسيقى	مرة واحدة كخلفية	۩)
				 	 شاشة::اكتب("خطا عند اطلاق الصوت/س")؛			
				 } 
	صوت::ايقاف_الموسيقى	()؛	(۩	 ايقاف الموسيقى	۩)

الامثلة

تم اضافة:

  • الاصوات الى لعبة الرباعيات المتساقطة
  • مثال لاستعمال كل اوليات الرسم المتاحة : امثلة\رسم\امثلةاولياترسم.خ
  • مثال لاستعمال الصور : امثلة\رسم\امثلة_صور.خ


إطلاق الاصدار 1.9.0

07/2021


الخوارزم يتطور ...تم بعون الله ومشيئته إطلاق الاصدار 1.9.0 للخورازم.

هذا الاصدار يحوي إضافات وحلول تخص بيئة الخوارزم كما المترجم مع زيادة هامة في السرعة. الاضافات تشكل نقلة نوعية اعتبارا لحجمها و استعمالاتها في اللغات العصرية. هذه الاضافات لا تغير من الاصدارات السابقة لكن تزيد عليها امكانيات تحسينية.

مترجم لغة الخوارزم :

  1. كما يعلم المستعمل فإنه كان يمكنه اعادة تعريف الدوال بمتغيرات اخرى عدديا ونوعيا. لهذا نجد أن الصنف شاشة مثلا؛ يمكن من استعمال الدالة اكتب
    بالنسبة لكل الانواع الاساسية المتاحة. فنكتب مثلا شاشة::اكتب( متغير_صحيح ) أو شاشة::اكتب( متغير_حرف ) الى غير ذلك. وهذا ما يسمى
    بالانجليزية 'Overloading' أو زيادة التحميل.
    الجديد في هذه النسخة أنه يمكن للمطور استعال الدالة مباشرة دون اللجوء الى استدعاء الصنف فنكتب مثلا : اكتب( متغيرصحيح ) عوض شاشة::اكتب( متغيرصحيح ).
    هذا التبسيط استتبعه زيادة ذكاء المترجم بحيث يبحث ،بدل المطور، عن الدالة التي ينتوي المطور استخدامها. وإن عجز عن ذلك ، لوجود دوال متشابهة في صنفين على الأقل
    فإنه يخبر المستعمل كي يتيح له حل الإشكال باختيار الدالة المناسبة تبعا لمسار الصنف والرزمة المرادتين.

  2. استنباط النوع عند التعريف (Type inference): لقد زيد ذكاء المترجم بحيث يمكنه استنباط نوع المتغير عند تعيين قيمة له. وهذا يكون عن طريق الكلمة المفتاحية ليكن.
    فمثلا عادة ما نستخدم الشكل الآتي للتعريف :
    المتغير ا صحيح := 10
    نكون بذلك قد عرفنا بمتغير ا ذي نوع صحيح و اعطيناه القيمة 10. ماذا لو اردنا تخفيف العبارة أو اننا لا نعلم نوع مستسصدر من مكتبة أخرى ؟
    هنا يأتي دور المترجم ليستنتج النوع بدل المطور. مثلا:
    ليكن ا := 10
    العبارتنان التعريفيتان لهما نفس الأثر : نحصل على متغير عدد صحيح ذي القيمة 10، لكن المترجم هو الذي استنتجها من خلال العدد 10.

  3. الأنموذجيات : تعديد الأشكال الأنواع ( Parametric Polymorphism ) هو وسيلة لجعل اللغة أكثر تعبيرًا ، مع الحفاظ على أمان النوع الثابت الكامل. باستخدام تعديد الأشكال.
    يتم فيه كتابة الخوارزميات من حيث الأنواع التي سيتم تحديدها لاحقًا والتي يتم إنشاء مثيل لها عند الحاجة لأنواع معينة يتم توفيرها كشكل هيكلي.
    يمكن كتابة دالة أو نوع بيانات بشكل عام بحيث يمكن التعامل مع القيم بشكل متماثل دون الاعتماد على نوعها.

    الخوارزم يدعم الآن الأنموذجيات بشكل مبسط و مميز. سنعطي أمثلة على هذا النوع من الخرزمة في كتاب الخوارزم.

  4. اعادة تعريف العوامل الخاصة ( special operator overload) : لخوارزم كلغة عصرية يدعم الآن إعادة تعريف العوامل أو زيادة الفعل للعوامل (operator overloading) . لكن في الخوارزم لديها نسق خاص
    حيث يستبعد المشاكل الموجودة في معظم اللغات المعاصرة التي تتيح هذا النوع من الخوارزميات . كما ليس لها مثيل في أي لغة معروفة الى الآن، وهذا سبق للخوارزم في هذه الحيثية.

  5. مؤشرات الدوال (function pointers)

  6. اصلاح الأعطاب المعروفة الى حد الساعة

مكتبة الخوارزم:

لقد تم جمع الدوال المتعلقة بترير النصوص والسلاسل الحرفية في صنف واحد مع الاحتفاظ بنفس الرزمة:

الخوارزم.تشكيلة.نصيات

بيئة التطوير للخوارزم:

  • في نظام ويندوز: سرعة الترجمة عند استعمال البيئة

لقد تم تسريع الترجمة في وضعية التطوير على نظام ويندوز فأصبحت شبه مماثلة لمثيلتها على لينوكس مع استعمال بيئة التطوير للخوارزم.

الطرفية طرف:

الطرفية طرف أصبحت تدعم لوحة المفاتيح العربية واللاتينية.


إطلاق الاصدار 1.8.1

12/2020

تم بعون الله ومشيئته إطلاق الاصدار 1.8.1 للخورازم.

هذا الاصدار يحوي إضافات وحلول تخص بيئة الخوارزم كما المترجم.

بالنسبة لمترجم لغة الخوارزم :

1- أشكال تمثيل واستعمال سلاسل و صفائف الحروف:

	```
 النوع  سلسلة_جامدة    ۢ جامد  حرف     									
		     المتغير	 ترحيب  [] حرف := ['أ'،'ه'،'ل'،'ا' ، '/س' ،'/0']
	       	 المتغير	 تسليم  [] حرف := "السلام عليكم/س" 	
	       	 المتغير	 تسليم_م  ۢ  حرف := "السلام عليكم/س" 	
		  المتغير جملة [500] حرف
		 المتغير جملة_   ۢ  حرف		 
		 المتغير		س 	 سلسلة_جامدة := "سبحان الله و الحمد لله"

لكتابتها على الشاشة يمكن استعمال الصنف 'شاشة': شاشة::اكتب(تسليم) و شاشة::اقرا(؏جملة)

  • لا يمكن مقارنة الصفائف المكتملة الحجم بالمؤشرات مباشرة دون قولبة. كما لا يمكن مقارنة الصفائف المكتملة الحجم مع العدم.

بالنسبة لبيئة الخوارزم:

1- تحسينا لتجربة المستخدم، وإعانة على سرعة التطوير؛ قد تم إضافة مساعدة سياقية لإضافة المكتبات المقياسية المتاحة
بنفس طريقة إضافة المفردات. من أجل ذلك ما على المستخدم الا استعمال التركيبة المفتاحية : كتابة 'ال' ثم 'تحكم' (CTRL) متبعوعة ب 'مساحة' (space)
فتفتح البيئة نافذة اختيار المكتبة المزمع استعمالها، اما من خلال النقر او من خلال الترشيح بإدخال الحروف ثم مفتاح 'الادخال' (ENTER).

2- بيئة الخوارزم تخطر المستعمل من على الشاشة الرئيسة ببداية الترجمة ونهايتها كي يعلم المستعمل متى انتهت الترجمة.
توقيت البداية و توقيت النهاية المشار اليه ليس دقيقا ،فمترجم الخوارزم اسرع من ذلك بكثير. ويمكن ملاحظة فرق السرعة بنفس الجهاز بين نظام ويندوز ولينكس.

3- بيئة الخوارزم تخطر المستعمل من خلال مشهد المشاكل اذا تواجد بيانان ( او اكثر) للخوارزم مختلفان ويتضمنان الدالة 'الاصل'. فبناء المشروع ينتج منتجا تطبيقيا واحدا اذا حوى ملفا مضمنا للدالة الاصل. في كل الاحوال اذا لم يطلق البرنامج المطلوب توجب التأكد من وجود اعلانات متعددة للدالة الاصل في مشهد المشاكل.

4- في نظام ويندوز: استراتيجية بناء المنتجات على نظام الوندوز تتم بشكل تثبيتي-منسجم حتى يتسنى للمستخدم استعمال التطبيق الذي انتجه ومشاركته مع الآخرين على جميع انظمة وندوز. لذلك يأخذ المترجم وقتا اضافيا لاستخراج مكتبيات النظام وبلورتها.
لأجل تسريع الترجمة لمن لا يستعمل مكتبيات متقدمة (كالرسم، او الشبكة) ، فقد تم اضافة تنفيذيين لبيئة الخوارزم :

  • دعم الرسم.exe : لدعم المكتبات متقدمة و الطرفية (ظهور الصورة 0.) عند الضغط.
  • طرفي فقط.exe : لدعم التطبيقات الطرفية فقط. في هذه الحالة لايمكن استعمال المكتبيات الخوارزم.اتصالات.شبكة و الخوارزم.رسم.نافذة والخوارزم.وسائط.صوت و الخوارزم.وسائط.لوحة_المفاتيح. للاستعمال اذا كان التطبيق المراد انتاجه لا يستعمل هذه المكتبيات وهناك حاجة ملحة لتسريع الترجمة؛ فربما يكون هناك ، مثلا، مضاد للفيروسات يبطئء من عمل التطبيقات بصفة عامة.

5- في نظام لينكس: تمت اضافة تثبيتات يمكن اطلاقها لتدارك اي نقص في مكتبات لينكس او تواجد مشاكل في اذونات الاستخدام.

6- تمت إضافة مثال آخر يستخدم مقومات لغة الخوارزم ومكتبة الرسم ,ألا وهي الهندسة الكسيرية وتحديدا مجموعة ماندلبرو.
انظر هنا للمزيد من المعلومات عن الكسيريات

إطلاق الاصدار 1.8.0

10/2020

لقد تم بعون الله إطلاق الاصدار 1.8.0 للخوارزم
من مميزات هذا الاصدار:

من حيث التركيب
1.1 - استعمال الرزمة و الصنف لم يعد اجباريا لإنتاج برنامج. فيمكن كتابة الدالة الاصل و استعمال المكتبة مباشرة وبشكل مبسط.
1.2 - استعمال الفاصل '؛' لم يعد اجباريا لنهاية تعبير واحد في السطر. ولكن ضروري لفصل تعبيرين في نفس السطر.
2 - من حيث الدلالة، الخوارزم لا يتيح القولبة الخفية او الضمنية (Implicit cast) كما هو محدد في المعايير العالمية مثل (Misra rule 6.10) . العمليات بين نوعين مختلفين غير مقبولة. يمكن استعمال القولبة لمثل هذه العمليات.
3 - تتم القولبة باستعمال العامل 'كما' .
4 - اضافة بعض الدوال الى المكتبة المعيارية.
5 - اصلاح بعض اخطاء المترجم.


اتصل بنا

تودون الاتصال بإحدى خدمات alkhawarizm.org ؟
الأسئلة التقنية / الدعم و المشاركة
forums.alkhawarizm.org
المصادر / المشاركة
github.com/alkhawarizm
الإبلاغ عن خطأ
bugs.alkhawarizm.org (للمبرمجين المخولين)
forums.alkhawarizm.org
تساؤلات عامة
contact@alkhawarizm.org
اشترك في قناتنا لتتوصل بكل جديد