Advanced Search

المحرر موضوع: نبذة عن تاريخ البرمجة ....  (زيارة 664 مرات)

0 الأعضاء و 1 ضيف يشاهدون هذا الموضوع.

يوليو 01, 2004, 07:05:04 مساءاً
زيارة 664 مرات

مروه عثمان رجب

  • عضو خبير

  • *****

  • 1001
    مشاركة

    • مشاهدة الملف الشخصي
نبذة عن تاريخ البرمجة ....
« في: يوليو 01, 2004, 07:05:04 مساءاً »
السلام عليكم

تاريخ البرمجة ودخولها لعالم الحاسبات

كانت أول برامج الحاسوب مكتوبة بلغة الآلة تستعمل مباشرة التعليمات Istructions المفهومة من قبل المعالج Processor تعليمات تخص السجلات registers عمليات ثنائية Binary operations , معلومات عن عناوين الذاكرة Memory adress.......الخ
وكان أول هذه البرامج هو لغة التجميع Assembler وهو أقرب الى لغة الآلة 0-1 يمكنه التعبير عن كل المشاكل التي يفهمها الحاسوب ... لكن الاشكالية لدى المبرمجين هي ان لغة الكتابة كانت اقرب الى مكونات المعالج من سجلات وعناوين الذاكرة ..كما لا يمكنك من خلاله كتابة محرر نصوص لأنه لا يعرف الحروف Caracters ولا كلمات ولا جمل ..فهو لا يمكنه استغلال سوى سلاسل متتالية ومطولة من الارقام الثنائية 0-1
فكر بعض المبرمجين في التعبير عن البرنامج باستعمال عناصره الاساسية المستعملة في الحل .. حيث كانت أولى الحواسيب فقط تستطيع استعمال العمليات الحسابية ..
وكانت لغات البرمجة المسماة لغات مستوى عالي High level ايضا تمثل المشاكل والحلول بحسابات رقمية ... وفيما يخص سير عملها كانت تنتج فقط دوال الفحص والتفرع Test & Branch .....
وبهذا ظهرت بسرعة ضرورة التخلص من هذه القيود لدى المبرمجين .. وأهمها التخلص من الهيمنة الرقمية للمعطيات .. وتحديث هيكلة أقوى للبرامج وسير عملها Structure & function ... وفكر في ادخال الحروف والسلاسل الحرفية وكذا الجداول المركبة منها ..ثم ملفات تحتوي على كل هذه العناصر ...
كان المحك الذي أخرج هذا النوع من الرامج المهيكلة Structred language الى النور هو PASCAL .. والذي استعملت مفاهيمه في التعليم بشكل خاص لنه كان نموذجيا وواضحا Algorithmic language ...... بينما حينما ظهرت لغة C كانت عالميا الاكثر استعمالا من طرف المحترفين وكان هذه اللغة هي قمة ما توصلت اليه البرمجة في هذا النوع الجديد ....
لم تكن الحروف والارقام وحدها المادة التي يستعملها المبرمج .. وظل المشكل مطروحا حتى ظهرت اولى لغات المواضيع الموجهة Oriented object .. وكانت البداية مع SmallTalk الذي سمح بحلول تستعمل عناصر المشكلة كأدوات مستعملة للحل ... كانت تلك قفزة قوية الى الامام لحل المشاكل المعقدة لصالح انتاجية المبرمجين ... ولو ظل المشكل مطروحا لكان الحل باستعمال لغة ىالتجميع مستحيلا .. بالبرمجة المهيكلة يؤول الى مالا نهاية ...
أن لغة االبرمجة الموضوعية الموجهة الاكثر انتشارا واستعمالا اليوم هي بدون منازع لغة C++ وهي الاصدار الجديد للغة C والذي أوجد خصيصا للبرمجة الموضوعية الموجهة Oriented object programming ولتجسيد مفاهيمها تجسيدا كاملا ..في هذا النوع لا نستعمل الدوال والاجراءات Functions & procedures ..ولكن نستعمل مواضيع Objects تتبادل فيما بينها رسائل Messages... من اهم محاسنها اضافة الى امكانية انشاء وتعريف عناصر جديدة من اي نوع نشاء لتمثيل مواضيع حقيقة ذات طبيعة مختلفة عن كل المواضيع الاخرى المستعملة في الاشكالية ..هو امكانية استعمال كل موضوع منها منفصلا عن الاخرى وبكل حرية .. وفي الواقع عندما نحدد نوع الرسالة الواجب على الموضوع الاجابة عنها تصبح هذه الاخيرة كعلبة سوداء خاصة بالموضوع .. يعني خاصة به خصوصية كاملة .. ومفاهيم هذا النوع من االبرمجة عميقة لكنها فعالة ومضمونة النتائج الى ابعد الحدود ..
وكانت هذه النقاط في البرمجة الكلاسيكية مستحيلة ومحاولة استعمالها يؤدي بالبرنامج الى نتائج كارثية ...
نقطة مهمة اخرى عجزت امامها البرمجة الكلاسيكية .. وهي حاجة المبرمج لانجاز وتحضير برامج نموذجية كقالب Prototype وهو برنامج عملي يصمم لاعادة انتاج بكل سرعة برامج لها نفس عمل سير البرنامج النهائي المطلوب .... يعني بمجرد تحضير البروتيب ..يقوم المبرمج الجاد باعادة كتابة البرنامج في لغة برمجة مناسبة ومتطورة .. وهو متاكد من ان البرنامج الجديد الذي كتبه مضمون سير عمله ونجاحه لأنه اعتمد على قواعد البروتوتيب المتينة والصحيحة أثناء كتابة البرنامج النهائي ..وتطرح النقطة السلبية الكبيرة وهي أن المبرمج ملزم بكتابة البرنامج مرتين بحكم ان النسخة الاصلية تعاد كتابتها في لغة جديدة ..وهو مطالب بأن يجيد لغتي برمجة لهدا الهدف مما يقلل انتاجيته .... وحتى لو تم انجاز البروتوتيب في نفس اللغة تبقى مشكلة عناصر البروتيب التى لم تصمم جيدا في البروتوتيب الاصلي والتي ستلاحق نقائصها البرنامج النهائي الجديد .. وهدا يوجب على المبرمج اعادة النظر في تصميم عنتاصر البرنامج ومكوناته عدة مرات حتى يصل الى كتابة نهائية للبرنامج المطلوب ناهيك عن الارتباطات الموجودة بين مختلف اجزاء البرنامج والتي تستوجب تغييرا جدريا لكل البرنامج لو استدعى الامر ....
ويأتى الحل في البرمجة الجديدة ..فلغات البرمجة الموضوعية الموجهة وفي مقدمتها الجافا Java تاتي بحل شامل وراق لهذا المشكل العويص ...وهذا بتحديد وتخصيص كل الاتصالات الممكنة بين بين مختلف المواضيع Objects بشكل مفصل ودقيق .. وصار بهذه الطريقة ممكنا بكل بساطة انجاز أجزاء من البرنامج او التطبيق عبر فرق من المبرمجين يعمل كل منهم في قسم معين مستقل عن الآخرين الى حد كبير ... وعلى سبيل المثال في الجافا خصوصا يمكن التصميم بفحص واستعمال الأسماء المختارة لمختلف المواضيع Objects والطرق Methods الموجودة في البرنامج دون الغوص في طريقة انجازها التي تكفل بها فريق آخر ..فبعضها قصير وغامض وبعضها طويل وضمني وهذا حسب شخصية المبرمج الذي أنجزها واختار خصائصها .... وسيزول الغموض عن كل هذا في الاصدارات الجديدة التي يعد فريق جافا بتحديثها وفعلا حصل ما وعدوا به في الاصدارات الحديثة التي أثبثت اليوم جدارتها باستحقاق .