الثلاثاء، 5 مايو 2015

تعد البرمجة لغة التخاطب الوحيدة بين الإنسان والحاسوب والتي تتم من خلال كتابة مجموعة من التعليمات (instructions) تمرر للحاسوب وتهدف لتنفيذ أمر معين، وتعرف هذه اللغة الخاصة باسم لغة البرمجة.ويوجد اليوم المئات من لغات البرمجة التي تختلف في أهدافها و وظيفتها، وقد مرت هذه اللغات بمراحل طويلة من التطور حتى وصلت للشكل المتعارف عليه اليوم.البداياتظهرت أولى لغات البرمجة قبل صناعة الحاسوب الحديث، وقد كانت في البداية عبارة عن شيفرات (codes).في عام 1801م اخترع العالم جوزيف - ميري جاكارد ( Jacquard, Joseph-Marie) نولاً ميكانيكياً (آلة للحياكة)، يتمّ التّحكم به عن طريق البطاقات المثقّبة (Punch Cards). والبطاقة المثقّبة عبارة عن بطاقة صغيرة الحجم مصنوعة من الورق المقوّى، تحتوي على عدّة ثقوب مرتّبة بنسق معين. وتمثل هذه الثقوب "البيانات" اللازمة لتغذية الآلة بالبرنامج المحدّد للحركة.الكثير من مصنعي الحواسيب الأوائل أدركوا أهمية البطاقة المثقبة في تزويد آلاتهم بالأوامر اللازمة للعمل، ففي عام 1820م أو 1821م تبنّى العالم البريطاني تشارلز بابيج (Charles Babbabe) فكرة البطاقة المثقّبة لصناعة أول كمبيوتر ميكانيكي حقيقي عرفه التاريخ يدار بواسطة محرّك بخاري. وقد أسماه الآلة التحليليّة (Analytical Engine).كما صمم الأمريكي هيرمان هوليرث ( Herman Hollerith ) آلة خاصة لإجراء التعداد السكاني في العام 1890م تتم تغذيتها بواسطة بطاقة مثقبة بحجم ورقة الدولار، وتحوي البطاقة عددا من الثقوب يمثل فيها موضع الثقب معلومة محددة عن الشخص كالجنس أو مكان الولادة إلخ... وقد ساعدت هذه الطريقة الحكومة الأمريكية على إنهاء التعداد في عامين ونصف بدلا من السبعة أعوام ونصف التي احتاجها التعداد السابق.وقد استخدمت البطاقة المثقبة لفترة طويلة خلال القرن العشرين ( حتى بداية السبعينات تقريباً ) كأداة أساسية لتغذية الحاسوب الحديث بالبيانات.تطور لغات البرمجة حسب الجيللغات الجيل الأوليعتمد الأساس في تطور لغة البرمجة كما نعرفها اليوم لاستعمال نظام العد الثنائي (Binary System)-(0,1) لتمثيل الأوامر والعمليات الحسابية والمنطقية في الحاسوب الحديث (الذي يدار بالطاقة الكهربائية)، وتلك تعد ثورة في عالم الحاسوب وأساس لنجاحه بعد فشل عدة حواسيب تستخدم نظام العد العشري كحاسوب تشارلز بابيج.وتعرف الأوامر المكتوبة بنظام العد الثنائي بلغة الآلة ( machine language ) أو الجيل الأول للغات البرمجة.وفي البدايات البرمجية كان على المبرمج كتابة البرنامج كاملاً مستخدما لغة الآلة، ولكن هذه العملية كانت صعبة ومرهقة وعرضة لكثير من الأخطاء.لغات الجيل الثانيكان لا بد من إيجاد طريقة لتمثيل الأوامر البرمجية (op-code) بعيداً عن تعقيد رموز لغة الآلة. وتمّ التفكير باستخدام شيفرة نصية مكونة من عدة حروف ( من 1- 5 أحرف ) لكتابة هذه الأوامر ووصف مواقع الذاكرة، عرفت باسم (mnemonics).عند استخدام هذه التقنية في البداية كان المبرمج يستخدم الشيفرة النصية لتصميم البرنامج على الورق، ومن ثم يقوم بترجمته إلى لغة الآلة عند إدخاله إلى جهاز الحاسوب. ولكن، وبعد بعض الوقت، تم التوصل لطريقة تمكن الحاسوب من القيام بعملية الترجمة بنفسه، حيث تم إنشاء برنامج خاص سمّي باسم المجمّع (assembler) مهمته تجميع الأوامر المكتوبة بلغة الآلة من الأوامر المكتوبة على شكل شيفرة رمزية أو نصية (mnemonics).هذا التطور في عملية ترميز البرامج وترجمتها أدّى لنشوء لغة برمجة خاصة عرفت باسم لغة التجميع ( assembly language ) والتي تمثل الجيل الثاني من لغات البرمجة. واعتبرت هذه اللغة قفزة عملاقة في عالم لغات البرمجة، وجعلت من تطوير تقنيات برمجية أفضل أمراً ممكناً.لغات الجيل الثالثعلى الرغم من التميز الذي أظهرته لغات الجيل الثاني على لغة الآلة، إلا أنها عانت بعض العقبات. فالبرنامج المكتوب بها تتم كتابته ليتناسب مع خصائص الآلة (الحاسوب) التي سيتم تطبيقه عليها. بمعنى أن البرنامج المكتوب بلغة التجميع معتمد على الآلة التي يتم تنفيذه عليها ولا يمكن استخدامه على آلة أخرى، إلا بعد إعادة كتابته ليتلاءم مع تكوين هذه الآلة الجديدة ( مثل أسماء المسجلات ومواقع الذاكرة..).عقبة أخرى تتمثل في عملية تصميم البرنامج والذي يتطلب من المبرمج التفكير بدقائق البرنامج جميعها، من حيث تعريف اسم المسجل (register) وأسماء مواقع الذاكرة التي سيتم تطبيق أمر معين عليها، وهذا يعني أن على المبرمج أن يبني البرنامج خطوة خطوة من مستوى أدنى لمستوى أعلى.تشبه المسألة عملية وضع مخطط لبناء منزل. فلغة التجميع تماثل وضع مخطط للبناء يبدأ من المسامير والألواح والطوب (من الأسفل) صعودا حتى تصميم الغرف (للأعلى)، في حين أنه يكون من الأسهل لو تم البدأ بتصميم المنزل أولاً على شكل غرف و

ليست هناك تعليقات:

إرسال تعليق