تجاوز إلى المحتوى الرئيسي
تابعنا على تيليجرامانضم

مقدمة في لغات البرمجة

الخوارزميات والبرمجة · المهارات الرقمية

آخر تحديث:

محتويات الموضوع (١٤)

شرح الموضوع

تُعرّف لغات البرمجة، وبيان تصنيفاتها (لغات البرمجة عالية المستوى، لغات البرمجة مُنخفضة المستوى، لغات البرمجة الكتلية، لغات البرمجة النصية)، والمقارنة بينها، فضلاً عن تعرّف العلاقة بين الخوارزميات والبرمجة، وتمثيل البرامج بالخوارزميات ومُخطّطات سير العمليات.

مُنتجات التعلّم

وكيف تسير اللعبة من أولها؟

نتاجات التعلّم

  • أُعرّف المقصود بلغة البرمجة.
  • أُعدّد بعض لغات البرمجة التي تختلف في مزاياها ووظائفها.
  • أُقارن بين لغة البرمجة الكتلية ولغة البرمجة النصية.
  • أُقارن بين لغات البرمجة عالية المستوى ولغات البرمجة مُنخفضة المستوى.
  • أُوضّح العلاقة بين الخوارزميات والبرمجة.
  • أُمثّل البرامج بالخوارزميات ومُخطّطات سير العمليات.

لغة البرمجة: كيف نكلّم الحاسوب؟

تعَلّمتُ في صفوف سابقة كيف أُطوّر برامج باستخدام برمجية سكراتش ⁦(Scratch)⁩ كما تعلمت تطوير مواقع الويب باستخدام لغة توصيف النص ⁦(HTML)⁩.

وكيف نصنّف هذه اللغات الكثيرة؟

لغة البرمجة

  • وهي تُعدّ الأداة الرئيسة التي يستخدمها المُبرمجون في التفاعل مع جهاز الحاسوب، وتوجيهه لتنفيذ مهام مُعيّنة.
  • تُصنّف لغات البرمجة إلى أنواع عِدّة، بناءً على وظائف كلّ منها، وتطبيقاتها، وطرائق معالجتها، وغير ذلك من المعايير والضوابط.
  • توجد جملة من المعايير والضوابط الرئيسة التي تَحكُم تصنيف لغات البرمجة، ويأتي في مُقدّمة هذه المعايير والضوابط درجة قرب لغات البرمجة من اللغات الإنسانية، أنظر الشكل (1-1).
  • وتأسيساً على ذلك، يُمكن تصنيف لغات البرمجة إلى نوعين، هما: لغات البرمجة عالية المستوى، ولغات البرمجة مُنخفضة المستوى.
الشكل (1-1): تصنيف لغات البرمجة تبعًا لقربها من لغات الإنسان.
الشكل (1-1): تصنيف لغات البرمجة تبعًا لقربها من لغات الإنسان.

إضاءة

أولاً: لغات البرمجة مُنخفضة المستوى :

المستوى المنخفض: قريبة من الآلة وبعيدة عنّا

  • تمتاز هذه اللغة بأنّها سريعة مقارنةً بلغات البرمجة عالية المستوى.
  • تمتاز هذه اللغة بأنّها أسهل من لغة الآلة؛ نظراً إلى احتوائها على بعض مفردات اللغة الإنجليزية؛ ما يُسهّل قراءة برامجها وفهمها.
  • غير أنّ تنفيذ البرامج المكتوبة بلغة التجميع يكون أبطأ مقارنةً بلغة الآلة.

ثانياً: لغات البرمجة عالية المستوى :

المستوى العالي: قريبة من الإنسان ومناسبة لكل الأجهزة

  • وقد سُمّيت هذه اللغات بهذا الاسم لقربها من لغة الإنسان وبعدها عن اللغة التي يفهمها جهاز الحاسوب؛ أي لغة الآلة.
  • ومن ثمّ، فهي لا تعتمد على أنواع أجهزة الحاسوب في أداء وظائفها، وإنّما صُمّمت على نحو يجعلها موائمة لجميع أجهزة الحاسوب، بغضّ النظر عن نوع هذه الأجهزة وأنظمة تشغيلها.

وبطريقة البرمجة نفسها، كيف تُصنَّف اللغات؟

نشاط: أقارن وأناقش

المُترجم والمُفسّر

المُترجم والمُفسّر: من النص إلى لغة الآلة

  • المُترجم والمُفسّر هما برنامجان يعملان على تحويل البرنامج المكتوب بلغة برمجة عالية المستوى إلى أوامر يفهمها جهاز الحاسوب، ويُسارع إلى تنفيذها.
  • ويُمكن للمُترجم اكتشاف بعض أنواع الأخطاء في البرنامج أثناء مرحلة الترجمة، وقبل البدء بتنفيذه، أنظر الشكل (1-2).
الشكل (1-2): مبدأ عمل المُترجِم.
الشكل (1-2): مبدأ عمل المُترجِم.
  • غير أنّ المُفسّر لا يعمل أحياناً على تحويل البرنامج إلى لغة الآلة بصورة مباشرة، وإنّما يقوم بتحويل البرنامج إلى لغة وسيطة أولاً، ثمّ يُحوّل كل جزء من أجزاء البرنامج الناتج إلى لغة الآلة، أنظر الشكل (1-3).
الشكل (1-3): مبدأ عمل المُفسِّر.
الشكل (1-3): مبدأ عمل المُفسِّر.

(جلب التعليمة التالية)

  • بعد ذلك يعمل الحاسوب على تنفيذ الأوامر التي خضعت للترجمة أو التفسير، ثمّ يتولّى المُعالج تنفيذ ⁦(Execution)⁩ التعليمات تباعاً وفق ترتيبها في البرنامج.

نشاط: أبحث وأقارن

المواطنة الرقمية

المواطنة الرقمية: برمجيات مرخّصة فقط

  • أحرص دائماً على استخدام البرمجيات المُرخّصة قانونياً، واحترام حقوق المُلّكية الفكرية للمُطوّرين والشركات.
  • أتجنّب استخدام البرمجيات المُقرصنة أو البرمجيات غير المُرخّصة؛ لأنّها قد تكون غير آمنة، وتُعرّض جهازي ومعلوماتي الشخصية للخطر.

مشروع (1): تصميم برنامج وإعداده لإنشاء لعبة تخمين الأرقام باستخدام لغة بايثون ⁦(Python) /⁩ المهمة

مشروع «نجوم وأقمار»: نخطّط قبل أن نبرمج

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

أُقيّم تعلّمي

أُوضّح المقصود بكلّ ممّا يأتي: لغة البرمجة.

لغة الآلة.

البرنامج.

السؤال الثاني: أُقارن بين لغات البرمجة عالية المستوى ولغات البرمجة مُنخفضة المستوى من حيث سهولة القراءة، والتطوير، والأداء، والكفاءة.

السؤال الأوّل: أُميّز بين لغات البرمجة الكتلية ولغات البرمجة النصية من حيث آليّة تمثيل الأوامر، ثمّ أذكر مثالاً على كلّ منهما.

السؤال الثاني: لماذا يُعدّ المُترجم أسرع تنفيذاً من المُفسّر؟

السؤال الثالث: ما التحدّيات التي قد يواجهها المُبرمج عند استخدام لغات البرمجة النصية بدلاً من لغات البرمجة الكتلية؟

السؤال الرابع: بناءً على دراستي موضوع (المُفسّر والمُترجم)، أيّهما أفضل لتطوير برامج كبيرة ومُعقدة؟ أُبرّر إجابتي.

القِيَم والاتجاهات:

تعريفات أساسية

لغة البرمجة ⁦(Programming Language)⁩

مجموعة من الأوامر والتعليمات التي تُستخدم في كتابة البرامج والتطبيقات وفق قواعد مُحدّدة

برنامج الحاسوب

مجموعة من الأوامر التي تُكتب بإحدى لغات البرمجة؛ بهدف حَلّ مشكلة ما، أو أداء مهمة مُحدّدة باستخدام جهاز الحاسوب

لغات البرمجة منخفضة المستوى ⁦(Low-Level Languages)⁩

تمتاز لغات البرمجة مُنخفضة المستوى بقربها من لغة الآلة، وبعدها عن لغة الإنسان ولذلك سميت بلغات البرمجة مُنخفضة المستوى

لغة الآلة ⁦(Machine Language)⁩

لغة برمجة تحتوي على أوامر وتعليمات يُمكن لجهاز الحاسوب فهمها مباشرة ومعالجتها، خلافاً للإنسان الذي يصعب عليه فهمها

لغة التجميع ⁦(Assembly Language)⁩

لغة تقوم على استخدام برنامج خاص يُسمّى المجمع ⁦(Assembler)⁩، ويعمل على تحويل الأوامر المكتوبة إلى لغة الآلة التي يفهمها جهاز الحاسوب

لغات البرمجة عالية المستوى ⁦(High-Level Languages)⁩

تمتاز لغات البرمجة عالية المستوى بمواءمتها للغة التي يفهمها الإنسان؛ إذ تُستخدم في كتابة البرامج رموز ومفردات قريبة من تلك المُتداولة في اللغة الإنجليزية

لغات البرمجة الكتلية ⁦(Block-Based Programming Languages)⁩

لغات تُستخدم فيها الكتل الرسومية ⁦(Graphical Blocks)⁩ لتمثيل أجزاء البرامج بدلاً من النصوص

لغات البرمجة النصية ⁦(Text-Based Programming Languages)⁩

لغات تُستخدم فيها النصوص لتمثيل أجزاء البرامج بدلاً من الكتل الرسومية

المترجم ⁦(Compiler)⁩

تتمثّل وظيفة المُترجم في الفحص الكامل لأي برنامج كُتب بلغة البرمجة عالية المستوى (البرنامج المصدري)، ثمّ ترجمته إلى لغة الآلة (البرنامج الهدف)؛ لكي تتمكّن وحدة معالجة البيانات من تنفيذه

المفسر ⁦(Interpreter)⁩

يعمل المُفسّر على تحويل كل جزء من أجزاء البرنامج المكتوب بلغة البرمجة عالية المستوى إلى لغة الآلة، ثمّ تنفيذ هذه الأجزاء أمراً بأمر؛ فعند وجود أمر خطأ تتوقف عملية تحويل الأجزاء المُتبقّية

معاينة موضوع «مقدمة في لغات البرمجة» من وحدة «الخوارزميات والبرمجة» في مادة المهارات الرقمية. أقسام الشرح: ١٤، التعريفات: ١٠.

المصدر: المركز الوطني لتطوير المناهج، مقدمة في لغات البرمجة (ص ١٠–١٧)

موضوعات أخرى في الوحدة

تابع الدراسة