الإصدارة 1.5 من مُفسِّر أُبْدِع

نشره م. وائل حسن -أ… في

تم بحمد الله تعالي بناء الإصدارة 1.5 من مُفسِّر أُبْدِع و رُفِعَتْ علي مواقعها علي الشبكة، و الأمر الوحيد الجديد في هذه الإصدارة هو دعم إمكانية "إسناد مؤشرات جداولٍ للأبعاد الداخلية inner dimensions لجداولٍ أخري، بشكلٍ مُجمَّع":
 
مثلاً البرنامج التالي:

 
رقم{1}  أرقام1  = {1  2  3} أرقام2 = {4  5  6}
رقم{2}  أرقام3 = {{7  8  9} {10  11  12}}

رقم{3}  أرقام4 = {{أرقام2  أرقام1}   أرقام3 }


السطر الثالث معناه أن:
مؤشر  البُعْد أرقام4{1  1} يشير لنفس ما يُشِير إليه الجدول أرقام2.
و مؤشر البُعد أرقام4{1  2} يشير لنفس ما يُشِير إليه الجدول  أرقام1.
و مؤشر البُعد أرقام4{2} يُشِير لنفس ما يُشِير إليه الجدول أرقام3.
و هو ما يُساوي ما يُسمَّي في اللغات الأخري (مصفوفة المصفوفات  array of arrays) مع بعض الاختلاف الذي يُعزَي إلي اختلاف الأهداف التصميمية بين اللغات.

و لو كتبنا البرنامج التالي:


رقم{1}  أرقام1  = {1  2  3} أرقام2 = {4  5  6}
رقم{2}  أرقام3 = {{7  8  9} {10  11  12}}

رقم{3}  أرقام4 = {{أرقام2  أرقام1}   أرقام3 }

أرقام4{1  1  1} = 444
أرقام2{1} = 222

أكتب.نص.سطر("أرقام4{1  1  1} = " + إلي.نص(أرقام4{1  1  1}))
أكتب.نص.سطر("أرقام2{1} = " + إلي.نص(أرقام2{1}))
 

لرأينا أن ناتج تنفيذه سيكون:

أرقام4{1  1  1} = 222.0
أرقام2{1} = 222.0

الأمر الواجب التنبيه عليه أن هذه الخاصية لم يتم الإنتهاء من بنائها داخل الأصناف، أي أنه لو تم كتابة كودٍ كالتالي:


 صنف1 كائن1 = صنف1()
 صنف1 كائن2 = صنف1()

كائن1_الأرقام_بعد1{1} =  10
كائن2_الأرقام_بعد1{1} =  50

أكتب.نص.سطر("كائن1_الأرقام_بعد1{1} =  " + إلي.نص(كائن1_الأرقام_بعد1{1}))
أكتب.نص.سطر("كائن2_الأرقام_بعد1{1} =  "+ إلي.نص(كائن2_الأرقام_بعد1{1}))

أكتب.نص.سطر("كائن1_أرقام3{1  1  1} =  " + إلي.نص(كائن1_أرقام3{1  1  1}))
أكتب.نص.سطر("كائن2_أرقام3{1  1  1} =  "+ إلي.نص(كائن2_أرقام3{1  1  1}))


صنف صنف1 :
    رقم{2} عام    ثابت الأرقام = { بعد1= { 79  2  3 }  بعد2 = { 4  5  6 } }
    رقم{3} عام أرقام3 = {الأرقام   {{7  8  9}  {10  11  12}}}
   
 
فسيكون الناتج:

كائن1_الأرقام_بعد1{1} =  10.0
كائن2_الأرقام_بعد1{1} =  50.0
كائن1_أرقام3{1  1  1} =  10.0
كائن2_أرقام3{1  1  1} =  10.0

مما يعني أن  الجدول أرقام3  الذي في الكائن كائن2 يُشِير لنفس ما يُشِير إليه الجدول أرقام3 الذي في الكائن كائن1 رغم أنه جدولٌ غير مُشترَك !
و هذا ما أعمل حالياً علي إصلاحه في الإصدارة 1.6 التي ستصدر قريباً بمشيئة الله عز و جل.


يمكنكم تحميل  مُفسِّر أُبْدِع من مركز التحميلات علي الموقع الرسمي:
http://ebda3lang.blogspot.com/p/blog-page_5.html