المكتبة القياسية
This article needs additional citations for verification. (May 2019) |
في برمجة الكمبيوتر ، المكتبة القياسية هي المكتبة المتاحة عبر تطبيقات لغة البرمجة . غالبًا ما يتم تحديد المكتبة القياسية من خلال مواصفات لغة البرمجة المرتبطة بها ، ومع ذلك، يتم تحديد بعضها جزئيًا أو كليًا من خلال ممارسات غير رسمية لمجتمع لغوي.
تعرف بعض اللغات جزءًا أساسيًا من المكتبة القياسية التي يجب أن تكون متاحة في جميع التنفيذات مع السماح بتنفيذ أجزاء أخرى بشكل اختياري.
كما هو محدد في جوانب اللغة الأساسية، فإن الخط الفاصل بين اللغة الأساسية ومكتبتها القياسية دقيق نسبيًا. قد يخلط المبرمج بين الجانبين حتى لو قام مصممو اللغة عمدًا بفصلهما.
إن الخط الفاصل بين اللغة الأساسية ومكتبتها القياسية يصبح أكثر ضبابية في بعض اللغات من خلال تعريف بنيات اللغة الأساسية من حيث مكتبتها القياسية. على سبيل المثال، تحدد لغة Java حرفًا نصيًا كمثال لفئة java.lang.String. تحدد لغة Smalltalk تعبيرًا عن وظيفة مجهولة ("كتلة") كمثال لفئة BlockContext الخاصة بمكتبتها. لا تحدد لغة Scheme الأجزاء التي يجب تنفيذها كلغة أساسية مقابل المكتبة القياسية.
محتويات
اعتمادًا على البنيات المتوفرة في اللغة الأساسية، قد تتضمن المكتبة القياسية ما يلي:
- البرامج الفرعية
- تعريفات الماكرو
- المتغيرات العالمية
- تعريفات الفئة
- القوالب
تتضمن الوظائف المقدمة بشكل شائع ما يلي:
- الخوارزميات ؛ مثل خوارزميات الفرز
- هياكل البيانات ؛ مثل القائمة والشجرة وجدول التجزئة
- التفاعل مع الأنظمة الخارجية؛ الإدخال/الإخراج
- التفاعل مع نظام التشغيل المضيف
الفلسفات
تختلف فلسفات تصميم المكتبة القياسية على نطاق واسع. على سبيل المثال، كتب Bjarne Stroustrup ، مصمم لغة C++ :
ما الذي ينبغي أن يكون في مكتبة C++ القياسية؟ أحد الأمور المثالية هو أن يتمكن المبرمج من العثور على كل فئة أو وظيفة أو قالب مثير للاهتمام وهام وعام بشكل معقول، وما إلى ذلك، في مكتبة. ومع ذلك، فإن السؤال هنا ليس "ما الذي ينبغي أن يكون في بعض المكتبات؟" بل "ما الذي ينبغي أن يكون في المكتبة القياسية ؟". والإجابة "كل شيء!" هي تقريب أولي معقول لإجابة السؤال الأول ولكن ليس السؤال الثاني. المكتبة القياسية هي شيء يجب على كل منفذ توفيره حتى يتمكن كل مبرمج من الاعتماد عليها. [1]
يشير هذا إلى مكتبة قياسية صغيرة نسبيًا، تحتوي فقط على التراكيب التي قد يحتاجها "كل مبرمج" بشكل معقول عند بناء مجموعة كبيرة من البرامج. هذه هي الفلسفة المستخدمة في المكتبات القياسية C و C++ .
على النقيض من ذلك، تبنى Guido van Rossum ، مصمم Python ، رؤية أكثر شمولاً للمكتبة القياسية. يحاول Python تقديم لغة سهلة الترميز وموجهة للكائنات وعالية المستوى. [ بحاجة لمصدر ] في البرنامج التعليمي لـ Python، يكتب:
تتمتع لغة بايثون بفلسفة "البطاريات المضمنة". ويمكن رؤية ذلك بشكل أفضل من خلال القدرات المتطورة والقوية لحزمها الأكبر. [2]
يواصل فان روسوم سرد المكتبات الخاصة بمعالجة XML و XML-RPC ورسائل البريد الإلكتروني والتوطين، وهي المرافق التي تغفلها مكتبة C++ القياسية. غالبًا ما توجد هذه الفلسفة الأخرى في لغات البرمجة النصية (كما في Python أو Ruby ) أو اللغات التي تستخدم آلة افتراضية ، مثل Java أو لغات .NET Framework . في C++، لا تعد هذه المرافق جزءًا من المكتبة القياسية، ولكنها بدلاً من ذلك مضمنة في مكتبات أخرى، مثل Boost .
أمثلة
This article is in list format but may read better as prose. (November 2016) |
- مكتبة سي القياسية
- مكتبة C++ القياسية
- مكتبة فئة .NET Framework (FCL)
- مكتبة فئات جافا (JCL)
- مكتبة معايير العوامل
- مكتبة روبي القياسية
- مكتبة بايثون القياسية
- مكتبات معايير البنية الأساسية للغة المشتركة (CLI)
مراجع
- ^ Bjarne Stroustrup. لغة البرمجة C++ . الطبعة الثالثة. Addison-Wesley، 1997
- ^ جويدو فان روسوم. [1].
