|
كانت البرمجة
الإجرائية (Procedural
Programming) و تعني هي
سلسلة من الإجراءات المنفذة على
مجموعة من البيانات . ثم ابتكرت
البرمجة البنيوية (Structured
Programming)
لتأمين مقاربة منظمة لهذه "
الإجراءات " تسمح بمعالجة كميات
ضخمة من البيانات .
البرمجة البنيوية:-
جوهر البرمجة
البنيوية و باختصار شديد جدا هو
مبدأ " فرق
تسد " . فالمهمة المعقدة تنقسم
إلى مجموعة من المهمات الأصغر إلى
أن تصبح صغيرة كفاية و مستقلة كي
تنجز بسهولة
على سبيل المثال إن احتساب
معدل أجر عامل في شركة ما قد تكون
عملية مفقدة نوعا ما ، لذلك نقسمها
إلى أجزاء صغيرة :-
1.
احتساب أجر كل عامل
.
2.
تعداد العمال
.
3.
جمع الأجور
.
4.
تقسيم المجموع على عدد
العمال
.
لكن
عملية جمع الأجور يمكن تقسيمها
إلى :-
1.
الحصول على سجل كل عامل.
2.
معرفة الأجر
.
3.
إضافة افجر إلى المجموع العام
.
4.
قراءة سجل العامل
الثاني
.
و
يمكننا الحصول على سحل العامل كما يلي:-
1.
فتح ملف العمال.
2.
الذهاب إلى السجل الصحيح
.
3.
قراءة المعلومات من القرص
.
و
هكذا نرى أن البرمجة البنيوية
مسلك ناجح أما المشاكل المعقدة .
علما أن مشاكل كثيرة ستعترضنا ،
كلما أزداد حجم البيانات كلما صعب
الفصل بين البيانات و المهمات
التي تعالج هذه البيانات مما يعقد
التنفيذ و التطوير ، لذلك تزداد
عملية التقسيم صعوبة كلما تراكمت
المهمات المجراه على البيانات .
بتكر المبرمجون الإجرائيون
الذين يعتمدون أسلوب البرمجة
الإجرائية (Procedural
Programming)
حلولا متطورة للمشاكل التقليدية ،
لكن هذا عمليا ليس عمليا ، و
لكأنهم يعيدون اخترع الدولاب . إن
المرونة تعني بناء مقومات و ذات
صفات واضحة يمكن توليفها في أي
برنامج عند الحاجة .
تصنيف
الأشياء من حولنا
تنقسم
الأشياء في عالمان المحسوس إلى
جماد و نبات و حيوانات . و تنقسم
الحيوانات بدورها إلى برية و
بحرية و برمائية و تنقسم النباتات
إلى أقسما عديدة جدا لا مجال
لذكرها هنا .
و
هكذا يتدرج علم الطبيعة في تقسيم
الأشياء حتى يصل إلى أدق
التفصيلات . فإذا أردنا أن نتحدث
عن النسور مثلا ، فيكفي أن نقول أن
النسر ينتمي إلى الطيور حتى نفهم
أنه يرث من جني الطيور كل خصائصه ،
و يبقى بعد ذلك الحديث عن الخصائص
المميزة للنسر و التي تجعل منه
نسرا ، و
سلوكه المتفرد الذي يميزه عن بقية
الطيور ، إن هذا التقسيم المبدئي
لمكونات العالم المحسوس يغنينا
تماما عن الخوض في التفصيلات
المتكررة ، و يعفينا من مشقة أن
نبدأ من الصفر عندما نتحدث عن كائن
ما .
و
الاتجاه الجديد للبرمجة يحاول
الاستعانة بهذا المنطق في حل
مشكلات الحياة العملية حيث تقس
الأشياء إلى فصائل (Classes)
و تشترك أعضاء كل فصيلة في الصفات
و السلوك . و يمكن للمبرمج أن يبني
مكتبة من الفصائل (Class
Library)
أو يستعين بمكتبات جاهزة .
و
تحتوي الفصيلة على بيانات و كذلك
على سلوك البيانات أو العمليات
المنتظر إجراؤها عليها بحيث تشكل
معا نمطا (Type)
حيا من البينات . و يمكن للمبرمج أن
يبتكر نمطا جديدا ، فالأطباق
الطائرة مثلا تعبر نمطا جديدا من
الطيور فهي تحمل خصائص فصيلة
الطيور ، لكنها تحمل بعض الخصائص
المتفردة التي تميزها عن النسر و
الطائرة النفاثة . و المبرمج عندما
يضيف نمطا جديدا ، فهو لا يبدأ من
الصفر بل إنه يضيف فقط الخصائص
الجدية إلى الخصائص الموروثة .
فإذا
تركنا الطيور و الأطباق الطائرة ،
و هبطنا إلى عالم المشكلات
اليومية و التي نستخدم الكمبيوتر
لحلها ، فسوف نجد أن المشكلات كلها
معروفا مقدما ، و أن مجهودات
البرمجة موجهة أساسا إلى تعديل و
تطوير أو بمعنى أدق إلى صيانة
البرامج الموجودة أصلا .
حيث
تجد المبرمج التي يعتمد الأسلوب
القديم في البرمجة (البرمجة
الإجرائية) يقوم بكتابة النص من
البداية و ذلك لعدم توفر النص
البرمجي أو لأن المكتبة الحالية
لا تقوم بما يرده تحديدا .
إن
الاتجاه الجديد
في البرمجة و الذي يطلق عليه البرمجة الموجهة نحو الهدف
Object-Oriented
Programming)) وقد بدأت
لغة سي++ في تطبقيه مما جعل حياة
أسهل للمبرمجين .
مبادئ
البرمجة غرضيه التوجيه
لو
تأمل ت الكزن لوجد أنه يتكون من
فصيلة كبيرة أعضاؤها هي المادة (البيانات)
و القوانين الطبيعية التي تتحكم
في سلوك المادة (الدوال) . من هذه
التوليفة الرائعة تنبع المعجزة
الإلهية .
و
لو تأملت منجزات الإنسان على مر
العصور ، أما ما سمينها
بالاختراعات من تلفزيون و كمبيوتر
و أقمار صناعية لوجدت أنها في
الحقيقة ليست إلا استخداما منطقيا
لخصائص الفصيلة المعجزة ( المادة
و القوانين الطبيعية ) .
إن الإنسان في حقيقة الأمر لم
يخترع شيئا ، بل هو – بنعمة العقل
– يجتهد في اكتشاف القوانين
الطبيعية و استخداماها ، فالقانون
الطبيعي التي تعمل بع الطائرة و
تحلق به ، موجود أصلا قبل صناعة أي
طائرة ، و قانون السباحة و الطفو
موجود قبل صناعة السفن و الغواصات
.
بل
أن قانون نسبية الزمن الذي ارتبطت
صيغته الرياضية باسم البرت
أنيشتين ، ليس اختراعا و لكنه
اكتشافا لقانون طبيعي موجود من
افصل . إنه إحدى خصائص هذه الفصيلة
المعجزة التي خلقها الخالق .
إن
بداية كل اكتشاف ناجح أو ابتكار
مفيد تبدأ بالتأمل في قوانين
الطبيعة و محاولة فهمها و
الاستفادة منها و محاكاتها .
إن
هذا بالتحديد ما فعله (( بايرن
ستراوستراب )) عندما
فكر في أن يبتكر أسلوبا جديد
للبرمجة ، إنه أسلوب محاكاة
القوانين الطبيعية .
أخذ
هذا الموضوع من :-
1.
تعلم
سي ++ في 24 ساعة .
2.
سي
++ لغة البرمجة الحديثة
(مهندس أسامة الحسيني)
|