الاصناف والرزم ونظام الملفات

سنتحدث في هذا الفصل عن ماهية الرزم والاصناف و علاقتها بنظام الملفات. وذلك من خلال استعمال اصناف خوارزمية كمثال.

تعريف الاصناف و الرزم

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

المعجم: القاموس المحيط صنّف الأشياء , قسَّمها ورتَّبها في نظام خاصّ وعلى أساس معيّن يبيّن العلاقات بينها ويميّز بعضَها عن بعض :- صنَّف النَّباتات / الحشرات - صنّف الثَّمرَ .

كمثال آخر ، لنعتبر ميكانيكيا للسيارات ينظم ورشته. حيث لايضع كل أدوات الصيانة لديه في نفس المكان؛ و يصنف ادوات الصيانة على حسب استعمالاتها . فيضع ادوات المحرك في علبة محدد، و ادوات صيانة الزجاج في اخرى و ادوات العجلات في مكان آخر. ماذا لو مثلنا ذلك من خلال رزم مصنفات الخوارزم:

                           بسم الله العليم الحكيم

الرزمة     علبة_ادوات;

الصنف       محرك {

   المتغير برغي شيء {
       حجمه صحيح؛
       ...		
   }؛
   الدالة  فتح_برغي() {
       ...		
   }		
                                                                               

الصفرة 5-1 الملف محرك.خ

كما يبين المثال فالصنف اطارات هو الترتيب المنطقي وتجمع الادوات التي نود استعمالها مستقبلا؛ اما الرزمة علبة_ادوات فهي تشكل المكان الذي توضع فيه الاصناف (مجموعة الادوات).

                           بسم الله الفتاح العليم

الرزمة     علبة_ادوات;

الصنف       اطارات {

   المتغير اداة_النفخ_اطار شيء {
       قوة صحيح ؛
       ...		
   }؛
   الدالة  نفخ_اطار() {
       ...		
   }		
                               
}		
                                                                               

الصفرة 5-2 الملف اطارات.خ

الصنفان ينتميان الى نفس الرزمة علبة_ادوات . كما ذكرنا في مكان تواجد الادوات. فاذا ما اردنا استعمالها فما علينا سوى استخدام المفردة استعمل متبوعة باسم الرزمة. فمثلا اذا اردنا استخدام ادوات الاطارات نكتب التالي: استعمل علبة_ادوات.اطارات؛؛ اي اننا سنستعمل الصنف اطارات الموجود في الرزم علبة_ادوات.
ولو اردنا ان نكون اكثر دقة يمكن ان نقول ان الادوات تتواجد في الورشة و بالتالي يمكن تغيير تعريف الرزمة الى رزمة ورشة.علبة_ادوات؛.
فيكون الطريق الى علبة ادوات الاطارات مثلا عبر الدخول بالورشة ثم الى علبة الادوات لنصل الى ادوات الاطارات. بعبارة الخوارزم :استعمل ورشة.علبة_ادوات.اطارات؛\

لقد رأينا كيفية استعمال الاصناف والرزم؛ لكن ماذا تمثل بالضبط في نظام ملفات الخوارزم ؟

نظام الملفات في الخوارزم

الخوارزم يعتمد على نظام الملفات لحفظ الصفرة وترجمتها. فكل مجموعة من الخوارزمات تنتمي كما رأينا الى صنف معين؛ وهذا الصنف ما هو إلا ملف نصي على نظام الملفات، يحمل نفس اسم الصنف. اذااخذنا المثال السابق "لصفرة 5-1" ، الصنف محرك هو عبارة عن ملف يحمل الاسم محرك.خ.

لكن ماذا عن الرزمة ؟
الخورازم يترجم خوارزمياتنا المكتوبة من لغة مفهومة لنا الى لغة مفهومة للحاسوب. وهو هكذا يترجم الملف محرك.خ تحوي صفرتنا الى محرك.صنف يحوي تعليمات مقروءة بالنسبة للحاسوب. وهكذا ، وبعد الترجمة، نحصل من الملفات المصدرية على ملفات حاسوبية قابلة للاستعمال ، و التنفيذ ان اقتضى الحال. فعليا اي عند ترجمة محرك.خ و اطار.خ نحصل على الصنف محرك.صنف اطار.صنف داخل الحافظة علبة_ادوات على الشكل المبين اسفله ! اجل هو نفس اسم الرزمة.

علبة_ادوات
┤── محرك.صنف
┘── اطار.صنف

بهذه الطريقة ، تشكل الوحدات (الاصناف والرزم) تسلسلًا هرميًا. تكون الاصناف في المستوى الأدنى ، وتكون الرزمة في المستويات الأعلى.