أخبار الموقع

لغات البرمجة — أنواعها وتصنيفاتها (حسب المستوى، طريقة التنفيذ، الأسلوب) — الأولى ثانوي (شعبة تقني رياضي) — الإعلام الآلي

📋 بطاقة الدرس

المادة الإعلام الآلي
المستوى الأولى ثانوي (شعبة تقني رياضي)
الوحدة مفاهيم أساسية في الإعلام الآلي — لغات البرمجة
المدة الزمنية حصتان (ساعتان)

🎯 أهداف التعلم

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

💡 تمهيد

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

📌 أولاً: مفهوم لغة البرمجة

لغة البرمجة (Programming Language) هي مجموعة من القواعد والرموز والكلمات المفتاحية التي تسمح للمبرمج بكتابة تعليمات (برامج) يفهمها الحاسوب وينفذها. يمكن تشبيه لغة البرمجة بـ لغة التواصل بين الإنسان والحاسوب — فكما نستخدم اللغة العربية للتواصل مع الآخرين، نستخدم لغة برمجة للتواصل مع الحاسوب.

📝 مثال توضيحي: من الخوارزمية إلى البرنامج

خوارزمية جمع عددين (شيفرة وصفية):

خوارزمية جمع_عددين
المتغيرات: a, b, somme: أعداد صحيحة
البداية
  اقرأ a, b
  somme ← a + b
  اطبع somme
النهاية

نفس الخوارزمية بلغة Pascal:

Program AddNumbers;
Var
  a, b, somme: Integer;
Begin
  Write('أدخل العدد الأول: '); ReadLn(a);
  Write('أدخل العدد الثاني: '); ReadLn(b);
  somme := a + b;
  WriteLn('المجموع = ', somme);
  ReadLn;
End.

نفس الخوارزمية بلغة Python:

a = int(input('أدخل العدد الأول: '))
b = int(input('أدخل العدد الثاني: '))
somme = a + b
print('المجموع =', somme)

ملاحظة: لاحظ كيف تختلف الصياغة (Syntax) من لغة لأخرى، لكن المنطق (الخوارزمية) يبقى نفسه!

📌 ثانياً: أجيال لغات البرمجة (Generations of Programming Languages)

صنّف علماء الحاسوب لغات البرمجة عبر تاريخها إلى خمسة أجيال، كل جيل يمثل قفزة نوعية في سهولة الاستخدام والتجريد:

الجيل المسمى الأمثلة الخصائص
الجيل الأول (1GL) لغة الآلة (Machine Language) 01001010 01101111 أوامر ثنائية (0 و 1) فقط — صعبة جداً، خاصة بكل معالج
الجيل الثاني (2GL) لغة التجميع (Assembly) MOV AX, 5
ADD AX, BX
رموز مختصرة للتعليمات — أسرع تنفيذ لكنها مرهقة
الجيل الثالث (3GL) اللغات عالية المستوى Pascal, C, Java, Python قريبة من اللغة الطبيعية — سهلة الفهم — منقولة بين المنصات
الجيل الرابع (4GL) لغات التطبيق السريع SQL, MATLAB, R, Visual Basic تركز على ماذا تريد وليس كيف — تستخدم في قواعد البيانات والتحليل
الجيل الخامس (5GL) اللغات الذكية (المنطقية) Prolog, Lisp, Mercury تعتمد على الذكاء الاصطناعي والمنطق — تحل المشاكل بتعريف القواعد

🔑 ملاحظة مهمة للبكالوريا:

في المنهاج الجزائري، نركز على الجيل الثالث (3GL) وتحديداً لغة Pascal للمبتدئين و C++ في السنوات المتقدمة.

📌 ثالثاً: تصنيف لغات البرمجة حسب المستوى

هذا التصنيف هو الأكثر شيوعاً في المناهج التعليمية:

1. لغات المستوى المنخفض (Low-Level Languages):

هي اللغات القريبة من لغة الآلة، وتتميز بالسرعة العالية وصعوبة الكتابة:

  • لغة الآلة (Machine Language): تتكون من 0 و 1 فقط — يفهمها الحاسوب مباشرة دون ترجمة.
  • لغة التجميع (Assembly Language): تستخدم رموزاً مختصرة (Mnemonic) مثل MOV، ADD، SUB بدلاً من الأرقام الثنائية، وتحتاج إلى مُجمّع (Assembler) لتحويلها إلى لغة الآلة.

2. لغات المستوى العالي (High-Level Languages):

هي اللغات القريبة من اللغة الطبيعية، وتتميز بسهولة القراءة والكتابة والصيانة:

  • تستخدم كلمات إنجليزية مفهومة مثل If، While، For
  • منقولة (Portable): يمكن تشغيل نفس البرنامج على أنظمة مختلفة بعد إعادة ترجمته
  • أمثلة: Pascal، Python، Java، C++، JavaScript

📊 مقارنة بين لغة منخفضة وأخرى عالية المستوى

نفس العملية (جمع عددين) بلغة التجميع (x86):

MOV AX, 5    ; AX = 5
MOV BX, 10   ; BX = 10
ADD AX, BX   ; AX = AX + BX

نفس العملية بلغة C:

int a = 5, b = 10, somme;
somme = a + b;

الفارق واضح: سطر واحد في C يقابله 3 أسطر في Assembly!

📌 رابعاً: تصنيف لغات البرمجة حسب طريقة التنفيذ

النوع آلية العمل المميزات العيوب أمثلة
اللغات المترجمة (Compiled) يُحوّل المُصرّف (Compiler) البرنامج كاملاً إلى لغة الآلة قبل التنفيذ → ملف تنفيذي (.exe) سرعة تنفيذ عالية جداً — لا حاجة للمُصرّف عند التشغيل تعديل البرنامج يتطلب إعادة الترجمة — الملفات أكبر حجماً C, C++, Pascal (Free Pascal / Delphi)
اللغات المفسرة (Interpreted) يقرأ المُفسّر (Interpreter) البرنامج سطراً سطراً وينفذه فوراً سهولة التعديل والاختبار — منقولة جداً أبطأ في التنفيذ — يحتاج المُفسّر عند كل تشغيل Python, JavaScript, PHP, Ruby
اللغات الهجينة (Hybrid) تُحوّل إلى كود وسيط (Bytecode) ثم يُفسّر أو يُترجم في الوقت المناسب (JIT) توازن بين السرعة والنقلية أكثر تعقيداً في التنفيذ Java (JVM), C# (.NET)

💡 مثال توضيحي: Compiler vs Interpreter

المُصرّف (Compiler): كأنك تترجم كتاباً كاملاً من العربية إلى الإنجليزية ثم تقرأه — تحتاج وقتاً في البداية لكن القراءة سريعة بعد ذلك.

المُفسّر (Interpreter): كأن معك مترجم فوري يترجم لك كل جملة لحظياً — تبدأ القراءة فوراً لكنها تستغرق وقتاً أطول.

📌 خامساً: تصنيف لغات البرمجة حسب الأسلوب (Programming Paradigms)

النموذج البرمجي (Paradigm) هو أسلوب أو منهجية معينة في كتابة البرامج. لكل لغة برمجة نموذج أو أكثر:

النموذج الفكرة الأساسية اللغات متى يُستخدم؟
البرمجة الإجرائية (Procedural) البرنامج سلسلة من الإجراءات والدوال التي تعالج البيانات ← يركز على العملية (Process) Pascal, C, Fortran تعليم الخوارزميات والمبتدئين — أساس المنهاج الجزائري
البرمجة الشيئية (Object-Oriented) البرنامج مجموعة من الكائنات (Objects) التي تجمع البيانات والعمليات معاً ← يركز على الكيان (Entity) C++, Java, Python, C# تطبيقات كبيرة ومعقدة — برمجيات سطح المكتب والويب
البرمجة الوظيفية (Functional) البرنامج مجموعة من الدوال الرياضية البحتة — لا يوجد تغيير في الحالة (État) Haskell, Lisp, Scala, (جزئياً Python) الذكاء الاصطناعي — معالجة البيانات — الأنظمة المتزامنة
البرمجة المنطقية (Logic) البرنامج مجموعة من الحقائق والقواعد المنطقية ← يبحث عن استنتاجات Prolog, Mercury أنظمة الخبراء — الذكاء الاصطناعي — معالجة اللغات الطبيعية

📝 البرمجة الإجرائية (Procedural) — أسلوب Pascal

Program ProceduralExample;
Var
  a, b: Integer;

Function Max(x, y: Integer): Integer;
Begin
  If x > y Then
    Max := x
  Else
    Max := y;
End;

Begin
  Write('أدخل عددين: '); ReadLn(a, b);
  WriteLn('العدد الأكبر = ', Max(a, b));
  ReadLn;
End.

الشرح: لاحظ أن البرنامج يتكون من إجراءات (Procedure) ودوال (Function) منفصلة تعالج البيانات — هذا هو جوهر البرمجة الإجرائية التي تركز عليها منهاجنا الجزائري.

📌 سادساً: لماذا نتعلم Pascal في المنهاج الجزائري؟

قد تتساءل: لماذا نتعلم Pascal وليس Python أو Java؟ إليك الأسباب:

  • بساطة القواعد: Pascal صممت أصلاً لتعليم البرمجة — قواعدها النحوية واضحة وصارمة
  • قوية للبرمجة الإجرائية: تدعم كل مفاهيم البرمجة الإجرائية (إجراءات، دوال، هياكل تحكم) بشكل مثالي
  • الترجمة (Compiled): تساعد على فهم دورة حياة البرنامج (كتابة → ترجمة → تنفيذ)
  • قاعدة متينة: تعلم Pascal يسهل تعلم أي لغة أخرى (C، Java، Python) لأن المفاهيم الأساسية مشتركة
  • موجودة في البكالوريا: امتحان البكالوريا لشعبة تقني رياضي يعتمد على Pascal

✏️ تمرين تطبيقي

التمرين: لديك الجدول التالي للغات البرمجة. أكمل الخلايا الفارغة:

اللغة المستوى طريقة التنفيذ النموذج البرمجي
Pascal عالي مترجمة ????
Python ???? مفسرة شيئية + إجرائية
C عالي ???? إجرائية
لغة التجميع ???? تُجمّع (Assembler)
SQL عالي (4GL) ???? تصريحية (Declarative)
🟢 انقر هنا لرؤية الحل
اللغة المستوى طريقة التنفيذ النموذج البرمجي
Pascal عالي مترجمة إجرائية
Python عالي مفسرة شيئية + إجرائية
C عالي مترجمة إجرائية
لغة التجميع منخفض (2GL) تُجمّع (Assembler)
SQL عالي (4GL) مفسرة (عادةً) تصريحية (Declarative)

✏️ سؤال بكالوريا (مقتبس)

السؤال: صنّف لغات البرمجة التالية حسب المستوى (منخفض / عالي) وحسب طريقة التنفيذ (مترجمة / مفسرة):

  • Pascal
  • Python
  • Assembly
  • Java
🟢 انقر هنا لرؤية الإجابة
اللغة المستوى طريقة التنفيذ
Pascal عالي مترجمة (مُصرّف Free Pascal / Delphi)
Python عالي مفسرة (مُفسّر Python Interpreter)
Assembly منخفض (لغة تجميع) تُجمّع بواسطة Assembler
Java عالي هجينة (ترجمة إلى Bytecode → يُفسّر على JVM)

📌 سابعاً: أشهر لغات البرمجة واستخداماتها

اللغة الاستخدام الرئيسي سنة الإنشاء
Pascal تعليم البرمجة — أساس المنهاج الجزائري للتقني رياضي 1970
C أنظمة التشغيل — البرمجة المضمنة — التطبيقات عالية الأداء 1972
C++ البرمجة الشيئية — الألعاب — برمجيات سطح المكتب 1985
Java تطبيقات الويب — أندرويد — تطبيقات المؤسسات 1995
Python الذكاء الاصطناعي — تحليل البيانات — تطبيقات الويب — التعليم 1991
JavaScript تطوير الويب (واجهات المستخدم التفاعلية) 1995
SQL قواعد البيانات — الاستعلام عن البيانات وتعديلها 1974
PHP تطوير الويب (الجهة الخادمة — Backend) 1995

📌 ثامناً: كيف تختار لغة البرمجة المناسبة؟

عند اختيار لغة برمجة لمشروع معين، يجب مراعاة العوامل التالية:

  1. نوع التطبيق: هل هو تطبيق ويب؟ تطبيق سطح مكتب؟ لعبة؟ تطبيق جوال؟
  2. الأداء: هل يحتاج التطبيق إلى سرعة عالية (اختر C/C++) أو الأداء أقل أهمية؟
  3. وقت التطوير: Python و JavaScript تسمح بتطوير أسرع مقارنة بـ C++
  4. المجتمع والدعم: اللغات الشائعة (Python, JavaScript, Java) لديها مجتمعات ضخمة ومكتبات جاهزة
  5. سهولة التعلم: Python و Pascal من أسهل اللغات للمبتدئين
  6. متطلبات سوق العمل: في الجزائر، Pascal للتعليم — Python و JavaScript و Java للعمل المهني

🧠 ملخص الدرس

  • لغة البرمجة: مجموعة قواعد ورموز للتواصل مع الحاسوب — جسر بين التفكير البشري والتنفيذ الآلي
  • أجيال البرمجة: 5 أجيال من لغة الآلة (1GL) → اللغات الذكية (5GL)
  • حسب المستوى: لغات منخفضة المستوى (قريبة من الآلة، سريعة، صعبة) — لغات عالية المستوى (قريبة من الإنسان، سهلة، منقولة)
  • حسب طريقة التنفيذ: مترجمة (Compiler) ← سريعة — مفسرة (Interpreter) ← مرنة — هجينة (Bytecode + JVM)
  • حسب الأسلوب (النموذج البرمجي): إجرائي ← يركز على العمليات — شيئي (OOP) ← يركز على الكائنات — وظيفي ← يركز على الدوال — منطقي ← يركز على القواعد
  • Pascal هي اللغة الأساسية في المنهاج الجزائري لشعبة تقني رياضي — لغة إجرائية مترجمة، ممتازة لتعليم أساسيات البرمجة

📍 دروس مشابهة:

شاهد أيضا

الرياضيات — قياس الأطوال (المتر وأجزاؤه — السنتيمتر والمليمتر) — السنة الثالثة إبتدائي — المنهاج الجزائري

أهداف التعلم التعرف على وحدة قياس الطول الأساسية (المتر). معرفة أجزاء المتر: السنتيمتر والمليمتر. قياس …

اللغة العربية — ظرف الزمان والمكان (التمييز بينهما مع الأمثلة) — السنة الثالثة إبتدائي — المنهاج الجزائري

أهداف التعلم التعرف على مفهوم ظرف الزمان وظرف المكان. التمييز بين ظرف الزمان وظرف المكان. …

التربية العلمية والتكنولوجية — الحيوانات البرية والمنزلية (التصنيف والخصائص) — السنة الثانية إبتدائي — المنهاج الجزائري

أهداف التعلم تصنيف الحيوانات إلى برية ومنزلية. التعرف على خصائص كل مجموعة من الحيوانات. معرفة …

التربية الإسلامية — سورة قريش (تفسير مبسط وحفظ للأطفال) — السنة الثانية إبتدائي — المنهاج الجزائري

أهداف التعلم حفظ سورة قريش كاملة مع النطق الصحيح. فهم معاني السورة الكريمة تفسيراً مبسطاً. …

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *