المهارات الرقمية فصل أول

الحادي عشر خطة جديدة

icon

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

 

لغة البرمجة (Programming Language)
تُعرَّف لغة البرمجة بأنَّها : 

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

 تُصنَّف لغات البرمجة إلى أنواع عِدَّة ضمن المعايير والضوابط الرئيسة الآتية :

  • بناءً على وظائف كلٍّ منها، وتطبيقاتها
  • طرائق معالجتها، وغير ذلك من المعايير والضوابط.
  • درجة قرب لغات البرمجة من اللغات الإنسانية

تصنيف لغات البرمجة إلى نوعين، هما:

  • لغات البرمجة عالية المستوى
  • لغات البرمجة مُنخفِضة المستوى.

 

 

أوَّلًا: لغات البرمجة مُنخفِضة المستوى (Low-Level Languages):
تمتاز لغات البرمجة مُنخفِضة المستوى بقربها من لغة الآلة، خلافًا للغات البرمجة عالية المستوى.

وهي تنقسم إلى قسمين، هما:
1. لغة الآلة ( Machine Language ): لغة برمجة تحتوي على أوامر وتعليمات يُمكِن لجهاز الحاسوب فهمها مباشرة ومعالجتها، خلافًا للإنسان الذي يصعب عليه فهمها.

تمتاز هذه اللغة: 

  • بأنَّها سريعة مقارنةً بلغات البرمجة عالية المستوى.

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

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


ثانيًا: لغات البرمجة عالية المستوى (High-Level Languages) : 

  • تمتاز لغات البرمجة عالية المستوى بمواءمتها للغة التي يفهمها الإنسان؛ إذ تُستخدم في كتابة البرامج رموز ومفردات قريبة من تلك المُتداوَلة في اللغة الإنجليزية.
  •  سُمِّيت هذه اللغات بهذا الاسم لبُعْدها عن اللغة التي يفهمها جهاز الحاسوب؛ أيْ لغة الآلة. ومن ثمَّ، فهي لا تعتمد على أنواع أجهزة الحاسوب في أداء وظائفها، وإنَّما صُمِّمت على نحوٍ يجعلها موائمةً لجميع أجهزة الحاسوب، بِغَضِّ النظر عن نوع هذه الأجهزة وأنظمة تشغيلها.
  • من الأمثلة على لغات البرمجة عالية المستوى: لغة بايثون ( Python )، ولغة جافا ( Java )، ولغة سي ++ (++ C)، ولغة سي شارب (# C)
     

كما يُمكِن تصنيف لغات البرمجة إلى نوعين آخرين، هما:
1. لغات البرمجة الكتلية ( Block-Based Programming Languages ):

لغات تُستخدَم فيها الكتل الرسومية ( Graphical Blocks ) لتمثيل أجزاء البرامج بدلًًا من النصوص، مثل لغة البرمجة سكراتش (Scratch)
2. لغات البرمجة النصية ( Text-Based Programming Languages ):

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

 

مقارنة  بين لغات البرمجة المختلفة، و الكيفية التي تتغيَّر فيها طبيعة البرمجة تبعًا لتغيُّر المزايا في كل لغة برمجة.

   

لغات البرمجة مُنخفِضة المستوى لغات البرمجة عالية المستوى لغات البرمجة الكتلية لغات البرمجة النصية
  • أقرب إلى اللغة التي يفهمها الان سان.
  • تسهل عملية البرمجة وتجعلها أقرب للغة الانجليزية.
  • توفر مكتبات وأدوات جاهزة لتسريع التطوير.
  • الكود يكون أكثر قابلية للقراءة والصيانة.
  • أمثلة: #Python، Java،C
  • أقرب إلى لغة الآلة.
  • تمنح المبرمج تحكمًا دقيقًا في الأجهزة.
  • يصعب على الانسان فهمها 
  • الكود يكون أكثر تعقيدًا وصعب القراءة.
  • أمثلة: لغة التجميع(Assembly)
  • تُستخدَم فيها الكتل الرسومية  Graphical Blocks  لتمثيل أجزاء البرامج بدلًًا من النصوص، مثل لغة البرمجة سكراتش Scratch
  • تُستخدَم فيها النصوص لتمثيل أجزاء البرامج بدلًًا من الكتل الرسومية، مثل لغة جافا سكريبت Java Script

الكيفية التي تتغيَّر فيها طبيعة البرمجة تبعًا لتغيُّر المزايا في كل لغة برمجة:

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

 

المُترجِم والمُفسِّر (Compiler and Interpreter):
المُترجِم والمُفسِّر هما برنامجان يعملان على تحويل البرنامج المكتوب بلغة برمجة عالية المستوى إلى أوامر مباشرة يفهمها جهاز الحاسوب، ويُسارِع إلى تنفيذها.

 

  •  المُترجِم( Compiler ):

تتمثَّل وظيفة المُترجِم :

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

 

 

  • المُفسِّر (Interpreter ):

يعمل المُفسِّر على :

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


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

 

الخوارزميات (Algorithms) :
الخوارزمية هي :

مجموعة من الخطوات المُرتَّبة والمُتسلسِلة منطقيًّا، تهدف إلى حَلِّ مسألة مُعيَّنة بناءً على معطيات مُحدَّدة.

تهدف الخوارزمية : إلى تقديم حَلٍّ منهجي ومُنظَّم للمسائل المختلفة؛ سواء كانت بسيطة أو مُعقَّدة. وهي تُستخدَم على نطاق واسع في علوم الحاسوب لتطوير البرامج والتطبيقات، ويعمل جهاز الحاسوب على تنفيذ الخوارزميات بعد كتابتها في صورة برنامج باستخدام إحدى لغات البرمجة.

يراعى عند كتابة الخوارزميات مجموعة من المعايير والضوابط، أبرزها:
1. التسلسل المنطقي للخطوات والتعليمات.
2. التحديد الواضح والدقيق للمدخلات التي تدخل الخوارزمية، والمخرجات التي تنتج منها.
3. وضوح الخطوات، وسهولة تتبُّعها.
4. الفاعلية مُمثَّلةً في سرعة تنفيذها.

 

يُمكِن تمثيل خوارزمية البرنامج بطريقتين، هما:

1. الخوارزمية شبه الرمزية ( Pseudocode )

2. رسم مُخطَّطات سَيْر العمليات (Flowcharts )

 

  • الخوارزمية شبه الرمزية ( Pseudocode ):  تُكتَب الخوارزمية شبه الرمزية في مجموعة من الخطوات المُرقَّمة، تُستخدَم فيها لغة الإنسان، والتعابير والرموز الرياضية البسيطة.

مثال:
أكتب خوارزمية شبه رمزية لإيجاد ناتج المعادلة: y = a * x + b ، ثمَّ طباعتها.
الحَلُّ: أتَّبِع الخطوات الآتية في الحَلِّ:
1. أبدأ.
2. أُدخِل قِيَم المُتغيِّرات: a ، و x، و .b
3. أَجِد ناتج ضرب a * x
4. أَجِد قيمة y بتطبيق المعادلة الآتية: ) .)y = a * x + b
5. أطبع قيمة .y
6. أتوقَّف.

  • رسم مُخطَّطات سَيْر العمليات (Flowcharts ): تتمثَّل هذه الطريقة في رسم الخوارزمية باستخدام أشكال هندسية مُتعارَف عليها، ومجموعة من الأسهم والخطوط التي تُحدِّد سَيْر الخوارزمية. وكل شكل من هذه الأشكال يدلُّ على خطوة مُعيَّنة من خطوات تمثيل الخوارزمية، أنظر الشكل(4-1)

​​​​​​​

 

 

مثال:
عُدِّل المثال السابق بحيث تطبع الخوارزمية ( y > 60 ) إذا كان الناتج أكبر من 60 ، وتطبع (y < 60) إذا كان الناتج أقل من 60 ، إضافةً إلى طباعة الناتج y.

يُمكِن تمثيل مخطط سير عمل للخوارزمية في هذا المثال كما في الشكل ( 1- 5).

 

 

 

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

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