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