لغة برمجة النظام
تحتاج هذه المقالة إلى مصادر إضافية للتحقق . ( أبريل 2022 ) |
لغة برمجة النظام هي لغة برمجة تستخدم لبرمجة النظام ؛ مثل هذه اللغات مصممة لكتابة برمجيات النظام ، والتي تتطلب عادةً أساليب تطوير مختلفة عند مقارنتها ببرمجيات التطبيق. أشار إدسجر ديكسترا إلى هذه اللغات باسم لغات الترتيب العالي الموجهة للآلة ، أو موهول . [1]
تميل لغات البرمجة ذات الأغراض العامة إلى التركيز على الميزات العامة للسماح للبرامج المكتوبة باللغة باستخدام نفس الكود على منصات مختلفة. ومن أمثلة هذه اللغات ALGOL و Pascal . وعادةً ما تأتي هذه الجودة العامة على حساب رفض الوصول المباشر إلى العمليات الداخلية للجهاز، وغالبًا ما يكون لهذا تأثيرات سلبية على الأداء.
على النقيض من ذلك، تم تصميم لغات النظام ليس للتوافق، ولكن للأداء وسهولة الوصول إلى الأجهزة الأساسية مع الاستمرار في توفير مفاهيم برمجة عالية المستوى مثل البرمجة المنظمة . تشمل الأمثلة ESPOL و SPL ، وكلاهما مشابه لـ ALGOL في بناء الجملة ولكنهما مضبوطان على منصاتهما الخاصة. البعض الآخر متعدد المنصات ولكن مصمم للعمل بالقرب من الأجهزة، مثل BLISS و JOVIAL و BCPL .
تتداخل بعض اللغات بين مجالات النظام والتطبيق، مما يسد الفجوة بين هذه الاستخدامات. المثال الأساسي هو لغة C ، التي تُستخدم على نطاق واسع لكل من برمجة النظام والتطبيق. كما تفعل بعض اللغات الحديثة هذا أيضًا مثل Rust و Swift .
سمات
على النقيض من لغات التطبيق، توفر لغات برمجة النظام عادةً وصولاً أكثر مباشرة إلى الأجهزة المادية للجهاز: كانت لغة برمجة النظام النموذجية بهذا المعنى هي BCPL . غالبًا ما تفتقر لغات برمجة النظام إلى مرافق الإدخال/الإخراج (I/O) المضمنة لأن مشروع برنامج النظام عادةً ما يطور آليات الإدخال/الإخراج الخاصة به أو يبني على مرافق إدخال/إخراج أساسية للشاشة أو إدارة الشاشة. أصبح التمييز بين اللغات المستخدمة في برمجة النظام وبرمجة التطبيق غير واضح بمرور الوقت مع الشعبية الواسعة النطاق لـ PL/I و C و Pascal .
تاريخ
كانت أقدم برامج النظام مكتوبة بلغة التجميع في المقام الأول لأنه لم يكن هناك بديل، ولكن أيضًا لأسباب تشمل كفاءة الكود الكائني ووقت التجميع وسهولة تصحيح الأخطاء. تم استخدام لغات التطبيق مثل FORTRAN لبرمجة النظام، على الرغم من أنها كانت لا تزال تتطلب كتابة بعض الروتينات بلغة التجميع. [2]
اللغات متوسطة المستوى
"تحتوي اللغات متوسطة المستوى على الكثير من قواعد اللغة والمرافق الخاصة بلغة المستوى الأعلى، ولكنها توفر أيضًا وصولاً مباشرًا في اللغة (بالإضافة إلى توفير لغة التجميع) إلى ميزات الآلة." [2] كانت أقدم هذه اللغات هي ESPOL على أجهزة الكمبيوتر المركزية من Burroughs في حوالي عام 1960، تليها لغة PL360 الخاصة بـ Niklaus Wirth (التي كُتبت لأول مرة على نظام Burroughs كمترجم متقاطع )، والتي كان لها قواعد اللغة العامة لـ ALGOL 60 ولكن عباراتها تلاعبت مباشرة بسجلات وحدة المعالجة المركزية والذاكرة. تشمل اللغات الأخرى في هذه الفئة MOL-360 و PL/S .
على سبيل المثال، عبارة PL360 النموذجية هي R9 := R8 and R7 shll 8 or R6، مما يدل على أنه يجب جمع السجلين 8 و7 معًا، وتحويل النتيجة إلى اليسار بمقدار 8 بتات، وجمع نتيجة ذلك مع محتويات السجل 6، ووضع النتيجة النهائية في السجل 9. [3]
اللغات ذات المستوى الأعلى
في حين أن PL360 على المستوى الدلالي للغة التجميع، فإن نوعًا آخر من لغات برمجة النظام يعمل على مستوى دلالي أعلى، ولكنه يحتوي على امتدادات محددة مصممة لجعل اللغة مناسبة لبرمجة النظام. أحد الأمثلة المبكرة لهذا النوع من اللغات هو LRLTRAN، [4] الذي وسع لغة Fortran بميزات للتلاعب بالأحرف والبتات والمؤشرات وجداول القفز الموجهة مباشرة.
بعد ذلك، تم تطوير لغات مثل C، حيث كان الجمع بين الميزات كافياً لكتابة برامج النظام، ويمكن تطوير مُجمِّع يولد برامج كائنية فعّالة على أجهزة متواضعة. عادةً ما تحذف مثل هذه اللغة الميزات التي لا يمكن تنفيذها بكفاءة، وتضيف عددًا صغيرًا من الميزات المعتمدة على الآلة والمطلوبة للوصول إلى قدرات أجهزة معينة؛ غالبًا ما يتم استخدام كود التجميع المضمّن ، مثل asmبيان C، لهذا الغرض. على الرغم من تطوير العديد من هذه اللغات، [1] إلا أن C و C++ هما اللغتان اللتان نجتا.
اللغات الرئيسية
| لغة | صاحب الفكرة | تاريخ الميلاد | متأثر بـ | يستخدم ل | |
|---|---|---|---|---|---|
| جوفيال | شركة تطوير النظام | 1960 | ألغول 58 | العديد من الأنظمة، معظمها عسكرية | |
| اللغة الاسبانية | شركة بوروز | 1961 | ألغول 60 | ام سي بي | |
| ب ل/ي | اي بي ام ، شارك | 1964 | ALGOL، FORTRAN، بعض COBOL | متعددات | |
| ب/س | آي بي إم | ستينيات القرن العشرين | ب ل/ي | OS/360 والخلفاء | |
| PL360 | نيكلاوس ويرث | 1968 | ألغول 60 | ألغول دبليو | |
| باسكال | نيكلاوس ويرث | 1970 | ألغول دبليو | Apollo Computer Aegis، Apple MacApp ، UCSD p-System | |
| النعيم | جامعة كارنيجي ميلون | 1970 | ألغول-PL/I [5] | VMS (أجزاء) | |
| لغة تطوير الأنظمة (LSD) | ر. دانيال بيرجيرون وآخرون (جامعة براون) | 1971 | ب ل/ي | ||
| ج | دينيس ريتشي | 1972 | BCPL ، ب | معظم أنوية أنظمة التشغيل ، بما في ذلك أنظمة التشغيل الشبيهة بنظام يونكس | |
| لغة برمجة النظام (SPL) | هيوليت باكارد | 1972 | ألغول 60 ، إسباني | برنامج نظام HP 3000 ، بما في ذلك MPE | |
| نيوب | بوروز | سبعينيات القرن العشرين | اللغة الإنجليزية: ESPOL، ALGOL | ام سي بي | |
| PL.8 | آي بي إم | سبعينيات القرن العشرين | ب ل/ي | تطوير المترجم، AIX (الإصداران 1 و2 فقط)، برامج IBM الرئيسية الثابتة | |
| PL-6 | شركة هونيويل | سبعينيات القرن العشرين | ب ل/ي | سي بي-6 | |
| الرمز | مركز السيطرة على الأمراض والوقاية منها | سبعينيات القرن العشرين | جوفيال | أنظمة فرعية NOS ، معظم المترجمين، محرر FSE | |
| سي++ | بيارني ستروستروب | 1979 | ج ، سيمولا | تطبيقات واجهة المستخدم الرسومية ( Qt ، Windows، وما إلى ذلك)، والألعاب ( Unreal Engine ) | |
| س3 | اي سي ال | ثمانينيات القرن العشرين | ألغول 68 | ICL VME | |
| آدا | جين إشبياه ، س. تاكر تافت | 1983 | ALGOL 68 ، باسكال ، C++ ، إيفل | العسكرية، [6] الفضاء الجوي [7] النقل الجماعي، [8] الحوسبة عالية النزاهة، ونوى نظام التشغيل [9] [10] [11] | |
| د | المريخ الرقمي | 2001 | سي++ | ||
| نيم | أندرياس رومف | 2008 | بايثون ، آدا ، ليسب ، أوبيرون ، سي++ ، مودولا-3 ، أوبجكت باسكال | ||
| يذهب | جوجل | 2009 | أوبيرون ، سي ، باسكال | كوبرنيتس ، دوكر | |
| موجو | شركة موديولار المحدودة [12] | 2023 | سي ، سي++ ، بايثون ، رست ، سويفت ، زيج | ||
| الصدأ | بحث موزيلا [13] | 2010 | C++ ، هاسكل ، إرلانج ، روبي | سيرفو ، نظام تشغيل ريدوكس ، نواة لينكس | |
| سويفت | شركة أبل | 2014 | C ، Objective-C ، D ، Rust | تطوير تطبيقات macOS و iOS و watchOS و tvOS [أ] | |
| زيج | أندرو كيلي | 2016 | C ، C++ ، LLVM IR ، Go ، Rust |
انظر أيضا
ملحوظات
- ^ يستخدم Swift العد المرجعي التلقائي
مراجع
- ^ ab van der Poel, WL; Maarssen, LA, eds. (27–31 August 1973). لغات المستوى الأعلى الموجهة للآلة . مؤتمر عمل الاتحاد الدولي لمعالجة المعلومات حول لغات المستوى الأعلى الموجهة للآلة (MOHL). تروندهايم، النرويج: الاتحاد الدولي لمعالجة المعلومات.نُشرت الإجراءات في عام 1974.
- ^ ab Sammet, Jean (أكتوبر 1971). "دراسة استقصائية موجزة للغات المستخدمة في تنفيذ الأنظمة". إشعارات ACM SIGPLAN . 6 (9): 1–19. doi : 10.1145/942596.807055 .
- ^ Wirth, Niklaus (1968). "PL360, A Programming Language for the 360 Computers". مجلة جمعية آلات الحوسبة . 15 (1): 37–74. doi :10.1145/321439.321442.
- ^ Mendicino, Sam F.; Hughes, Robert A.; Martin, Jeanne T.; McMahon, Frank H.; Ranelletti, John E.; Zwakenberg, Richard G. (1968). "The LRLTRAN Compiler". Communications of the ACM . 11 (11): 747–755. doi :10.1145/364139.364154.
- ^ 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.
- ^ "دراسة حالة، طائرة يوروفايتر تايفون من إنتاج شركة بي إيه إي سيستمز" (PDF) .
- ^ "ما هي لغات البرمجة المستخدمة للمعدات على متن الطائرات؟".
- ^ "TGVweb - نظام إشارات TGV".
- ^ "مدرعة".
- ^ "M2OS. نظام تشغيل في الوقت الحقيقي مع دعم المهام البسيطة للميكروكنترولر الصغيرة".
- ^ "Jgrivera67/HiRTOS". GitHub .
- ^ "Modular Inc." www.modular.com . تم الاسترجاع في 2024-03-25 .
- ^ "مشاريع بحثية لموزيلا". مؤرشف من الأصل في 2014-01-04.
روابط خارجية
- كورباتو، فرناندو (1969-05-06). "PL/I كأداة لبرمجة النظام". Datamation : 68–76. مؤرشف من الأصل في 2012-09-21 . تم الاسترجاع في 2012-01-23 .
