لغة برمجة النظام

لغة برمجة النظام هي لغة برمجة تستخدم لبرمجة النظام ؛ مثل هذه اللغات مصممة لكتابة برمجيات النظام ، والتي تتطلب عادةً أساليب تطوير مختلفة عند مقارنتها ببرمجيات التطبيق. أشار إدسجر ديكسترا إلى هذه اللغات باسم لغات الترتيب العالي الموجهة للآلة ، أو موهول . [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

انظر أيضا

ملحوظات

مراجع

  1. ^ ab van der Poel, WL; Maarssen, LA, eds. (27–31 August 1973). لغات المستوى الأعلى الموجهة للآلة . مؤتمر عمل الاتحاد الدولي لمعالجة المعلومات حول لغات المستوى الأعلى الموجهة للآلة (MOHL). تروندهايم، النرويج: الاتحاد الدولي لمعالجة المعلومات.نُشرت الإجراءات في عام 1974.
  2. ^ ab Sammet, Jean (أكتوبر 1971). "دراسة استقصائية موجزة للغات المستخدمة في تنفيذ الأنظمة". إشعارات ACM SIGPLAN . 6 (9): 1–19. doi : 10.1145/942596.807055 .
  3. ^ Wirth, Niklaus (1968). "PL360, A Programming Language for the 360 ​​Computers". مجلة جمعية آلات الحوسبة . 15 (1): 37–74. doi :10.1145/321439.321442.
  4. ^ 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.
  5. ^ 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. 
  6. ^ "دراسة حالة، طائرة يوروفايتر تايفون من إنتاج شركة بي إيه إي سيستمز" (PDF) .
  7. ^ "ما هي لغات البرمجة المستخدمة للمعدات على متن الطائرات؟".
  8. ^ "TGVweb - نظام إشارات TGV".
  9. ^ "مدرعة".
  10. ^ "M2OS. نظام تشغيل في الوقت الحقيقي مع دعم المهام البسيطة للميكروكنترولر الصغيرة".
  11. ^ "Jgrivera67/HiRTOS". GitHub .
  12. ^ "Modular Inc." www.modular.com . تم الاسترجاع في 2024-03-25 .
  13. ^ "مشاريع بحثية لموزيلا". مؤرشف من الأصل في 2014-01-04.
  • كورباتو، فرناندو (1969-05-06). "PL/I كأداة لبرمجة النظام". Datamation : 68–76. مؤرشف من الأصل في 2012-09-21 . تم الاسترجاع في 2012-01-23 .
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=لغة_برمجة_النظام&oldid=1227005019"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate