قائمة لغات البرمجة حسب النوع

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

لغات البرمجة الموجهة نحو الوكلاء

تتيح البرمجة الموجهة نحو الوكلاء للمطور بناء وتوسيع واستخدام وكلاء البرامج ، وهي عبارة عن تجريدات للكائنات التي يمكنها مراسلة وكلاء آخرين.

لغات المصفوفات

تعمل لغات برمجة المصفوفات ( وتسمى أيضًا لغات المتجهات أو متعددة الأبعاد ) على تعميم العمليات على القيم العددية لتطبيقها بشكل شفاف على المتجهات والمصفوفات والمصفوفات ذات الأبعاد الأعلى .

لغات البرمجة الموجهة نحو الجوانب

تُمكّن البرمجة الموجهة نحو الجوانب المطورين من إضافة وظائف جديدة إلى الكود، تُعرف باسم "التوجيه" ، دون تعديل الكود نفسه. وبدلاً من ذلك، تستخدم هذه البرمجة نقطة قطع لتنفيذ التوجيه في كتل الكود.

لغات التجميع

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

لغات التأليف

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

لغات واجهة سطر الأوامر

تُسمى لغات واجهة سطر الأوامر (CLI) أيضًا لغات المعالجة الدفعية أو لغات التحكم في المهام. أمثلة:

اللغات المترجمة

هذه لغات تتم معالجتها عادةً بواسطة المترجمات ، على الرغم من أنه من الناحية النظرية يمكن ترجمة أو تفسير أي لغة.

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

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

اللغات المتزامنة

توفر لغات تمرير الرسائل بنى لغوية للتزامن . ويُعدّ التزامن عبر الذاكرة المشتركة النموذج السائد للتزامن في اللغات الشائعة مثل جافا . وقد استُلهمت لغات التزامن التي تستخدم تمرير الرسائل عمومًا من حسابات العمليات، مثل العمليات المتسلسلة المتصلة (CSP) أو حساب باي .

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

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

لغات العقود

التصميم التعاقدي (أو البرمجة التعاقدية) هو البرمجة باستخدام الشروط المسبقة والشروط اللاحقة والثوابت المحددة .

لغات الأقواس المعقوفة

لغة الأقواس المعقوفة لها بنية تُعرّف الكتلة بأنها التعليمات الموجودة بين الأقواس المعقوفة{} . نشأت هذه البنية مع لغة BCPL (1966)، وانتشر استخدامها بفضل لغة C. العديد من لغات الأقواس المعقوفة مشتقة من لغة C أو متأثرة بها بشدة . أمثلة:

لغات تدفق البيانات

تعتمد لغات برمجة تدفق البيانات على تمثيل (عادةً ما يكون مرئيًا) لتدفق البيانات لتحديد البرنامج. تُستخدم هذه اللغات غالبًا للتفاعل مع أحداث منفصلة أو لمعالجة تدفقات البيانات. تشمل لغات تدفق البيانات ما يلي:

لغات موجهة نحو البيانات

توفر لغات البرمجة الموجهة نحو البيانات طرقًا فعّالة للبحث عن العلاقات ومعالجتها، والتي تُعرف بجداول علاقات الكيانات، حيث تربط مجموعة من العناصر بمجموعات أخرى. تشمل لغات البرمجة الموجهة نحو البيانات ما يلي:

لغات جداول القرار

يمكن استخدام جداول القرار كوسيلة مساعدة لتوضيح المنطق قبل كتابة برنامج بأي لغة، ولكن في الستينيات تم تطوير عدد من اللغات حيث يتم التعبير عن المنطق الرئيسي مباشرة في شكل جدول قرار، بما في ذلك:

اللغات التصريحية

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

اللغات القابلة للتضمين

في شفرة المصدر

تقوم لغات البرمجة القابلة للتضمين بتضمين أجزاء صغيرة من التعليمات البرمجية القابلة للتنفيذ داخل نص حر، وغالبًا ما يكون صفحة ويب.

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

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

جانب الخادم

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

جانب العميل

في كود الكائن

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

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

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

اللغات الباطنية

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

لغات إضافية

لغات البرمجة الإضافية هي لغات مضمنة في برنامج آخر وتستخدم للاستفادة من ميزاته في البرامج النصية الإضافية.

لغات الجيل الرابع

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

اللغات الوظيفية

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

نقي

ملوث

لغات وصف الأجهزة

في مجال الإلكترونيات، تُعد لغة وصف الأجهزة (HDL) لغة حاسوبية متخصصة تُستخدم لوصف بنية وتصميم وتشغيل الدوائر الإلكترونية، وخاصةً دوائر المنطق الرقمي. أكثر أنواع لغات وصف الأجهزة استخدامًا ودعمًا في الصناعة هما Verilog و VHDL . وتشمل لغات وصف الأجهزة ما يلي:

لغات وصف الأجهزة لتصميم الدوائر التناظرية

  • Verilog-AMS (Verilog للإشارات التناظرية والمختلطة)
  • VHDL-AMS (VHDL مع امتداد الإشارات التناظرية/المختلطة)

لغات وصف الأجهزة لتصميم الدوائر الرقمية

اللغات الإجرائية

قد تكون لغات البرمجة الإجرائية متعددة الأنماط وتظهر في تصنيفات أخرى. إليك قائمة بلغات البرمجة التي تتبع النمط الإجرائي :

لغات الوضع التفاعلي

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

اللغات المترجمة

اللغات المفسرة هي لغات برمجة يمكن فيها تنفيذ البرامج من شكلها الأصلي، بواسطة مترجم. نظريًا، يمكن ترجمة أي لغة أو تفسيرها، لذا يشير مصطلح اللغة المفسرة عمومًا إلى اللغات التي تُفسَّر عادةً بدلًا من ترجمتها.

اللغات التكرارية

تُبنى اللغات التكرارية حول المولدات أو توفرها .

اللغات حسب نوع إدارة الذاكرة

اللغات التي تم جمعها من القمامة

جمع البيانات المهملة (GC) هو شكل من أشكال إدارة الذاكرة التلقائية. يحاول جامع البيانات المهملة استعادة الذاكرة التي خصصها البرنامج ولكنها لم تعد مستخدمة.

اللغات التي تعتمد على إدارة الذاكرة اليدوية

اللغات التي تدعم إدارة الذاكرة اليدوية الاختيارية

بعض لغات البرمجة التي لا تمتلك القدرة المتأصلة على إدارة الذاكرة يدويًا، مثل Cython ، [ 31 ] Swift ، [ c ] و Scala [ 32 ] (Scala Native فقط)، قادرة على استيراد أو استدعاء وظائف مثل mallocو freeمن C من خلال واجهة وظيفة خارجية .

اللغات ذات إدارة الذاكرة الحتمية

اللغات التي تستخدم نظام العد المرجعي التلقائي (ARC)

لغات البرمجة القائمة على القوائم - LISPs

اللغات القائمة على القوائم هي نوع من لغات البيانات المهيكلة التي تعتمد على بنية بيانات القائمة .

اللغات الصغيرة

اللغات الصغيرة [ 35 ] تخدم مجال مشكلة متخصص.

  • awk – تُستخدم لمعالجة ملفات النصوص.
  • sed – يقوم بتحليل وتحويل النصوص
  • لغة SQL - تحتوي على عدد قليل من الكلمات المفتاحية فقط، ولا تتضمن جميع البنى اللازمة للغة برمجة كاملة [ د ] - تقوم العديد من أنظمة إدارة قواعد البيانات بتوسيع لغة SQL بإضافة بنى إضافية كلغة إجراءات مخزنة.
  • لغة XPL - لغة مصممة لكتابة المترجمات، وإن لم تقتصر عليها.

اللغات القائمة على المنطق

تحدد اللغات القائمة على المنطق مجموعة من السمات التي يجب أن يمتلكها الحل، بدلاً من مجموعة من الخطوات للحصول على حل.

ومن اللغات البارزة التي تتبع هذا النموذج البرمجي ما يلي:

لغات الآلة

لغات الآلة قابلة للتنفيذ مباشرةً بواسطة وحدة المعالجة المركزية (CPU) في الحاسوب. تُصاغ عادةً على شكل أنماط بتية، تُمثل عادةً بالنظام الثماني أو الست عشري . يُؤدي كل نمط بتي إلى قيام دوائر وحدة المعالجة المركزية بتنفيذ إحدى العمليات الأساسية للأجهزة. يتحكم تفعيل مدخلات كهربائية محددة (مثل دبابيس حزمة وحدة المعالجة المركزية للمعالجات الدقيقة)، والإعدادات المنطقية لقيم حالة وحدة المعالجة المركزية، في حسابات المعالج. كل لغة آلة خاصة بعائلة معينة من المعالجات؛ فلا يمكن تشغيل كود لغة الآلة الخاص بعائلة معينة من المعالجات مباشرةً على معالجات من عائلة أخرى إلا إذا كانت المعالجات المعنية مزودة بأجهزة إضافية تدعم ذلك (على سبيل المثال، تضمنت معالجات DEC VAX وضع توافق مع PDP-11). يتم تعريفها (بشكل أساسي) دائمًا من قِبل مطور وحدة المعالجة المركزية، وليس من قِبل جهات خارجية. [ هـ ] كما يتم تعريف النسخة الرمزية، وهي لغة التجميع الخاصة بالمعالج ، من قِبل المطور في معظم الحالات. من بين مجموعات تعليمات كود الآلة الشائعة الاستخدام :

لغات الماكرو

لغات الماكرو لاستبدال النصوص

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

قد تقتصر لغات الماكرو على العمل مع مناطق برمجية مُحددة (مُسبقة بـ "a" #في حالة مُعالج C المُسبق). أو قد لا تقتصر على ذلك، ولكن في هذه الحالة، غالبًا ما يكون من غير المُستحب (على سبيل المثال) توسيع ماكرو مُضمن في سلسلة نصية حرفية ، لذا فهي لا تزال بحاجة إلى معرفة أساسية بالبنية. مع ذلك، غالبًا ما تظل قابلة للتطبيق على أكثر من لغة. على النقيض من ذلك، فإن اللغات القابلة للتضمين في الكود المصدري مثل PHP ، والتي تتمتع بميزات كاملة.

  • معالج مسبق للغة C
  • m4 (أصلاً من AT&T، مرفق مع نظام Unix)
  • ML/I (معالج ماكرو للأغراض العامة)
  • TTM (تم تطويره في معهد كاليفورنيا للتكنولوجيا)

لغات الماكرو للتطبيقات

تم دمج لغات البرمجة النصية مثل Tcl و ECMAScript ( ActionScript و ECMAScript for XML و JavaScript و JScript ) في التطبيقات. تُسمى هذه اللغات أحيانًا "لغات الماكرو"، وإن كان ذلك بمعنى مختلف نوعًا ما عن ماكرو استبدال النصوص مثل m4 .

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

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

اللغات النمطية

البرمجة المعيارية هي نموذج برمجي لتنظيم الوظائف والرموز في وحدات مستقلة.

لغات متعددة النماذج

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

  • 1ج: لغة برمجة المؤسسات (عامة، إجرائية، كائنية التوجه، قائمة على النماذج الأولية، وظيفية)
  • أدا ( متزامنة ، موزعة ، عامة ( برمجة ما وراء القوالبأمرية ، كائنية التوجه ( قائمة على الفئات ))
  • ALF ( وظيفي ، منطقي )
  • ألما-0 (قيد، أمري، منطقي)
  • لغة APL (وظيفية، إجرائية، كائنية التوجه (قائمة على الفئات))
  • بيتا (وظيفي، إجرائي، كائني التوجه (قائم على الفئات))
  • لغة C++ (عامة، إجرائية، كائنية التوجه (قائمة على الفئات)، وظيفية، برمجة وصفية)
  • لغة سي شارب (عامة، إجرائية، كائنية التوجه (قائمة على الفئات)، وظيفية، تصريحية)
  • سيلون (عام، إجرائي، كائني التوجه (قائم على الفئات)، وظيفي، تصريحي)
  • ChucK (أمري، كائني التوجه، زمني، متزامن، فوري)
  • كوبرا (عامة، حتمية، كائنية التوجه (قائمة على الفئات)، وظيفية، تعاقدية)
  • لغة Common Lisp (وظيفية، إجرائية، كائنية التوجه (قائمة على الفئات)، موجهة نحو الجوانب (يمكن للمستخدم إضافة نماذج أخرى، على سبيل المثال، المنطق))
  • Curl (وظيفي، إجرائي، كائني التوجه (قائم على الفئات)، برمجة وصفية)
  • كاري (متزامن، وظيفي، منطقي)
  • D (عام، إجرائي، وظيفي، كائني التوجه (قائم على الفئات)، برمجة وصفية)
  • دارت (عامة، إجرائية، وظيفية، كائنية التوجه (قائمة على الفئات))
  • دلفي أوبجكت باسكال (عام، إجرائي، كائني التوجه (قائم على الفئات)، برمجة وصفية)
  • ديلان (وظيفي، كائني التوجه (قائم على الفئات))
  • ECMAScript (وظيفي، إجرائي، كائني التوجه (قائم على النموذج الأولي))
  • إيفل (أمري، كائني التوجه (قائم على الفئات)، عام، وظيفي (وكلاء)، متزامن (SCOOP))
  • F# (وظيفية، عامة، كائنية التوجه (قائمة على الفئات)، موجهة نحو اللغة)
  • فانتوم (وظيفي، كائني التوجه (قائم على الفئات))
  • انطلق (بصيغة الأمر، الإجرائية)،
  • Groovy (وظيفي، كائني التوجه (قائم على الفئات)، إجرائي، إجرائي)
  • الميناء
  • هوب
  • J (وظيفي، إجرائي، كائني التوجه (قائم على الفئات))
  • جافا (عامة، إجرائية، كائنية التوجه (قائمة على الفئات)، وظيفية)
  • جوليا (الأمرية، الإرسال المتعدد ("الموجهة للكائنات")، الوظيفية، البرمجة الوصفية)
  • LabVIEW ( مرئي ، تدفق البيانات ، متزامن، معياري، وظيفي، كائني التوجه، برمجة نصية)
  • لغة لوا (وظيفية، إجرائية، كائنية التوجه ( قائمة على النموذج الأولي ))
  • ميركوري (وظيفي، منطقي، موجه نحو الكائنات)
  • بروتوكولات الكائنات الوصفية (موجهة للكائنات (قائمة على الفئات، قائمة على النماذج الأولية))
  • نيميرل (وظيفي، كائني التوجه (قائم على الفئات)، إجرائي، برمجة فوقية)
  • لغة البرمجة Objective-C (إجرائية، كائنية التوجه (قائمة على الفئات)، انعكاسية)
  • OCaml (وظيفية، إجرائية، كائنية التوجه (قائمة على الفئات)، معيارية)
  • أوز (وظيفي (التقييم: سريع ، كسول )، منطقي، مقيد ، إجرائي، كائني التوجه (قائم على الفئات)، متزامن، موزع)، ونظام برمجة موزارت متعدد المنصات أوز
  • أوبجكت باسكال (أمري، كائني التوجه (قائم على الفئات))
  • بيرل (أمرية، وظيفية (لا يمكن أن تكون وظيفية بحتة)، كائنية التوجه، فئة التوجه، جانب التوجه (من خلال الوحدات النمطية))
  • لغة PHP (إجرائية، كائنية التوجه، وظيفية (لا يمكن أن تكون وظيفية بحتة))
  • بايك (لغة برمجة ديناميكية، تفسيرية، متعددة الأغراض، عالية المستوى، متعددة المنصات)
  • بروغراف (تدفق البيانات، كائني التوجه (قائم على الفئات)، مرئي)
  • بايثون (الوظيفية، المترجمة، المفسرة، الموجهة للكائنات (القائمة على الفئات)، الإجرائية، البرمجة الوصفية، الامتداد، غير النقية، الوضع التفاعلي، التكرارية، الانعكاسية، البرمجة النصية)
  • R (مصفوفة، تفسيرية، غير نقية، وضع تفاعلي، قائمة على القوائم، كائنية التوجه قائمة على النماذج الأولية، برمجة نصية)
  • Racket (وظيفي، إجرائي، كائني التوجه (قائم على الفئات) ويمكن توسيعه بواسطة المستخدم)
  • راكو (متزامن، تسلسلي، وظيفي، برمجة وصفية عامة، إجرائية، انعكاسية، كائنية التوجه، خطوط الأنابيب، تفاعلية، وعبر المكتبات، قيود، موزعة)
  • ريبول (وظيفي، إجرائي، كائني التوجه (قائم على النموذج الأولي)، برمجة فوقية (لهجات))
  • الأحمر (وظيفي، إجرائي، كائني التوجه (قائم على النموذج الأولي)، برمجة فوقية (لهجة)
  • روبي (أمرية، وظيفية، كائنية التوجه (قائمة على الفئات)، برمجة وصفية)
  • Rust (متزامنة، وظيفية، إجرائية، كائنية التوجه، عامة، برمجة فوقية، مترجمة)
  • سكالا (وظيفية، كائنية التوجه)
  • Seed7 (أمري، كائني التوجه، عام)
  • SISAL (متزامن، تدفق البيانات، وظيفي)
  • الجداول الإلكترونية (الوظيفية، المرئية)
  • لغة سويفت (موجهة نحو البروتوكول، موجهة نحو الكائنات، وظيفية، إجرائية، ذات بنية كتلية)
  • لغة Tcl (وظيفية، إجرائية، كائنية التوجه (قائمة على الفئات))
    • الشاي (وظيفي، إجرائي، كائني التوجه (قائم على الفئات))
  • V (Vlang) (وظيفي، إجرائي، منظم، متزامن)
  • ويندوز باور شيل (وظيفي، إجرائي، خط أنابيب، كائني التوجه (قائم على الفئات))
  • وولفرام ماثيماتيكا ( لغة وولفرام )

التحليل العددي

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

اللغات غير القائمة على اللغة الإنجليزية

لغات البرمجة الكائنية الموجهة القائمة على الفئات

تدعم لغات البرمجة الكائنية الموجهة القائمة على الأصناف الكائنات المُعرَّفة بواسطة أصنافها. تتضمن تعريفات الأصناف بيانات الأعضاء. يُعدّ تمرير الرسائل مفهومًا أساسيًا، إن لم يكن المفهوم الرئيسي، في لغات البرمجة الكائنية الموجهة.

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

شحنة واحدة

لغات البرمجة الكائنية الموجهة القائمة على النماذج الأولية

اللغات القائمة على النماذج الأولية هي لغات كائنية التوجه حيث تم إزالة التمييز بين الفئات والحالات:

لغات قواعد التسلل

تُشير لغات قواعد التسلل إلى كتل التعليمات البرمجية من خلال المسافة البادئة الخاصة بها .

اللغات الإجرائية

تعتمد لغات البرمجة الإجرائية على مفهوم الوحدة ونطاق (مدى عرض البيانات) عبارة التعليمات البرمجية القابلة للتنفيذ. يتكون البرنامج الإجرائي من وحدة واحدة أو أكثر، أو وحدات نمطية، إما مكتوبة من قِبل المستخدم أو مُقدمة في مكتبة برمجية؛ تتكون كل وحدة نمطية من إجراء واحد أو أكثر، يُسمى أيضًا دالة أو روتينًا أو روتينًا فرعيًا أو طريقة، وذلك حسب اللغة. من أمثلة اللغات الإجرائية:

لغات الاستعلام

اللغات الانعكاسية

تتيح لغات البرمجة الانعكاسية للبرامج فحص بنيتها عالية المستوى، وربما تعديلها، أثناء التشغيل أو الترجمة. يشيع هذا في لغات برمجة الآلات الافتراضية عالية المستوى مثل Smalltalk ، ويقلّ في لغات البرمجة منخفضة المستوى مثل C. اللغات والمنصات التي تدعم الانعكاس:

اللغات القائمة على القواعد

تُنشئ اللغات القائمة على القواعد قواعد عند تفعيلها بشروط في مجموعة بيانات. ومن بين جميع التفعيلات الممكنة، يتم اختيار مجموعة معينة، وتُنفَّذ العبارات التابعة لتلك القواعد. تشمل اللغات القائمة على القواعد ما يلي:

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

اللغات القائمة على المكدس

اللغات القائمة على المكدس هي نوع من لغات البيانات المهيكلة التي تعتمد على بنية بيانات المكدس .

اللغات المتزامنة

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

أمثلة:

Shading languages

A shading language is a graphics programming language adapted to programming shader effects. Such language forms usually consist of special data types, like "color" and "normal". Due to the variety of target markets for 3D computer graphics.

Real-time rendering

They provide both higher hardware abstraction and a more flexible programming model than previous paradigms which hardcoded transformation and shading equations. This gives the programmer greater control over the rendering process and delivers richer content at lower overhead.

Offline rendering

Shading languages used in offline rendering produce maximum image quality. Processing such shaders is time-consuming. The computational power required can be expensive because of their ability to produce photorealistic results.

Syntax-handling languages

These languages assist with generating lexical analyzers and parsers for context-free grammars.

System languages

A system programming language is for low-level tasks like memory management or task management; it usually refers to a language used for systems programming; such languages are designed for writing system software, which usually requires different development approaches relative to application software.

System software is computer software designed to operate and control computer hardware, and provide a platform to run application software. System software includes software categories such as operating systems, utility software, device drivers, compilers, and linkers. Examples of system languages include:

LanguageOriginatorFirst appearedInfluenced byUsed for
ESPOLBurroughs Corporation1961ALGOL 60MCP
PL/IIBM, SHARE1964ALGOL 60, FORTRAN, some COBOLMultics
PL360Niklaus Wirth1968ALGOL 60ALGOL W
CDennis Ritchie1969BCPLMost operating system kernels, including Windows NT and most Unix-like systems
PL/SIBM196xPL/IOS/360
BLISSCarnegie Mellon University1970ALGOL-PL/I[47]VMS (portions)
PL/8IBM197xPL/IAIX
PL/MP and PL/MIIBM197xPL/ICPF, OS/400
PL-6Honeywell, Inc.197xPL/ICP-6
SYMPLCDC197xJOVIALNOS subsystems, most compilers, FSE editor
C++Bjarne Stroustrup1979C, SimulaSee C++ Applications[48]
AdaJean Ichbiah, S. Tucker Taft1983ALGOL 68, Pascal, C++, Java, EiffelEmbedded systems, OS kernels, compilers, games, simulations, CubeSat, air traffic control, and avionics
DDigital Mars2001C++Multiple domains[49]
NimAndreas Rumpf2008Ada, Modula-3, Lisp, C++, Object Pascal, Python, OberonOS kernels, compilers, games
RustMozilla Research[50]2010C++, Haskell, Erlang, RubyServo layout engine, RedoxOS
SwiftApple Inc.2014C, Objective-C, RustmacOS, iOS app development[h]
ZigAndrew Kelley2016C, C++, LLVM IR, Go, Rust, JavaScriptAs a replacement for C
V (Vlang)Alexander Medvednikov2019C, Go, Oberon-2, Rust, Swift, KotlinVinix OS, OS kernels, compilers, games

Transformation languages

Transformation languages serve the purpose of transforming (translating) source code specified in a certain formal language into a defined destination format code. It is most commonly used in intermediate components of more complex super-systems in order to adopt internal results for input into a succeeding processing routine.

Visual languages

Visual programming languages let users specify programs in a two-(or more)-dimensional way, instead of as one-dimensional text strings, via graphic layouts of various types. Some dataflow programming languages are also visual languages.

Wirth languages

Computer scientist Niklaus Wirth designed and implemented several influential languages.

XML-based languages

These are languages based on or that operate on XML.

See also

Notes

  1. Some Ada implementations include a garbage collector,[17] though the language specification does not require its inclusion.
  2. Developers initially had to manually reclaim memory using the save and restore operators. PostScript Level 2 introduced a garbage collector, but its usage is optional.[28]
  3. On Apple platforms, these functions are imported from the C standard library (which is imported from Foundation, AppKit or UIKit); on Linux, the developer needs to import Glibc, and ucrt on Windows.
  4. The objects of SQL are collections of database records, called tables. A full programming language can specify algorithms, irrespective of runtime. Thus an algorithm can be considered to generate usable results. In contrast, SQL can only select records that are limited to the current collection, the data at hand in the system, rather than produce a statement of the correctness of the result.
  5. A notable exception would be the Soviet/Russian 1801 series CPU, which originally used their own domestic ISA, but were later redesigned to be PDP-11 compatible as a policy decision.
  6. 12Submodels are not listed, only base models.
  7. The concept of object with the traditional single-dispatch OO semantics is not present in Julia, instead with the more general multiple dispatch on different types at runtime.
  8. Swift uses automatic reference counting.

References

  1. "Operators". Retrieved 2024-05-13.
  2. "wrap".
  3. ""Aspects in Raku"".
  4. Documentation » The Python Standard Library » Concurrent Execution
  5. "Channels and other mechanisms".
  6. "ProblemSolver".
  7. Bright, Walter (2014-11-01). "D Programming Language, Contract Programming". Digital Mars. Retrieved 2014-11-10.
  8. Hodges, Nick. "Write Cleaner, Higher Quality Code with Class Contracts in Delphi Prism". Embarcadero Technologies. Archived from the original on 26 April 2021. Retrieved 20 January 2016.
  9. Findler, Felleisen Contracts for Higher-Order Functions
  10. "Scala Standard Library Docs - Assertions". EPFL. Retrieved 2019-05-24.
  11. Strong typing as another "contract enforcing" in Scala, see discussion at scala-lang.org/.
  12. 12"Indentation based syntax · rsdn/nemerle Wiki". GitHub. Retrieved 2022-03-18.
  13. "Solidity: Solidity 0.8.11 documentation".
  14. "Iterator".
  15. 12"std::pointer_safety - cppreference.com". en.cppreference.com. Retrieved 2024-12-09.
  16. JF Bastien; Alisdair Meredith (2021-04-16). "Removing Garbage Collection Support".
  17. "Conservative Garbage Collection for GNAT". Florian Weimer's Home Page. Retrieved 2025-03-12.
  18. "Memory Management · BlitzMax". Retrieved 2023-07-14.
  19. "Pointers · BlitzMax". Retrieved 2023-07-14.
  20. "BRL.Blitz · BlitzMax". Retrieved 2023-07-14.
  21. JF Bastien; Alisdair Meredith (2021-04-16). "Removing Garbage Collection Support".
  22. "Using Pointers in an ILE COBOL Program - IBM Documentation". IBM. June 2012. Retrieved 2023-07-14.
  23. "HEAP - IBM Documentation". IBM. Retrieved 2023-07-14.
  24. "SOM-based OO COBOL language elements that are changed - IBM Documentation". IBM. Retrieved 2023-07-14.
  25. "Garbage Collection". D Programming Language. Retrieved 2022-03-18.
  26. "Nim's Memory Management". Retrieved 2022-03-18.
  27. "About Memory Management". Apple Developer. Retrieved 2025-03-12.
  28. Adobe (February 1999). PostScript Language Reference, third edition(PDF). Addison-Wesley Publishing Company. pp. 56–65.
  29. "V Documentation". Retrieved 2025-03-12.
  30. "Projects/Vala/ReferenceHandling - GNOME Wiki!". Archived from the original on 2024-01-21. Retrieved 2022-03-21.
  31. "Memory Allocation — Cython 3.0.0.dev0 documentation". Retrieved 2023-07-14.
  32. "Native code interoperability – Scala Native 0.4.14 documentation". Retrieved 2023-07-05.
  33. "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org.
  34. "Smart Pointers - The Rust Programming Language". doc.rust-lang.org.
  35. Jon Bentley (AT&T) August 1986 CACM29 (8) "Little Languages", pp 711-721 from his Programming Pearls column
  36. "Meta-programming: What, why and how". 2011-12-14.
  37. "Procedural Macros for Generating Code from Attributes". doc.rust-lang.org.
  38. ECMAScript® 2015 Language Specification, 15.2 Modules
  39. "class Module - Documentation for Ruby 3.5".
  40. "Classes and Roles".
  41. "Meta-object protocol (MOP)".
  42. The Rust Team (25 May 2026). "Module any". docs.rust-lang.org. The Rust Team.
  43. فريق Rust (25 مايو 2026). "حقل الوحدة" . docs.rust-lang.org . فريق Rust.
  44. "JBang" . jbang.dev . تم الاطلاع عليه بتاريخ 11 سبتمبر 2025 .
  45. سكابيا، ماركو. "ما هو AGAL؟" . اتصال مطوري أدوبي . أدوبي . تم الاسترجاع في 8 مايو 2018 .
  46. "القواعد" .
  47. وولف، دبليو إيه؛ راسل، دي بي؛ هابرمان، إيه إن (ديسمبر 1971). "بليس: لغة لبرمجة الأنظمة". اتصالات رابطة مكائن ​​الحوسبة . 14 (12): 780-790 . CiteSeerX 10.1.1.691.9765 . doi : 10.1145/362919.362936 . S2CID 9564255 .  
  48. "تطبيقات C++" .
  49. "المنظمات التي تستخدم لغة البرمجة D" . لغة البرمجة D.
  50. "أبحاث موزيلا" . 1 يناير 2014.