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

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

إن المجموعات متداخلة؛ وليست متبادلة الحصر. ويمكن إدراج لغة في مجموعات متعددة.

لغات البرمجة الموجهة للوكيل

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

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

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

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

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

لغات التجميع

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

لغات التأليف

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

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

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

اللغات المجمعة

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

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

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

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

توفر لغات تمرير الرسائل بنيات لغوية للتزامن . النموذج السائد للتزامن في اللغات السائدة مثل Java هو التزامن في الذاكرة المشتركة . كانت اللغات المتزامنة التي تستخدم تمرير الرسائل مستوحاة بشكل عام من حسابات العمليات مثل عمليات الاتصال المتسلسلة (CSP) أو حساب π .

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

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

لغات الأقواس المجعدة

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

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

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

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

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

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

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

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

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

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

في الكود المصدر

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

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

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

جانب الخادم

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

جانب العميل

في كود الكائن

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

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

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

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

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

لغات التمديد

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

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

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

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

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

نقي

ملوث

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

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

HDLs لتصميم الدوائر التناظرية

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

HDLs لتصميم الدوائر الرقمية

اللغات الأمرية

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

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

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

اللغات المفسرة

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

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

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

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

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

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

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

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

  • لا يلزم تنفيذات Ada بتقديم جمع القمامة، ولكن دلالات اللغة تدعم ذلك، والعديد من التنفيذات تتضمنه.
  • عادةً ما يتم حساب Blitz BASIC (المعروف أيضًا باسم BlitzMax) من خلال المراجع، [12] كما يدعم أيضًا جامع القمامة. ومع ذلك، فإنه يأتي أيضًا مع أدوات مساعدة اختيارية لاستخدام المؤشرات [13] وتخصيص الذاكرة وتحريرها بشكل مباشر. [14]
  • يدعم COBOL المؤشرات [15] وتخصيص الكومة [16] اعتبارًا من COBOL 2002، إلى جانب جامع القمامة. [17]
  • يوفر Cython إدارة ذاكرة يدوية اختيارية من خلال السماح للمستخدم باستيراد mallocو reallocو freeمن C، والتي يمكنهم بعد ذلك استخدامها في كود Python. [18]
  • يوفر D للمبرمجين التحكم الكامل في جامع القمامة الخاص بهم، بما في ذلك القدرة على تعطيله تمامًا. [19]
  • عادةً ما يتم جمع البيانات غير المرغوب فيها أو حسابها كمرجع في Nim بشكل افتراضي، اعتمادًا على تكوينه، ولكن قد يستخدم المبرمج المفتاح --mm:noneلإلغاء تخصيص الذاكرة يدويًا. [20]
  • يدعم Objective-C و Objective-C++ العد الاختياري للمراجع وجمع القمامة كبدائل لإدارة الذاكرة اليدوية (ألغت Apple جامع القمامة).
  • كان PostScript يتطلب في الأصل من المطورين استعادة الذاكرة يدويًا باستخدام مشغلي saveand restore. قدم PostScript Level 2 جامع القمامة، لكن استخدامه اختياري. [21]
  • يدعم Rust العد المرجعي الاختياري، ولكن إدارة الذاكرة اليدوية هي المفضلة.
  • تدير Scala الذاكرة بشكل طبيعي تلقائيًا في أهداف JVM وJavaScript الخاصة بها. ومع ذلك ، يدعم مُجمِّع Scala Native المستند إلى LLVM استخدام المؤشرات، بالإضافة إلى تخصيص الكومة على غرار C (على سبيل المثال malloc،، ) وتخصيص المكدس ( ). [22]reallocfreestackalloc
  • يستخدم Swift عادةً عد المراجع، ولكنه يسمح أيضًا للمستخدم بإدارة الذاكرة يدويًا باستخدام mallocو free. على منصات Apple، يتم استيراد هذه الوظائف من مكتبة C القياسية (التي يتم استيرادها من Foundationأو AppKitأو UIKit)؛ على Linux، يحتاج المطور إلى استيراد Glibcو ucrtعلى Windows.
  • يستخدم V (Vlang) GC افتراضيًا، لراحة المستخدم، ويمكن إيقاف تشغيله (-gc none). ويتمتع المستخدمون بحرية إدارة الذاكرة يدويًا. ويمكنهم أيضًا استخدام التحرير التلقائي (-autofree) أو تخصيص الساحة (-prealloc).
  • يستخدم Vala العد المرجعي بشكل افتراضي، ولكن المستخدم حر في إدارة الذاكرة يدويًا إذا رغب في ذلك. [23]

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

اللغات ذات العد التلقائي للمراجع (ARC)

اللغات القائمة على القوائم – LISPs

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

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

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

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

اللغات المبنية على المنطق

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

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

لغات الآلة

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

لغات الماكرو

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

إرسال واحد

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

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

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

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

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

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

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

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

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

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

تقوم اللغات القائمة على القواعد بإنشاء قواعد عند تنشيطها بواسطة شروط في مجموعة من البيانات. من بين جميع عمليات التنشيط الممكنة، يتم تحديد مجموعة معينة ويتم تنفيذ العبارات التي تنتمي إلى تلك القواعد. تشمل اللغات القائمة على القواعد ما يلي: [ بحاجة لمصدر ]

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

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

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

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

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

أمثلة:

لغات التظليل

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

العرض في الوقت الحقيقي

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

العرض دون اتصال بالإنترنت

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

لغات التعامل مع بناء الجملة

تساعد هذه اللغات في إنشاء محللات ومعاجم لقواعد اللغة الخالية من السياق .

لغات النظام

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

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

Language Originator First appeared Influenced by Used for
ESPOL Burroughs Corporation 1961 ALGOL 60 MCP
PL/I IBM, SHARE 1964 ALGOL 60, FORTRAN, some COBOL Multics
PL360 Niklaus Wirth 1968 ALGOL 60 ALGOL W
C Dennis Ritchie 1969 BCPL Most operating system kernels, including Windows NT and most Unix-like systems
PL/S IBM 196x PL/I OS/360
BLISS Carnegie Mellon University 1970 ALGOL-PL/I[33] VMS (portions)
PL/8 IBM 197x PL/I AIX
PL/MP and PL/MI IBM 197x PL/I CPF, OS/400
PL-6 Honeywell, Inc. 197x PL/I CP-6
SYMPL CDC 197x JOVIAL NOS subsystems, most compilers, FSE editor
C++ Bjarne Stroustrup 1979 C, Simula See C++ Applications[34]
Ada Jean Ichbiah, S. Tucker Taft 1983 ALGOL 68, Pascal, C++, Java, Eiffel Embedded systems, OS kernels, compilers, games, simulations, CubeSat, air traffic control, and avionics
D Digital Mars 2001 C++ Multiple domains[35]
Nim Andreas Rumpf 2008 Ada, Modula-3, Lisp, C++, Object Pascal, Python, Oberon OS kernels, compilers, games
Rust Mozilla Research[36] 2010 C++, Haskell, Erlang, Ruby Servo layout engine, Redox OS
Swift Apple Inc. 2014 C, Objective-C, Rust macOS, iOS app development[e]
Zig Andrew Kelley 2016 C, C++, LLVM IR, Go, Rust, JavaScript As a replacement for C
V (Vlang) Alexander Medvednikov 2019 C, Go, Oberon-2, Rust, Swift, Kotlin Vinix 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. ^ 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.
  2. ^ 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.
  3. ^ a b Submodels are not listed, only base models.
  4. ^ 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.
  5. ^ Swift uses automatic reference counting.

References

  1. ^ "Operators". Retrieved 2024-05-13.
  2. ^ "wrap".
  3. ^ ""Aspects in Raku"".
  4. ^ "Christopher Diggins: What is a concatenative language". Drdobbs.com. 2008-12-31. Retrieved 2013-07-01.
  5. ^ "Feed operator".
  6. ^ Documentation » The Python Standard Library » Concurrent Execution
  7. ^ "Channels and other mechanisms".
  8. ^ "ProblemSolver".
  9. ^ a b "Indentation based syntax · rsdn/nemerle Wiki". GitHub. Retrieved 2022-03-18.
  10. ^ "Solidity: Solidity 0.8.11 documentation".
  11. ^ "Iterator".
  12. ^ "Memory Management · BlitzMax". Retrieved 2023-07-14.
  13. ^ "Pointers · BlitzMax". Retrieved 2023-07-14.
  14. ^ "BRL.Blitz · BlitzMax". Retrieved 2023-07-14.
  15. ^ "Using Pointers in an ILE COBOL Program - IBM Documentation". IBM. Retrieved 2023-07-14.
  16. ^ "HEAP - IBM Documentation". IBM. Retrieved 2023-07-14.
  17. ^ "SOM-based OO COBOL language elements that are changed - IBM Documentation". IBM. Retrieved 2023-07-14.
  18. ^ "Memory Allocation — Cython 3.0.0.dev0 documentation". Retrieved 2023-07-14.
  19. ^ "Garbage Collection". D Programming Language. Retrieved 2022-03-18.
  20. ^ "Nim's Memory Management". Retrieved 2022-03-18.
  21. ^ Adobe (February 1999). PostScript Language Reference, third edition (PDF). Addison-Wesley Publishing Company. pp. 56–65.
  22. ^ "Native code interoperability – Scala Native 0.4.14 documentation". Retrieved 2023-07-05.
  23. ^ "Projects/Vala/ReferenceHandling - GNOME Wiki!". Archived from the original on 2024-01-21. Retrieved 2022-03-21.
  24. ^ "Understanding Ownership - The Rust Programming Language". doc.rust-lang.org.
  25. ^ "Smart Pointers - The Rust Programming Language". doc.rust-lang.org.
  26. ^ Jon Bentley (AT&T) August 1986 CACM 29 (8) "Little Languages", pp 711-721 from his Programming Pearls column
  27. ^ "Meta-programming: What, why and how". 2011-12-14.
  28. ^ "ماكروات إجرائية لتوليد الكود من السمات". doc.rust-lang.org .
  29. ^ "الفئات والأدوار".
  30. ^ "بروتوكول الكائن الفوقي (MOP)".
  31. ^ سكابيا، ماركو. "ما هو AGAL". Adobe Developer Connection . Adobe . تم الاسترجاع في 8 مايو 2018 .
  32. ^ "القواعد النحوية".
  33. ^ Wulf, WA; Russell, DB; Haberman, AN (December 1971). "BLISS: A Language for Systems Programming". Communications of the ACM . 14 (12): 780–790. CiteSeerX 10.1.1.691.9765 . doi :10.1145/362919.362936. S2CID  9564255. 
  34. ^ "تطبيقات C++".
  35. ^ "المنظمات التي تستخدم لغة البرمجة D". لغة البرمجة D.
  36. ^ "أبحاث موزيلا". 1 يناير 2014.
Retrieved from "https://en.wikipedia.org/w/index.php?title=List_of_programming_languages_by_type&oldid=1246683732#Curly_bracket_languages"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate