المحتوى هنا ينقصه الاستشهاد بمصادر، أي معلومات غير موثقة يمكن التشكيك بها وإزالتها.
هذه المقالة مشكوكٌ أنها تحتوي بحثًا أصليًا.
يرجى مراجعة هذه المقالة وإزالة وسم المقالات غير المراجعة، ووسمها بوسوم الصيانة المناسبة.

تاريخ تطور البرمجيات

من ويكيبيديا، الموسوعة الحرة
اذهب إلى التنقل اذهب إلى البحث
Question book-new.svg
المحتوى هنا ينقصه الاستشهاد بمصادر. يرجى إيراد مصادر موثوق بها. أي معلومات غير موثقة يمكن التشكيك بها وإزالتها. (ديسمبر 2018)
N write.svg
هذه مقالة غير مراجعة. ينبغي أن يزال هذا القالب بعد أن يراجعها محرر عدا الذي أنشأها؛ إذا لزم الأمر فيجب أن توسم المقالة بقوالب الصيانة المناسبة. (سبتمبر 2011)
Edit-find-replace.svg
هذه المقالة ربما تحتوي بحثًا أصليًّا. ربما تجد نقاشًا حول هذا في صفحة نقاش المقالة. فضلًا ساعد في تحسينها بالتحقق من الادعاءات وإضافة الهوامش إليها. يجب إزالة المعلومات التي تُعد بحوثًا أصلية.

تعد البرمجة لغة التخاطب الوحيدة بين الإنسان والحاسوب والتي تتم من خلال كتابة مجموعة من التعليمات (instructions) تمرر للحاسوب وتهدف لتنفيذ أمر معين، وتعرف هذه اللغة الخاصة باسم لغة البرمجة.

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

﷽ بسم الله الرحمن الرحيم

كليةالامارات للعلوم والتكنولوجيا عنون البحث :لغات المستوى الاعلى والادنى الاسم محمد احمد المستوى : الأول نظم معلومات عامة

البدايات[عدل]

ظهرت أولى لغات البرمجة قبل صناعة الحاسوب الحديث، وقد كانت في البداية عبارة عن شيفرات (codes).

في عام 1801م اخترع العالم جوزيف - ميري جاكارد ( Jacquard, Joseph-Marie) نولاً ميكانيكياً (آلة للحياكة)، يتمّ التّحكم به عن طريق البطاقات المثقّبة (Punch Cards). والبطاقة المثقّبة عبارة عن بطاقة صغيرة الحجم مصنوعة من الورق المقوّى، تحتوي على عدّة ثقوب مرتّبة بنسق معين. وتمثل هذه الثقوب "البيانات" اللازمة لتغذية الآلة بالبرنامج المحدّد للحركة.

الكثير من مصنعي الحواسيب الأوائل أدركوا أهمية البطاقة المثقبة في تزويد آلاتهم بالأوامر اللازمة للعمل، ففي عام 1820م أو 1821م تبنّى العالم البريطاني تشارلز بابيج (Charles Babbage ) فكرة البطاقة المثقّبة لصناعة أول كمبيوتر ميكانيكي حقيقي عرفه التاريخ يدار بواسطة محرّك بخاري. وقد أسماه الآلة التحليليّة (Analytical Engine).

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

وقد استخدمت البطاقة المثقبة لفترة طويلة خلال القرن العشرين ( حتى بداية السبعينات تقريباً ) كأداة أساسية لتغذية الحاسوب الحديث بالبيانات.

تطور لغات البرمجة حسب الجيل[عدل]

لغات الجيل الأول[عدل]

يعتمد الأساس في تطور لغة البرمجة كما نعرفها اليوم لاستعمال نظام العد الثنائي (Binary System)-(0,1) لتمثيل الأوامر والعمليات الحسابية والمنطقية في الحاسوب الحديث (الذي يدار بالطاقة الكهربائية)، وتلك تعد ثورة في عالم الحاسوب وأساس لنجاحه بعد فشل عدة حواسيب تستخدم نظام العد العشري كحاسوب تشارلز بابيج.

وتعرف الأوامر المكتوبة بنظام العد الثنائي بلغة الآلة ( machine language ) أو الجيل الأول للغات البرمجة.

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

لغات الجيل الثاني[عدل]

كان لا بد من إيجاد طريقة لتمثيل الأوامر البرمجية (op-code) بعيداً عن تعقيد رموز لغة الآلة. وتمّ التفكير باستخدام شيفرة نصية مكونة من عدة حروف ( من 1- 5 أحرف ) لكتابة هذه الأوامر ووصف مواقع الذاكرة، عرفت باسم (mnemonics).

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

هذا التطور في عملية ترميز البرامج وترجمتها أدّى لنشوء لغة برمجة خاصة عرفت باسم لغة التجميع ( assembly language ) والتي تمثل الجيل الثاني من لغات البرمجة. واعتبرت هذه اللغة قفزة عملاقة في عالم لغات البرمجة، وجعلت من تطوير تقنيات برمجية أفضل أمراً ممكناً.

لغات الجيل الثالث[عدل]

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

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

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

أي أن التصميم يكون أسهل لو تم التفكير به من مكونات كلّية (major features) ومن ثم يتم تقسيم الكليات لمكونات أكثر تفصيلا.

اعتماداً على هذه الفكرة تم التوجه نحو تطوير لغات برمجة تمكّن المبرمج من بناء برنامج معتمداً على النظرة الكلية (high-level) ومن ثم تحويلها لمكونات أدنى (low-level). ونتج عن ذلك جيل ثالث من لغات البرمجة عرفت باسم لغات البرمجة عالية المستوى (high-level languages) واستخدمت هذه اللغات على لغة الإنسان الطبيعية-اللغة الإنجليزية- و رموز رياضية ومنطقية معروفة، في حين اكتسبت لغة التجميع مسمى لغات البرمجة متدنية المستوى(low level languages).

وبذلك تخطت لغات الجيل الثالث كل عقبات الجيل الثاني، من حيث سهولة التصميم وعدم اعتماد أوامرها على آلة بحد ذاتها.

من أشهر لغات البرمجة عالية المستوى والتي ظهرت في مرحلة مبكرة:

  • لغة كوبول والتي كانت مخصصة للأغراض التجارية والأعمال (COBOL- COmmon Business Oriented Language).
  • لغة فورتران والتي كانت مخصصة للأغراض العلمية والتطبيقات الهندسية (FORTRAN- FORmula TRANslator).

وقد تم تزويد لغات البرمجة عالية المستوى ببرنامج مترجم (compiler) ليقوم بتحويل الأوامر البرمجية من المستوى الأعلى إلى المستوى الأدنى - لغة الآلة - ليتمكن الحاسوب من تنفيذه.

مراجع[عدل]