💻

مبادئ لغات البرمجة

Jun 17, 2024

مبادئ لغات البرمجة

مقدمة

  • Why am I here؟
    • تهدف المساق إلى تقديم نظرة عامة حول المبادئ الأساسية لبناء لغات البرمجة.
    • اختيار لغة البرمجة المناسبة لإنجاز مهام معينة.
    • فهم البرمجة الشيئية عند بناء برامج قابلة لإعادة الاستخدام.

تعريف لغة البرمجة

  • لغة برمجة: لغة تُستخدم لكتابة برنامج يتكون من مجموعة تعليمات تجبر الحاسوب على أداء مهمة معينة.
  • لغة ذكية (artificial language): مصممة لأداء مهام محوسبة (algorithm).
  • لغة وسيطة: وسيلة اتصال بين البشر عبر كتابة كود يمكن لمبرمج آخر فهمه وتطويره.
  • كود برمجي: تاسك مفهومة من قبل المبرمج والآلة.

أهمية دراسة هذا المساق

  1. زيادة القدرة على توليد أفكار برمجية جديدة.
  2. تحسين المعرفة الخلفية للمبرمج.
  3. زيادة القدرة على تعلم لغات برمجة جديدة.
  4. فهم الأساسيات التي أقيمت عليها لغات البرمجة.
  5. استخدام أفضل للغة البرمجة وتوظيف المزايا التي توفرها بشكل أفضل.
  6. نظرة عامة حول مفهوم الحوسبة.

تحسين الخلفية العلمية

  • تقديم المفاضلة بين لغات البرمجة.
  • معرفة الفيتشر التي توفرها كل لغة.

قواعد أساسية في لغات البرمجة

  • التعلم والفهم: فهم المفاهيم البرمجية مثل ال-loops، المتغيرات، والبنية الكاملة للغة البرمجة يساعد في التكيف واستخدام لغات أخرى.
  • استغلال الأمثل: استخدام الفيتشر المختلفة التي توفرها اللغة بما يناسب المهمة.
  • المرونة والإتقان: تحسين الفهم واستخدام الفيتشر بفعالية.

خصائص لغات البرمجة

  1. Readability: سهولة قراءة الكود.
  2. Writability: سهولة كتابة الكود.
  3. Reliability: واقعية اللغة وقدرتها على تنفيذ المهام المطلوبة.
  4. Cost: تكلفة التدريب والكتابة والتنفيذ.

أنواع لغات البرمجة

  1. لغات التطبيقات العلمية (scientific applications)

    • أمثلة: Fortran وAlgol.
    • تستخدم في: محاكاة العمليات الفيزيائية والمعادلات الفاصلة.
  2. لغات التطبيقات التجارية (business applications)

    • أمثلة: COBOL.
    • تركز على إصدار التقارير التجارية.
  3. لغات الذكاء الاصطناعي (AI)

    • أمثلة: LISP، Prolog.
    • تركز على الرمزيات أكثر من العمليات الحسابية.
  4. Systems programming

    • أمثلة: C.
    • تستخدم في بناء أنظمة التشغيل.
  5. Web وMobile applications

    • خليط من HTML، JavaScript، PHP، إلخ.

تصنيف لغات البرمجة

  • Imperative languages: C, Java, Visual Basic.
  • Functional languages: LISP, Scheme.
  • Logic-based languages: Prolog.
  • Markup/programming hybrid languages: HTML مع دمجها مع لغات برمجة.

تقنيات الترجمة (Translation Methods)

  1. Compilation

    • تحويل الكود لمباشرة إلى لغة الآلة.
    • أمثلة: C، C++.
  2. Interpretation

    • تنفيذ الكود دون تحويله إلى لغة الآلة.
    • أمثلة: JavaScript، PHP.
  3. Hybrid

    • مزيج من الكمبيلر والانتربريتر.
    • أمثلة: Java، Perl.

موازنة بين اللغات

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

عوامل إضافية

  • Portability: مدى قابلية نقل البرنامج من منصة لأخرى.
  • Generality: قدرة اللغة على برمجة تطبيقات متنوعة.
  • Impact of architecture: تأثير بنية الجهاز ولغة البرمجة على الأداء.

Von Neumann Architecture

  • بنية التحكم في البيانات والتعليمات بين الميموري و الـCPU.
  • الخطوات: جلب التعليمات ➜ فحص ➜ تنفيذ ➜ العودة للميموري.
  • أنواع اللغات البرمجية: لغات أقرب للآلة (1950) ➜ لغات هيكلية (1960) ➜ Process Oriented (1970) ➜ Object Oriented (1980).

خاتمة

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