اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

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

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

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

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

  • 0
نشر

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

حيث تعتمد بعض لغات البرمجة، مثل Python و JavaScript، على أسلوب البرمجة الإجرائي، والذي يركز على وصف الخطوات التي يجب على الكمبيوتر اتخاذها لحل مشكلة، بينما تعتمد لغات أخرى، مثل Java و C++, على أسلوب البرمجة الموجه للكائنات، والذي يركز على إنشاء كائنات تحتوي على بيانات وسلوك.

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

تعتمد الخوارزميات أيضًا على مجموعة أساسية من المفاهيم، تتضمن المفاهيم الرياضية، مثل المصفوفات والمجموعات، بالإضافة إلى المفاهيم المنطقية، مثل الشروط والعمليات المنطقية.

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

وسأوضح لك الأمر بشكل مفصل أكثر ولفعل ذلك يجب التفرقة بين  لغات البرمجة عالية المستوى (High-Level) ولغات البرمجة منخفضة المستوى (Low-Level) وكيفية تأثير هذه الاختلافات على تصميم وتنفيذ البرامج:


هل اللغة C أو C++ هما لغتي برمجة منخفضة المستوى؟

تندرج لغتا البرمجة C وC++ تحت فئة اللغات ذات المستوى المتوسط، وتقدم لغات البرمجة منخفضة المستوى قليلًا أو لا تقدم أي تجريد abstraction لمفاهيم البرمجة، بينما توفر لغتا البرمجة C وC++ أقل درجات التجريد بما يتعلق بالأداء والكفاءة.

وتلك التجريدات مثل الماكروهات ودوال lambda في بايثون والكلاسات أيضًا تساعد المبرمجين على استخدام وظائف معقدة في البرمجة دون الحاجة لكتابة كود أكثر تعقيدًا.

لهذا السبب، تُعتبر لغات C وC++ لغات منخفضة المستوى حيث يكون الأداء هو الأهم؛ ومع ذلك، تظل التجريدات ضرورية للحفاظ على قابلية الصيانة وقراءة الشيفرة بشكل عالٍ.

برمجة منخفضة المستوى في لغات ذات مستوى عالٍ

في أواخر الستينات من القرن الماضي، قدمت لغات ذات مستوى عالٍ مثل  (extended ALGOL) و"بي إل/إس" (PL/S) و"بي سي بي إل" (BCPL) و"بليس" (BLISS) وC بعض الوصول إلى وظائف البرمجة منخفضة المستوى.

النهج الذي يتمثل في تضمين كود التجميع (Assembly) داخل لغة ذات مستوى عالٍ يعرف بـ "تجميع داخلي" (inline assembly).

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

وفي حقيقة الأمر لا يوجد لغات برمجة فعلياً منخفضة المستوى.

حتى لغة التجميع (Assembly) البحتة هي في الواقع لغة ذات مستوى نسبياً مرتفع، حيث يتم تفسيرها إلى رمز الآلة الفعلي من قبل وحدة المعالجة المركزية (CPU)، وما يعتبر مستوى عالي قد تغير مع تطوير لغات برمجة ذات مستوى عالٍ للغاية مثل Haskell وPython."

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

الفارق الرئيسي بين لغات البرمجة عالية المستوى ومنخفضة المستوى هو أن الشيفرة عالية المستوى أسهل قراءةً وتفسيرًا وبناءًا من شيفرة الآلة، من ناحية أخرى، يمكن للآلات تفسير لغة منخفضة المستوى بسهولة أكبر مقارنة بالبشر.

واللغات عالية المستوى توفر المزايا التالية:

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

بينما اللغات ذات المستوى المتوسط والمنخفض توفر التالي:

  1.  التحكم المباشر بمكونات العتاد واستخدام الموارد بكفاءة عالية.
  2. تحسين الأداء بسبب قربها من لغة الآلة، يمكن تحقيق أداء محسّن للبرامج المكتوبة بهذه اللغات.
  3. تحتاج لمستوى عمق في المعرفة التقنية للبرمجة باستخدام هذه اللغات، وقد تكون عملية تطوير البرمجيات أكثر تعقيدًا.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...