محتويات
البرمجة
يُعرِّف موقع تيكوبيديا (بالإنجليزيّة: Techopedia) البرمجة (بالإنجليزيّة: Programming) على أنّها العمليّة التي يتم فيها استخدام المنطق لتسهيل إجراء العمليّات الحسابيّة والمهام المختلفة باستخدام جهاز الحاسوب. تتمّ العمليّة باستخدام لغة برمجة، وتوجد عدّة لغات للبرمجة تختلف كلّ منها عن الأخرى من حيث التطبيقات، ومجال الاستخدام، وطريقة الكتابة.[١]
يمكن تعريف البرنامج (بالإنجليزيّة: Program) على أنّه مجموعة من الأوامر المُرتّبة، والتي يقوم جهاز الحاسوب باتّباعها لتنفيذ مهامّ معيّنة. يوضع البرنامج في وسيلة تخزين يمكن للحاسوب الوصول إليها وقراءة البرنامج منها، ليقوم بتنفيذ الأوامر، أمراً تلو الأمر، كما يمكن تخزين البيانات التي يريد المبرمج من الحاسوب معالجتها وإجراء العمليّات عليها.[٢]
عند استخدام لغة برمجة في كتابة برنامج معيَّن، يتم التقيُّد بطريقة الكتابة (بالإنجليزيّة: Syntax) الخاصّة باللغة بالإضافة إلى العبارات المختلفة الموجودة فيها. كما أنَّ البرمجة تتطلَّب خبرة في مجالات أخرى كالخوارزميّات (بالإنجليزيّة: Algorithms) على سبيل المثال. يمكن تمييز الشيفرة (بالإنجليزيّة: Code) الجيّدة المكتوبة بإحدى لغات البرمجة عن غيرها بواسطة أربعة عوامل، وهي كالآتي:[١]
- المتانة؛ والمعني بذلك هو قدرة البرنامج على التعامل مع الأخطاء بصورة تسمح له بإكمال عمله رغم وجود هذه الأخطاء.
- الموثوقيّة؛ ويتم الوصول إليها عبر التصميم الجيِّد والإدراج الصحيح للخوارزميّات.
- الكفاءة؛ ويكون ذلك بالاستغلال الأمثل للموارد كالذاكرة وغيرها.
- سهولة قراءة الكود وجودة توثيقه.
آليّة عمل لغات البرمجة
عند الكتابة باستخدام لغة برمجة معيّنة، فيتم اللجوء إلى استخدام برنامج معيَّن يُسمّى بالمحوِّل البرمجي (بالإنجليزيّة: Compiler)، إذ يقوم هذا البرنامج بتحويل لغة البرمجة إلى لغة الآلة (بالإنجليزيّة: Machine code) التي يستطيع جهاز الحاسوب فهمها. يقوم المبرمج بكتابة الكود باستخدام أي برنامج لتحرير النصوص (بالإنجليزيّة: Text editor) على شكل مجموعة من العبارات، ومن ثمَّ يتم استخدام المحوِّل البرمجي المُخصَّص للغة البرمجة التي تمَّت الكتابة بها عن طريق تحديد اسم الملفّ الذي يحتوي الكود.[٣]
يقوم المحوِّل البرمجي عند تشغيله بتحليل العبارات والتأكُّد من صحّة كتابتها، بعد ذلك يتمّ تحويل هذه الشيفرة إلى ما يُسمّى بملفّ كائن (بالإنجليزيّة: Object file)، وهو الذي يحتوي على مجموعة الأوامر المُصاغة بلغة الآلة، والتي يقوم جهاز الحاسوب بتنفيذها. قد تلي خطوة التحويل البرمجي خطوة إضافيّة وهي الدمج بين عدد من الملفّات الكائنة التي تعتمد على بعضها البعض، ومن ثمَّ إخراج ملفّ واحد قابل للتشغيل (بالإنجليزيّة: Executable)، وتُسمّى هذه الخطوة بالربط (بالإنجليزيّة: Linking).[٣][٤] من لغات البرمجة التي تعمل بالمبدأ المذكور نفسه هي لغة سي (بالإنجليزيّة: C)، ولغة سي بلس بلس (بالإنجليزيّة: C)، ولغة فورتران (بالإنجليزيّة: Fortran)، وسويفت (بالإنجليزيّة: Swift)، وغيرها.[٥]
بعض لغات البرمجة تختلف من حيث آليّة العمل عمّا هو مذكور، ومن هذه اللغات لغة جافا (بالإنجليزيّة: Java)، إذ يتم تحويل الكود إلى أوامر معيّنة تُسمّى (بالإنجليزيّة: Bytecode)، وهذه الأوامر يمكن تنفيذها على أي جهاز حاسوب يحتوي على برنامج "الجهاز الافتراضي" (بالإنجليزيّة: Virtual machine) المُخصَّص لفهم هذه الأوامر وتحويلها إلى أوامر يمكن لجهاز الحاسوب الذي يتم تشغيل البرنامج عليه فهمها وتنفيذها.[٣]
من اللغات البرمجيّة أيضاً ما يسمح بتنفيذ البرنامج بشكلٍ فوري دون الحاجة إلى تحويله باستخدام برنامج محوِّل برمجي، إذ يتم اللجوء إلى استخدام برنامج يُسمّى بالمُفسِّر (بالإنجليزيّة: Interpreter)، والذي يقوم بتحويل عبارات لغة البرمجة إلى أوامر وتنفيذها بشكلٍ فوري، وممّا يميِّز هذه النوع من أنواع لغات البرمجة هو قدرة إيقاف عمل البرنامج وهو قيد التنفيذ والتعديل عليه، والذي قد يكون بهدف تصحيح أخطاء معيّنة فيه (بالإنجليزيّة: Debugging)، ولكن هذه اللغات لا تمتاز بسرعة التنفيذ التي تمتاز بها لغات البرمجة التي تعتمد على التحويل البرمجي. من لغات البرمجة التي تعمل بالآليّة المذكورة هي لغة بايثون (بالإنجليزيّة: Python)، وبيرل (بالإنجليزيّة: Perl)، وجافاسكريبت (بالإنجليزيّة: Javascript)، ولغة المعالج المسبق للنصوص الفائقة (بالإنجليزيّة: PHP).[٦][٥]
تصنيف لغات البرمجة من حيث المستوى
يمكن تصنيف لغات البرمجة إلى نوعين حسب المستوى، ألا وهي لغات البرمجة منخفضة المستوى (بالإنجليزيّة: Low-level)، ولغات البرمجة عالية المستوى (بالإنجليزيّة: High-level). إنَّ مصطلح المستوى هنا يُشير إلى مقدار تجريد اللغة وقربها إلى ما يفهمه جهاز الحاسوب، فكلّما قلّ مستوى اللغة زاد تجريدها والعكس صحيح. تُعدّ لغة الآلة هي اللغة الأكثر تجريداً من بين لغات البرمجة، لذا فهي الأقل مستوى، ففي هذه اللغة، يتم كتابة الأوامر تماماً باللغة التي يفهمها جهاز الحاسوب، وهي الأرقام، فكلّ رقم يُعبِّر عن أمر معيَّن. تلي لغة الآلة لغة التجميع (بالإنجليزيّة: Assembly language)، والتي لا تختلف عن لغة الآلة سوى استبدال الكتابة بالأرقام بالكتابة بعبارات معيّنة. تتميَّز لغات البرمجة منخفضة المستوى بكونها سريعة التنفيذ، بالإضافة لإتاحتها للمبرمج كامل التحكُّم بالبيانات والذاكرة.[٧]
إنَّ لغات البرمجة عالية المستوى تتميَّز بسهولة فهمها من قِبَل الإنسان، فهي تضيف إمكانيّة ترتيب وتنسيق الكود بشكل أفضل بواسطة المتغيِّرات (بالإنجليزيّة: Variables)، والدوال (بالإنجليزيّة: Functions)، والتكرار (بالإنجليزيّة: Loop)، والقوالب (بالإنجليزيّة: Classes)، وغير ذلك ممّا يمكن اللجوء إليه للتقليل من عدد العبارات المستخدمة خلال البرمجة. إنَّ هذه اللغات لا تتيح إمكانيّة التحكُّم نفسها التي تتيحها اللغات منخفضة المستوى، ولكنّها أيضاً تُعدّ أكثر أماناً، وذلك لكونها تحتوي على وسائل حماية تمنع المُبرمج من الإضرار بالجهاز في حال سوء كتابته للعبارات. من الأمثلة على هذه اللغات هي لغتي بايثون وروبي (بالإنجليزيّة: Ruby).[٧]
فيديو روبوت الموت
هل يمكن أن يصل العالم لمرحلة تتحكم فيها الحواسيب بنا؟ وإلى أين وصل العلم في تقنيات الروبوتات؟ شاهد الفيديو لتعرف ذلك:
المراجع
- ^ أ ب "Programming", www.techopedia.com, Retrieved 8-3-2018. Edited.
- ↑ Margaret Rouse, "program"، www.techtarget.com, Retrieved 8-3-2018. Edited.
- ^ أ ب ت Margaret Rouse, "compiler "، www.techtarget.com, Retrieved 8-3-2018. Edited.
- ↑ Alex Allain, "Compiling and Linking"، www.cprogramming.com, Retrieved 8-3-2018. Edited.
- ^ أ ب David Bolton (23-9-2017), "What Is Computer Programming? "، www.thoughtco.com, Retrieved 8-3-2018. Edited.
- ↑ "Interpreter", www.techopedia.com, Retrieved 8-3-2018. Edited.
- ^ أ ب Dann Albright (9-11-2017), "High-Level vs. Low-Level Programming Languages: Which Should You Learn? "، www.makeuseof.com, Retrieved 8-3-2018. Edited.