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

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

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

على النقيض من ذلك، صُممت لغات الأنظمة ليس لتحقيق التوافق، بل لتحقيق الأداء الأمثل وسهولة الوصول إلى مكونات الحاسوب الأساسية ، مع توفير مفاهيم البرمجة عالية المستوى مثل البرمجة الهيكلية . ومن الأمثلة على ذلك لغة برمجة الأنظمة التنفيذية الموجهة نحو حل المشكلات (ESPOL) ولغة برمجة الأنظمة (SPL)، وكلاهما يشبه لغة ALGOL في تركيبه، ولكنهما مُصممتان خصيصًا لمنصاتهما. وهناك لغات أخرى متعددة المنصات ، ولكنها مصممة للعمل بتناغم مع مكونات الحاسوب، مثل BLISS و JOVIAL و BCPL .

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

سمات

على عكس لغات برمجة التطبيقات، توفر لغات برمجة الأنظمة عادةً وصولاً مباشراً إلى المكونات المادية للجهاز: ومن الأمثلة النموذجية على لغات برمجة الأنظمة في هذا السياق لغة BCPL . غالباً ما تفتقر لغات برمجة الأنظمة إلى إمكانيات الإدخال/الإخراج المدمجة، لأن مشروع برمجيات النظام عادةً ما يطور آليات الإدخال/الإخراج الخاصة به، أو يعتمد على إمكانيات الإدخال/الإخراج الأساسية للشاشة أو إدارة الشاشة. ومع مرور الوقت، ومع الانتشار الواسع للغات PL/I و C و Pascal ، أصبح التمييز بين لغات برمجة الأنظمة ولغات برمجة التطبيقات غير واضح .

تاريخ

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

لغات متوسطة المستوى

تتمتع لغات البرمجة متوسطة المستوى بجزء كبير من بنية وميزات لغات البرمجة عالية المستوى، ولكنها توفر أيضًا وصولًا مباشرًا إلى خصائص الجهاز من خلال اللغة نفسها (وأحيانًا من خلال لغة التجميع). [ 2 ] كانت لغة ESPOL، التي طُبِّقت على حواسيب Burroughs المركزية حوالي عام 1960، أولى هذه اللغات ، تلتها لغة PL360 التي طورها نيكلاوس ويرث (والتي كُتبت في البداية على نظام Burroughs كمترجم متقاطع )، والتي كانت تتمتع بالبنية العامة للغة ALGOL 60، ولكن عباراتها كانت تُعالج سجلات وحدة المعالجة المركزية والذاكرة مباشرةً. ومن اللغات الأخرى في هذه الفئة لغتا MOL-360 و PL/S .

على سبيل المثال، فإن عبارة PL360 النموذجية هي ، مما يعني أنه يجب دمج السجلين 8 و7 معًا باستخدام AND، وإزاحة النتيجة إلى اليسار بمقدار 8 بتات، ثم دمج نتيجة ذلك باستخدام OR مع محتويات السجل 6، ووضع النتيجة النهائية في السجل 9. [ 3 ]R9 := R8 and R7 shll 8 or R6

لغات المستوى الأعلى

بينما تُصنَّف لغة PL360 ضمن المستوى الدلالي للغة التجميع، فإن نوعًا آخر من لغات برمجة الأنظمة يعمل على مستوى دلالي أعلى، ولكنه يتضمن إضافات مُخصصة تجعله مناسبًا لبرمجة الأنظمة. ومن الأمثلة المبكرة على هذا النوع من اللغات لغة LRLTRAN [ 4 التي وسّعت لغة Fortran بإضافة ميزات لمعالجة الأحرف والبتات، والمؤشرات، وجداول القفز ذات العناوين المباشرة.

لاحقًا، طُوِّرت لغات برمجة مثل لغة C، حيث كان الجمع بين خصائصها كافيًا لكتابة برامج النظام، وأمكن تطوير مُصرِّف يُولِّد برامج كائنية فعّالة على أجهزة ذات إمكانيات محدودة. عادةً ما تُهمل هذه اللغات الخصائص التي لا يُمكن تنفيذها بكفاءة، وتُضيف عددًا قليلًا من الخصائص المُعتمدة على الجهاز واللازمة للوصول إلى قدرات أجهزة مُحدَّدة؛ ويُستخدم غالبًا كود التجميع المُضمَّن ، مثل asmعبارة C، لهذا الغرض. على الرغم من تطوير العديد من هذه اللغات، [ 1 ] إلا أن لغتي C و C++ هما اللتان استمرتا.

اللغات الرئيسية

لغةالمنشئتاريخ الميلادمتأثر بـيستخدم لـ
مرحشركة تطوير الأنظمة1960ALGOL 58العديد من الأنظمة، ومعظمها أنظمة عسكرية
إسبولشركة بوروز1961ALGOL 60MCP
PL/Iآي بي إم ، شارك1964ALGOL، FORTRAN، وبعض لغات COBOLMultics ، Stratus VOS . اللهجات المستخدمة في PRIMOS ، IBM CPF ، IBM OS/400 .
PL/Sشركة آي بي إمالستينياتPL/Iنظام التشغيل OS/360 والأنظمة اللاحقة له
إدنبرة إمبجامعة إدنبرة1966ALGOL 60 ، أطلس أوتوكودنظام الوصول المتعدد في إدنبرة
بي سي بي إلمارتن ريتشاردز1967رخصة القيادة التجاريةزيروكس ألتو إكزكيوتيف، ترايبوس
PL360نيكلاوس ويرث1968ALGOL 60ALGOL W
باسكالنيكلاوس ويرث1970ALGOL Wأبولو إيجيس ، ماك آب ، يو سي إس دي بي سيستم ، فاكسلن ، ليزا أو إس ، بيرك أو إس
النعيمجامعة كارنيجي ميلون1970ALGOL, PL/I [ 5 ]أوبن في إم إس (أجزاء)، هايدرا
لغة تطوير الأنظمة (LSD أو LSyD)ر. دانيال بيرجيرون وآخرون ( جامعة براون )1971PL/I
جدينيس ريتشي1972BCPL ، بالعديد من نواة أنظمة التشغيل ، بما في ذلك معظم الأنظمة الشبيهة بنظام يونكس ؛ SQLite
لغة برمجة الأنظمة (SPL)هيوليت-باكارد1972ALGOL 60 ، إسبولبرنامج نظام HP 3000 ، بما في ذلك MPE
PL/Mغاري كيلدال1973PL/I ، XPLCP/M ، ISIS ، iRMX
نيوببوروزسبعينيات القرن العشرينإسبول، ألغولMCP
PL.8شركة آي بي إمسبعينيات القرن العشرينPL/Iتطوير المترجمات، نظام التشغيل AIX (الإصدارين 1 و2 فقط)، البرامج الثابتة للحاسوب المركزي من IBM
PL-6شركة هانيويلسبعينيات القرن العشرينPL/ICP-6
رمزمركز السيطرة على الأمراض والوقاية منهاسبعينيات القرن العشرينمرحأنظمة NOS الفرعية، ومعظم المترجمات، ومحرر FSE
لغة تطبيق المعاملات (TAL)تانديم كمبيوترزسبعينيات القرن العشرينSPL ، C ، باسكالنظام التشغيل NonStop
ميسامركز أبحاث زيروكس بارك1976باسكال ، ALGOL 68طيار ، جلوبال فيو
مودولا-2نيكلاوس ويرث1978باسكال ، ميساMedos-2 ، أجزاء من IBM OS/400 و PRIMOS . تم استخدام متغير Modula-2+ في ARX و Topaz .
لغة سي++بيارن ستروستروب1979ج ، محاكاةBeOS ، وHaiku ، و Serenity OS ، وSymbian . أجزاء من IBM i ، وmacOS ، و Microsoft Windows .
S3ICLثمانينيات القرن العشرينALGOL 68ICL VME
آداجان إشبيا ، إس. تاكر تافت1983ALGOL 68 ، باسكال ، سي++ ، إيفلالتطبيقات العسكرية، [ 6 ] والفضاء، [ 7 ] والنقل الجماعي، والحوسبة عالية الموثوقية، ونوى أنظمة التشغيل، [ 8 ] [ 9 ] [ 10 ] وiMAX 432 و BiiN/OS
أوبروننيكلاوس ويرث1987مودولا-2نظام أوبرون
مودولا-3DEC SRC ، أوليفيتي1988مودولا-2+يلف
دديجيتال مارس2001لغة سي++
نيمأندرياس رومبف2008بايثون ، آدا ، ليسب ، أوبرون ، سي++ ، مودولا-3 ، أوبجكت باسكال
يذهبجوجل2009أوبرون ، سي ، باسكالKubernetes ، Docker
الصدأأبحاث موزيلا [ 11 ]2010سي++ ، هاسكل ، إرلانج ، روبيServo و RedoxOS . أجزاء من نواة لينكس ونظام التشغيل مايكروسوفت ويندوز .
سويفتشركة آبل2014C ، أوبجكتيف سي ، D ، راستتطوير تطبيقات macOS و iOS و watchOS و tvOS [ أ ]
زيجأندرو كيلي2016C ، C++ ، LLVM IR ، Go ، Rustكعكة ، خنفساء النمر، محرك ماخ، [ 12 ] شبحي
موجوشركة Modular Inc. [ 13 ]2023سي ، سي++ ، بايثون ، رست ، سويفت ، زيج

انظر أيضاً

ملحوظات

مراجع

  1. 1 2 فان دير بول، دبليو إل؛ مارسن، إل إيه، محرران. (27-31 أغسطس 1973). لغات البرمجة عالية المستوى الموجهة للآلة . مؤتمر عمل الاتحاد الدولي لمعالجة المعلومات حول لغات البرمجة عالية المستوى الموجهة للآلة (MOHL). تروندهايم، النرويج: الاتحاد الدولي لمعالجة المعلومات.نُشرت هذه الإجراءات عام 1974.
  2. 1 2 ساميت، جان (أكتوبر 1971). "مسح موجز للغات المستخدمة في تنفيذ الأنظمة" . إشعارات ACM SIGPLAN . 6 (9): 1-19 . doi : 10.1145/942596.807055 .
  3. ويرث، نيكلاوس (1968). "PL360، لغة برمجة لأجهزة الكمبيوتر 360". مجلة ACM . 15 (1): 37-74 . doi : 10.1145/321439.321442 .
  4. مينديسينو، سام ف.؛ هيوز، روبرت أ.؛ مارتن، جين ت.؛ ماكماهون، فرانك هـ.؛ رانيليتي، جون إي.؛ زواكينبيرغ، ريتشارد ج. (1968). "مترجم LRLTRAN". اتصالات ACM . 11 (11): 747-755 . doi : 10.1145/364139.364154 .
  5. وولف، دبليو إيه؛ راسل، دي بي؛ هابرمان، إيه إن (ديسمبر 1971). "بليس: لغة لبرمجة الأنظمة". اتصالات رابطة مكائن ​​الحوسبة . 14 (12): 780-790 . CiteSeerX 10.1.1.691.9765 . doi : 10.1145/362919.362936 . 
  6. "دراسة حالة، طائرة يوروفايتر تايفون من شركة بي إيه إي سيستمز" (ملف PDF) .
  7. "ما هي لغات البرمجة المستخدمة في المعدات الموجودة على متن الطائرات؟ "
  8. "المدرع" .
  9. "M2OS. نظام تشغيل في الوقت الحقيقي مع دعم بسيط للمهام لوحدات التحكم الدقيقة الصغيرة" .
  10. "Jgrivera67/HiRTOS" . GitHub .
  11. "مشاريع موزيلا البحثية" . مؤرشف من الأصل بتاريخ 2014-01-04.
  12. "Mach: Zig game engine & graphics toolkit" .
  13. "شركة Modular Inc." www.modular.com . تم الاطلاع عليه بتاريخ 25-03-2024 .
  • كورباتو، فرناندو (6 مايو 1969). "PL/I كأداة لبرمجة الأنظمة" . داتاماشن : 68-76 . مؤرشف من الأصل بتاريخ 21 سبتمبر 2012. تم الاطلاع عليه بتاريخ 23 يناير 2012 .