البرمجة
الجهاز هو عبارة عن جهاز قادر على إنجاز الحسابات و اتخاذ القرارات بسرعة تصل إلى ملايين أو بلايين المرات أسرع من الكائن الحي . على سبيل المثال ، تستطيع العديد من الحواسب الشخصية في يومنا هذا القيام بعشرات الملايين من العمليات الحسابية .
تقوم الحواسب بمعالجة المعطيات Data وفقا لمجموعة من التعليمات تدعى بالبرامج Programs و التي تقود الحاسب من خلال مجموعة من الأفعال المرتبة و المحددة بواسطة شخص يسمى بالمبرمج Computer Programmer .
لقد كثرت في الآونة الأخيرة لغات البرمجة وتعددت أنواعها لدرجة أضحى معها خبر ولادة لغة جديدة خبراً عادياً لا يجلب الانتباه . كما تغيرت المعايير التي تقيم اللغات تبعاً لها : فبدلاً من اعتماد سهولة الاستعمال والهيكلية والدقة كأسس للتقييم ، أصبح نجاح اللغة معتمداً بالدرجة الأولى على الثقل التجاري للشركة التي تقوم بتسويقها . لهذا السبب نجد من اللغات من يعمر ويلمع نجمه رغم ضعفه من الناحية الفنية ، وكذلك من يموت مباشرة بعد الولادة ، لا لعيب خلقي فيه ، بل لأن الشركات المسوقة لم تدعمه .
تعتبر برمجة الحاسبات بأية لغة من لغات البرمجة من أصعب العمليات وأكثرها تحدياً للعقل البشري . إذ إنها طريقة لإيصال الأفكار من الإنسان، الذي يتكلم ويفكر بلغة غنية في الهيكل مبهمة في المعنى، إلى الحاسب ، الذي يستعمل لغة عديمة الهيكل دقيقة المعنى . ولما كان من المتعذر ابتكار مترجم بين هاتين اللغتين الواقعتين على طرفي نقيض، كان على الإنسان أن يتنازل عن بعض من حرياته ويستعمل لغة أكثر تقييداً ولكنها أكثر دقة من لغته ، لإيصال أوامره إلى الحاسب .
يمكننا على هذا الأساس تصنيف لغات البرمجة حسب قربها من اللغات الإنسانية ( وبالتالي بعدها عن لغة الآلة ) لنجد الأنواع الثلاثة الموضحة في الشكل أدناه :
اللغات الإنسانية
اللغات
الحديثة
لغات المستوى العـــالي
لغة التجميع لغة
الآلة
مرونة + عمومية
سرعـــة + سلطــة
ولا يعني ما تقدم أن باستطاعة الحاسب أن يتقبل هذه اللغات غير الإنسانية ( رغم ما تمتاز به من دقة ) ، فهو لا يفقه إلا لغة الآلة . إلا أن دقة هذه اللغات تمكننا من ترجمتها إلى لغة الآلة . والمترجم ما هو إلا برنامج (يكتب عادة بلغة الآلة) يحول كل جملة لغوية إلى مجموعة من الأوامر المكافئة لها بلغة الآلة . وكما هي الحال بين البشر ، توجد ثلاثة أساليب للترجمة : الأسلوب الأول يعتمد على قراءة جملة واحدة من البرنامج الأصلي ، تحديد المقصود منها ، إيجاد الأوامر المكافئة لها بالمعنى بلغة الآلة ، ثم تنفيذ هذه الأوامر مباشرة ، قبل الشروع بقراءة الجملة التالية (لاحظ أن أوامر لغة الآلة لم تحفظ بل جرى تنفيذها فقط). يدعى البرنامج الذي يتبع هذا الأسلوب : المترجم ( Interpreter ) أو المترجم الفوري ويمتاز بسهولة التصميم وسهولة الاستعمال إلا أنه يبطئ تشغيل البرنامج (لأنه لا يحفظ ما سبق أن ترجم ) . الأسلوب الثاني يعتمد على قراءة البرنامج الأصلي كله دفعة واحدة ، تحديد مضمونه الإجمالي ، إيجاد الأوامر المكافئة له ، ككل بلغة الآلة ، ثم حفظ هذه الأوامر بملف ثان ( يسمى ملف الهدف Object تمييزاً له عن ملف المصدر Source الذي يحوي البرنامج الأصلي ) . يدعى برنامج هذا الأسلوب : المؤلف ( Compiler ) ويتسم بالصعوبة و التعقيد في التصميم والاستعمال إلا أنه يسرع التشغيل ( لأن الترجمة تتم مرة واحدة فقط ولأنها تنشد ترجمة المعنى الإجمالي ) . أما الأسلوب الأخير فيعمد إلى ترجمة كل جملة في البرنامج الأصلي إلى أمر واحد مرادف ( ونقول مرادف وليس مكافيء فقط ) لها بلغة الآلة . ثم يقوم بعدئذ بتجميع هذه الأوامر في ملف الهدف ليتم تنفيذها لاحقاً ، ولهذا السبب يطلق عليه اسم المجمع ( Assembler ) . ومن الواضح أن هذا الأسلوب لن ينجح في ترجمة المعنى ( كما لو حاولت فهم رسالة مكتوبة بلغة تجهلها باستخدام القاموس فقط ) ، اللهم إلا إذا كانت اللغة الأصلية قريبة جداً من لغة الآلة بحيث تتطابق جملها في النحو والإنشاء ولا تختلف إلا في المفردات . وهذه هي الحال تماماً مع لغة التجميع .
ويوضح الشكل أنه كلما اقتربنا من لغة الإنسان ، كلما اكتسبت برامجنا مرونة ( Flexibility ) وعمومية ( Portability ) أكثر . المرونة تعني السهولة في كتابة وتعديل وتصحيح البرامج ، وكذلك تعني القدرة على تحمل الأخطاء . فالمؤلف الذي يترجم لغة باسكال مثلاً ، إلى لغة الآلة يلعب دور المرشح فلا يسمح بوجود تعليمات غير صحيحة في البرنامج ، وبالتالي لا يترجم إلا التعليمات الصحيحة . وبذلك يحمينا من عواقب الأخطاء التي قد نرتكبها في البرنامج . أما العمومية فتعني استقلالية البرنامج عن نوع الجهاز الذي يعمل عليه . فبرنامج مكتوب بلغة فورتران القياسية ومنفذعلى كمبيوتر شخصي من أي نوع ، يمكن بكل سهولة نقله إلى حاسب كبير ( ليتم إعادة تأليفه هناك ) دون الحاجة ، في أغلب الأحيان إلى إجراء أي تعديل فيه .
الجهاز هو عبارة عن جهاز قادر على إنجاز الحسابات و اتخاذ القرارات بسرعة تصل إلى ملايين أو بلايين المرات أسرع من الكائن الحي . على سبيل المثال ، تستطيع العديد من الحواسب الشخصية في يومنا هذا القيام بعشرات الملايين من العمليات الحسابية .
تقوم الحواسب بمعالجة المعطيات Data وفقا لمجموعة من التعليمات تدعى بالبرامج Programs و التي تقود الحاسب من خلال مجموعة من الأفعال المرتبة و المحددة بواسطة شخص يسمى بالمبرمج Computer Programmer .
لقد كثرت في الآونة الأخيرة لغات البرمجة وتعددت أنواعها لدرجة أضحى معها خبر ولادة لغة جديدة خبراً عادياً لا يجلب الانتباه . كما تغيرت المعايير التي تقيم اللغات تبعاً لها : فبدلاً من اعتماد سهولة الاستعمال والهيكلية والدقة كأسس للتقييم ، أصبح نجاح اللغة معتمداً بالدرجة الأولى على الثقل التجاري للشركة التي تقوم بتسويقها . لهذا السبب نجد من اللغات من يعمر ويلمع نجمه رغم ضعفه من الناحية الفنية ، وكذلك من يموت مباشرة بعد الولادة ، لا لعيب خلقي فيه ، بل لأن الشركات المسوقة لم تدعمه .
تعتبر برمجة الحاسبات بأية لغة من لغات البرمجة من أصعب العمليات وأكثرها تحدياً للعقل البشري . إذ إنها طريقة لإيصال الأفكار من الإنسان، الذي يتكلم ويفكر بلغة غنية في الهيكل مبهمة في المعنى، إلى الحاسب ، الذي يستعمل لغة عديمة الهيكل دقيقة المعنى . ولما كان من المتعذر ابتكار مترجم بين هاتين اللغتين الواقعتين على طرفي نقيض، كان على الإنسان أن يتنازل عن بعض من حرياته ويستعمل لغة أكثر تقييداً ولكنها أكثر دقة من لغته ، لإيصال أوامره إلى الحاسب .
يمكننا على هذا الأساس تصنيف لغات البرمجة حسب قربها من اللغات الإنسانية ( وبالتالي بعدها عن لغة الآلة ) لنجد الأنواع الثلاثة الموضحة في الشكل أدناه :
اللغات الإنسانية
اللغات
الحديثة
لغات المستوى العـــالي
لغة التجميع لغة
الآلة
مرونة + عمومية
سرعـــة + سلطــة
ولا يعني ما تقدم أن باستطاعة الحاسب أن يتقبل هذه اللغات غير الإنسانية ( رغم ما تمتاز به من دقة ) ، فهو لا يفقه إلا لغة الآلة . إلا أن دقة هذه اللغات تمكننا من ترجمتها إلى لغة الآلة . والمترجم ما هو إلا برنامج (يكتب عادة بلغة الآلة) يحول كل جملة لغوية إلى مجموعة من الأوامر المكافئة لها بلغة الآلة . وكما هي الحال بين البشر ، توجد ثلاثة أساليب للترجمة : الأسلوب الأول يعتمد على قراءة جملة واحدة من البرنامج الأصلي ، تحديد المقصود منها ، إيجاد الأوامر المكافئة لها بالمعنى بلغة الآلة ، ثم تنفيذ هذه الأوامر مباشرة ، قبل الشروع بقراءة الجملة التالية (لاحظ أن أوامر لغة الآلة لم تحفظ بل جرى تنفيذها فقط). يدعى البرنامج الذي يتبع هذا الأسلوب : المترجم ( Interpreter ) أو المترجم الفوري ويمتاز بسهولة التصميم وسهولة الاستعمال إلا أنه يبطئ تشغيل البرنامج (لأنه لا يحفظ ما سبق أن ترجم ) . الأسلوب الثاني يعتمد على قراءة البرنامج الأصلي كله دفعة واحدة ، تحديد مضمونه الإجمالي ، إيجاد الأوامر المكافئة له ، ككل بلغة الآلة ، ثم حفظ هذه الأوامر بملف ثان ( يسمى ملف الهدف Object تمييزاً له عن ملف المصدر Source الذي يحوي البرنامج الأصلي ) . يدعى برنامج هذا الأسلوب : المؤلف ( Compiler ) ويتسم بالصعوبة و التعقيد في التصميم والاستعمال إلا أنه يسرع التشغيل ( لأن الترجمة تتم مرة واحدة فقط ولأنها تنشد ترجمة المعنى الإجمالي ) . أما الأسلوب الأخير فيعمد إلى ترجمة كل جملة في البرنامج الأصلي إلى أمر واحد مرادف ( ونقول مرادف وليس مكافيء فقط ) لها بلغة الآلة . ثم يقوم بعدئذ بتجميع هذه الأوامر في ملف الهدف ليتم تنفيذها لاحقاً ، ولهذا السبب يطلق عليه اسم المجمع ( Assembler ) . ومن الواضح أن هذا الأسلوب لن ينجح في ترجمة المعنى ( كما لو حاولت فهم رسالة مكتوبة بلغة تجهلها باستخدام القاموس فقط ) ، اللهم إلا إذا كانت اللغة الأصلية قريبة جداً من لغة الآلة بحيث تتطابق جملها في النحو والإنشاء ولا تختلف إلا في المفردات . وهذه هي الحال تماماً مع لغة التجميع .
ويوضح الشكل أنه كلما اقتربنا من لغة الإنسان ، كلما اكتسبت برامجنا مرونة ( Flexibility ) وعمومية ( Portability ) أكثر . المرونة تعني السهولة في كتابة وتعديل وتصحيح البرامج ، وكذلك تعني القدرة على تحمل الأخطاء . فالمؤلف الذي يترجم لغة باسكال مثلاً ، إلى لغة الآلة يلعب دور المرشح فلا يسمح بوجود تعليمات غير صحيحة في البرنامج ، وبالتالي لا يترجم إلا التعليمات الصحيحة . وبذلك يحمينا من عواقب الأخطاء التي قد نرتكبها في البرنامج . أما العمومية فتعني استقلالية البرنامج عن نوع الجهاز الذي يعمل عليه . فبرنامج مكتوب بلغة فورتران القياسية ومنفذعلى كمبيوتر شخصي من أي نوع ، يمكن بكل سهولة نقله إلى حاسب كبير ( ليتم إعادة تأليفه هناك ) دون الحاجة ، في أغلب الأحيان إلى إجراء أي تعديل فيه .
الإثنين 19 فبراير 2024, 11:20 pm من طرف الشادي
» منصة وصفحة مجانية لكل مدرس ومدرب بشبكة اقراء
الثلاثاء 28 سبتمبر 2021, 2:38 pm من طرف sakr75
» صفحتنا على الفيس بوك
الأربعاء 18 أغسطس 2021, 11:38 pm من طرف الشادي
» 3 صور بدقة عالية لمدينة يريم
الإثنين 22 فبراير 2021, 9:30 pm من طرف الشادي
» تراحموا #دثرني #منتدى_شباب_يريم
الثلاثاء 10 نوفمبر 2020, 8:43 pm من طرف الشادي
» الظفائر الفنان علي مجاهد
الثلاثاء 10 نوفمبر 2020, 8:01 pm من طرف الشادي
» يمكنكم زيارة صفحة منتدى شباب يريم على الفيس بوك و التويتر
السبت 21 يوليو 2018, 4:19 am من طرف الشادي
» اغبى خمسه اسئله في العالم بس اتحداكم تجابوها
السبت 21 يوليو 2018, 4:04 am من طرف الشادي
» موقع التواصل الإجتماعي عرب جرامز
السبت 21 يوليو 2018, 3:54 am من طرف الشادي