Eng: OmAr TaLaHmA-------- كـمـبـيـوتـرات و لـوحـات إلـكـتـرونـيـة

بسم الله الرحمن الرحيم --- اهلا وسهلا بكم في منتدى الكمبيوترات واللوحات الالكترونية ونرجو ان تنال اعجابكم وان تكونوا من الاعضاء الدائمين عندنا وان تستفيدوا منا وتفيدونا من خبراتكم .......وندعو الله ان يجعل من هذا الملتقى كنز للمعرفة والفائدة ..... وبارك الله فيكم

    تعلم البرمجة خطوة خطوة

    شاطر

    عالم الذرة
    عضو نشيط
    عضو نشيط

    عدد المساهمات : 45
    تاريخ التسجيل : 27/12/2009
    العمر : 40
    الموقع : جدة

    تعلم البرمجة خطوة خطوة

    مُساهمة من طرف عالم الذرة في الأحد ديسمبر 27, 2009 2:09 pm




    البداية

    الحاسب الآلي عبارة عن مجموعة مترابطة من الدوائر الكهربائية. تخيّلوا معي زر كهربائي يشغّل عدداً من المصابيح التي إمّا تكون مطفأة أو مشتعلة. لذا، لإإن الكومبيوتر يفهم رقمين في الدنيا، هما (صفر) و (واحد). و يقوم الكومبيوتر بتحويل كل شيء إلى ما يقابله حسب نظام العد الثنائي (يعني 1 و 0) و تسمّى هذه اللغة (التي تتكون من هذين الرقمين فقط) بلغة الآلة (Machine Code).

    و كان للسيطرة على الكومبيوتر نكتب ما نطلق عليه اسم (برنامج) و هو يحتوي على عدد من الأوامر الموجهة للكومبيوتر ليحل مسألة معينة.

    كان المبرمجون الأوائل (كان الله في عونهم) يكتبون البرامج بهذه اللغة! يكون شكل البرنامج هكذا:

    101011101000101001010010
    100101001010001001011010
    010011110011100001010101
    010101000100100000001001
    011110111010010101010101



    و كما ترون فإنه من الصعب جدّاً فهم شيئاً كالذي ترونه في الأعلى بعقلنا البشري. لذا فقد كان من الصعب أيضاً ايجاد الأخطاء و تصحيحها. ولكن تلك التي تعمل، فأنها تعمل بسرعة شديدة جدّاً نظراً لأنها مكتوبة بلغة تفهمها الآلة بصورة مباشرة. و تسمّى البرامج المكتوبة بلغة الآلة ببرامج الجيل الأول.

    لم يستطع أجدادنا المبرمجون الاستمرار على هذا الحال، فقد كان فعلاً صعباً، لذت قاموا باختراع لغة التجميع (Assembly) و هي لغة أبسط من لغة الآلة نظراً لاحتوائها على أوامر مثل (ADD و MOV)، و هكذا كما ترون فقد ابتعدنا قليلاً عن لغة الآلة التي سبق و ركّزت على أنها لا تفهم سوىالصفر والواحد. و هنا ظهرت الحاجة الماسّة إلى المفسّر (Interpreter) و هو برنامج يقوم بتحويل الأوامر بالتتابع من لغة ال Assembly إلى لغة الآلة، و يوقف البرنامج فوراً في حالة مواجهة خطأ في البرنامج و لا يقوم يالنظر (حتى لجبر الخاطر) إلى بقية البرنامج :-)

    نلاحظ هنا أننا حصلنا على برنامج تسهل كتابته نسبياً و يمكن بسهولة ايجاد الأخطاء فيه و تصحيحها( بدلاً من البحلقة في الأصفار والآحادهاهاها).

    لكن.. التحويل من لغة التجميع إلى لغة الآلة، يأخذ جزء من وقت البرنامج، و هكذا أصبح البرنامج أبطأ قليلاً، و حين أقول قليلاً، فأنا أعني جزء من آلاف الأجزاء من الثانية الواحدة. و تعتبر لغة التجميع من الجيل الثاني (الذي يحتوي على هذه اللغة فقط)

    المبرمجون لم يعجبهم الحال (كما لم يعجبني حين درست هذه اللغة اهاهاهها) لذا أرادوا لغات تكون قريبة من لغة الإنسان، يفهمها بسهولة و ليست معقّدة مثل لغة التجميع. لذا قاموا بوضع العديد من لغات البرمجة التي تقوم على أوامر مباشرة بلغتنا البشرية التي نفهمها بسهولة، ففي لغة الباسكال مثلاً إذا أردنا طباعة كلمة (mama) على الشاشة نكتب الأمر التالي ضمن البرنامج:

    writeln("mama")


    و هذا كفيل بطباعة الكلمة على الشاشة :-)

    و لكننا هنا ابتعدنا عن لغة الآلة كثيراً، لذا توجّب علينا استخدام المترجم بدلاً من المفسّر، لتحويل البرنامج إلى لغة الآلة.

    و هذه اللغات هي لغات الجيل الثالث و منها: Pascal, COBOL, ForTran, Basic و منها أيضاً لغة ال C و التي تعتبر أسرع لغات الجيل الثالث على الإطلاق، بل انها في كثير من الأحيان تتصرّف كما لو كنت من الجيل الثاني (حيث يقوم بعض المصنّفون تصنيفها ضمن الجيل الثاني لهذا السبب).

    إلى هنا و الكلام عند المبرمجين سهل و بسيط، تسألهم ما هو البرنامج فيجيبون فوراً: مجموعة من الأوامر لتأدية وظيفة معيّنة.

    مُدخلات ، تحصل عليها -------> عمليات -----> تنتج منها ، مُخرجات

    و لكن.. نعم لازالت هناك "لكن"! الإنسان بطبعه لا يفكّر في العمليات التي تحدث دون أن يفكّر في المعلومات أو الأشياء التي حدثت عليها أو صدرت منها هذه الأفعال. لا يمكن أن تكون الجملة الفعلية صحيحة دون فاعل أو مفعول.

    إذاً ما زالت طريقة البرمجة بطريقة سلسلة العمليات المتلاحقة بعيدة عنّا و عن تفكيرنا.

    لقد كنّا خلال ما سبق من الأجيال نفكّر مثل الكومبيوتر. نكتب البرامج بناء على الطريقة التي يفهمها هو، و هذا من الصعوبة بمكان!

    لذا قام المبرمجون بايجاد الحل المناسب و هو الجيل الرابع من لغات البرمجة.





    الدرس الثاني




    تحدّثنا في الدرس السابق عن لغات البرمجة التي سبقت لغات الجيل الرابع، و قلنا أيضاً أنها جميعاً تشترك في صفة انها تقوم على مبدأ التحدّث بالطريقة التي يفهمها الكومبيوتر.

    و يجدر بالذكر أن جميع لغات الأجيال الثلاثة السابقة إذا تمّت ترجمتها على نظام تشغيل، لإانها لا تعمل إلا على هذا النظام.

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

    إذاً أي برنامج يتصرّف هكذا:

    البرنامج --------> المفسّر/المترجم --------> لغة الآلة

    ولأن المترجم متصل مباشرة كما ترون بلغة الآلة فإنه يعتمد عليها. و يختلف من نظام تشغيل إلى آخر.

    لذا قال المبرمجون أنهم سيتخيّلون وجود آلة! تكون هذه الآلة محددة و أطلقوا عليها اسم (Virtual machine) أو الآلة التخيّلية. و هم يكتبون برامجهم حسب هذه الآلة و ليس حسب نظام تشغيل محدد هكذا:

    البرنامج --------> المفسّر/المترجم --------> الآلة التخيلية --------> لغة الآلة

    نلاحظ الآن أن المترجم ابتعد عن لغة الآلة، و أصبح يترجم بناءً على آلة تخيلية.

    ما الذي نستفيده؟ البرنامج سيعمل على أي جهاز عليه الآلة التخيلية مهما اختلف نظام التشغيل دون الحاجة لإعادة الترجمة :-)

    من لغات الجيل الرابع: C++ and Java و Oracle و Visual Basic و غيرها، وهذه اللغات تعرف بأنها لغات تعتمد على البرمجة الشيئية.

      الوقت/التاريخ الآن هو الأربعاء ديسمبر 07, 2016 9:20 am