رسم توضيحي لتطبيق يمكن أن يستخدم مكتبة libvorbisfile.so لتشغيل ملف Ogg Vorbis.
في الحوسبة، **المكتبة** هي مجموعة من البرامج الفرعية تستخدم لتطوير البرمجيات. تحتوي المكتبات كود «مُساعد» وبيانات توفر خدمات للبرامج المستقلة. يسمح هذا بمشاركة الكود والبيانات على شكل وحدات منفصلة. بعض الملفات التنفيذية مكتبات وبرامج مستقلة في الوقت ذاته، لكن ليست كل المكتبات تنفيذية. تضع التنفيذيات والمكتبات مراجع إلى بعضها البعض تسمى روابط في عملية تعرف بالربط ويقوم بها برنامج يسمى الرابط (linker).

أغلب أنظمة التشغيل الحديثة توفر مكتبات تغطي أغلب خدمات النظام. توفر هذه المكتبات للبرامج الخدمات التي تتوقعها من نظام التشغيل.

ظهرت المكتبات حوالي سنة 1950، وأصبح عنصرا رئيسيا في البرمجة.يتم استخدامها لتنفيذ واجهات برمجة، إطارات عمل، برامج مساعدة و لغات برمجة.الوظائف الواردة في المكتبات البرمجية غالبا ما تكون مرتبطة بالعمليات المتكررة في البرمجة : معالجة واجهات المستخدمين، معالجة قاعدة البيانات أو الحسابات الرياضية.

تاريخها
-------

أول مكتبة شيفرة تم إنشاؤها لجهاز الكمبيوتر ESDAC
كان الهدف من المفاهيم البرمجية الأولى المشابهة للمكتبات البرمجية هو فصل تعاريف البيانات عن تنفيذ البرنامج. لفتت لغة غوفيال الانتباه العام إلى مفهوم كومبول (تجمع الاتصالات) في عام 1959، مع أنها تبنت الفكرة من برمجيات ساغ الخاصة بالأنظمة الكبيرة. اتباعًا لمبادئ علوم الحاسب من فصل الاهتمامات وإخفاء البيانات، «كان هدف كوم بول هو إجازة مشاركة بيانات النظام بين البرامج من خلال توفير توصيف مركزي لهذه البيانات».

تضمنت لغة كوبول أيضًا «مؤهلات بدائية تدعم نظام المكتبة البرمجية» في عام 1959، لكن جين ساميت وصفها بأنها كانت في ما مضى «تسهيلات غير كافية للمكتبة».

هناك مساهم رئيسي آخر في مفهوم المكتبة الحديثة كان على شكل برامج فرعية مبتكرة بلغة فورتران. يمكن ترجمة برامج فورتران الفرعية بشكل مستقل عن بعضها، لكن المترجم يفتقر إلى الرابط الذي يربط بينها. كان من المستحيل فحص النوع بين البرامج الفرعية المكتوبة بلغة فورتران قبل إدخال نماذج فورتران-90.

في النهاية، يجب أن يذكر مؤرخو هذا المفهوم تأثير لغة البرمجة سيمولا 67. كانت لغة سيمولا أول لغة برمجة غرضية التوجه وصفوفها مشابهة للمفهوم الحديث المستخدم في لغات جافا وسي++ وسي شارب. كان مفهوم الصف في لغة سيمولا سلفًا لمفهوم الحزمة في لغة أيدا ومفهوم الوحدة في لغة موديولا-2. حتى عندما طُورت لغة سيمولا في بداياتها في عام 1965، كان من الممكن تضمين الصفوف فيها في ملفات المكتبة وإضافتها في وقت الترجمة.

الربط
-----

المكتبات البرمجية مهمة في عملية ربط أو دمج البرنامج التي تُصمم فيها المراجع المعروفة باسم روابط أو رموز لوحدات المكتبة. تُجرى عملية الربط عادةً آليًا عن طريق برنامج رابط أو دامج يبحث في مجموعة من المكتبات ووحدات أخرى مُعطاة في ترتيب معين. لا تُعد إمكانية وجود رابط هدف ما عدة مرات في مجموعة معطاة من المكاتب أنها خطأ عادةً. قد يتم الربط عندما يُنشأ ملف تنفيذي، أو في أي وقت يُستخدم فيه البرنامج في أثناء وقت تنفيذه.

قد تكون المراجع التي يجري تصميمها عناوينَ لقفزات أو استدعاءات روتينية أخرى. قد تكون في البرنامج الرئيسي، أو في وحدةٍ تعتمد على وحدة أخرى. تُصمم هذه المراجع على شكل عناوين ثابتة أو قابلة للنقل (من قاعدة مشتركة) من خلال تخصيص الذاكرة المستخدمة في وقت التنفيذ لأقسام الذاكرة الخاصة بكل وحدة لها مرجع.

قد تستخدم بعض لغات البرمجة الأخرى ميزة تسمى الربط الذكي يكون فيها الرابط مدركًا وجود المترجم أو متكاملًا معه، مثل أن يدرك الرابط كيفية استخدام المراجع الخارجية، وإن وجد ترميز ما في مكتبة لا يُستخدم مطلقًا، على الرغم من وجود مرجعية داخلية له، فقد يُهمل من قبل التطبيق المُترجَم. على سبيل المثال، يمكن لبرنامج ما يستخدم فقط الأعداد الصحيحة في الحساب، أو لا يُجري عمليات حسابية أبدًا، أن يستبعد الصيغ المكتبية للأعداد الحقيقية (ذات الفاصلة العائمة). قد نحصل من خلال ميزة الربط الذكي هذه على ملفات تطبيقات بحجوم أصغر ونُخفض من استخدام الذاكرة.

الترحيل
-------

قد تُخزن بعض المراجع في برنامج ما أو وحدة مكتبة في صيغة نسبية أو رمزية، والتي لا يمكن تصميمها حتى يُمنح الكود البرمجي بأكمله والمكتبات العناوين الساكنة النهائية.

الترحيل هو عملية تنظيم هذه المراجع، وتتم إمّا من خلال الرابط أو المُحمّل. عمومًا، لا يمكن أن يُجرى الترحيل على المكتبات بمفردها لأن العناوين في الذاكرة قد تختلف اعتمادًا على البرنامج الذي يستخدمها وعلى المكتبات الأخرى التي تُدمج معها. يتجنب الترميز المعتمد على الموقع استخدام مراجع لعناوين مطلقة وبالتالي فهو لا يتطلب ترحيلًا.

استعمال
-------

في الحوسبة، الوظيفة هي عبارة عن مجموعة من التعليمات التي تدعم عملية معينة وتنتج نتيجة لذلك. ظهرت المكتبات البرمجية حوالي سنة 1950، حيث كانت في ذلك الوقت عبارة عن مخزن يحتوي مجموعة من البطاقات المثقبة أو لفات شرائط مغناطيسية التي تخزن بدورها روتين-وظيفة. يمكن للمبرمجين اختيار الشرائط المغناطيسية لاستعمالها في برامجهم.
تستعمل المكتبات البرمجية، كما ذكرنا سابقا، لتنفيذ واجهات برمجة، إطارات عمل، برامج مساعدة ولغات برمجة.
إن برمجة واستغلال المكتبات البرمجية هو جزء من الاستخدامات الشائعة للغات البرمجة العامة.إذا كانت الوظائف في لغات البرمجة الأولى محدودة بمعجم هذه اللغة، فإن لغات البرمجة الحديثة تمتلك معجم م حدود أكثر وتمتلك مجموعة كبيرة من الوظائف وفرتها المكتبات البرمجية التي تصاحب معجم لغة البرمجة.على سبيل المثال، تحتوي المكتبة البرمجية C مجموعة موحدة من الوظائف لمعالجة الملفات، كتابة النصوص، واستخدام الذاكرة، أو إجراء العمليات الحسابية.

مراجع
-----

1. ↑  Bresnahan، Christine؛ Blum، Richard (27 أبريل 2015). *LPIC-1 Linux Professional Institute Certification Study Guide: Exam 101-400 and Exam 102-400*. John Wiley & Sons (نُشِر في 2015). ص. 82. ISBN:9781119021186. مؤرشف من الأصل في 24 سبتمبر 2015. اطلع عليه بتاريخ 3 سبتمبر 2015. Linux shared libraries are similar to the dynamic link libraries (DLLs) of Windows. Windows DLLs are usually identified by .dll filename extensions.
2. 1 2  Wilson، Leslie B.؛ Clark، Robert G. (1988). *Comparative Programming Languages*. Wokingham, England: Addison-Wesley. ص. 126. ISBN:0-201-18483-4.
3. ↑  "A History of MTS". *Information Technology Digest*. ج. 5 ع. 5.
4. ↑  Wexelblat، Richard (1981). *History of Programming Languages*. ACM Monograph Series. New York, NY: Academic Press (A subsidiary of Harcourt Brace). ص. 369. ISBN:0-12-745040-8. مؤرشف من الأصل في 2020-05-27.
5. ↑  Wexelblat, *op. cit.*, p. 274
6. ↑  Wexelblat, *op. cit.*, p. 258
7. ↑  Wilson and Clark, *op. cit.*, p. 52
8. ↑  Wexelblat, *op. cit.*, p. 716

|  |  |
| --- | --- |
| مشاريع شقيقة | في كومنز صور وملفات عن: مكتبة برمجية |



| * ع
* ن
* ت
واجهة التطبيق الثنائية (ABI) |
| --- |
| الأجزاء والمُجمعات | 
* المحاذاة
* اصطلاح الاستدعاء
* مكدس الإستدعاءات
* مكتبة برمجية
	+ ثابتة
* لغة الآلة
* تجزئة الذاكرة
* تشويه الاسم
* كود الكائن
* مؤشر معتم
* كود مستقل عن الموضع
* نقل
* طلب النظام
* جدول الطريقة الافتراضية

 |
| مواضيع متعلقة | 
* توافق الكود الثنائي
* واجهة الدالة الخارجية
* ارتباط اللغة
* الرابط
	+ ديناميكي
* المُحمل
* معضلة العام 2038

 |


| * ع
* ن
* ت
علم الحاسوب |
| --- |
| يعتمد هذا القالب على تصنيف أنظمة الحوسبة  الذي أنجزته جمعية آلات الحوسبة في عام 2012 |
| العتاد | 
* اللوحات المطبوعة
* المُلحقات
* الدارات المُتكاملة
* التكامل بالغ مقاس الاتساع
* نظام على رقاقة
* الحوسبة الخضراء
* أتمتة التصميم الإلكتروني
* تسريع العتاد

 |
| بنية الأنظمة | 
* المعماريَّة
* الأنظمة المُضمَّنة
* الحوسبة في الزمن الحقيقي
* الاعتمادية

 |
| الشبكات | 
* المعماريَّة
* البروتوكولات
* العتاد
* الجدولة
* الأداء
* الخدمات

 |
| بنية البرمجيات | 
* المُفسِّرات
* برمجيات وسيطة
* آلة افتراضية
* أنظمة التشغيل
* جودة البرمجيات

 |
| نظرية لغات البرمجة وأدواتها | 
* الأنماط
* اللغات
	+ البرمجة
	+ النمذجة
	+ مخصصة النطاق
* المُصرِّفات
* أُطُر العمل
	+ بيئة التطوير المتكاملة
* المكتبات
* المُستودعات

 |
| تطوير البرمجيات | 
* المتغيرات
* عملية التطوير
* تحليل المتطلبات
* التصميم
* البناء
* النشر
* الصيانة
* فريق البرمجة
* البرمجيات حُرَّة المصدر

 |
| نظرية الحوسبة | 
* نموذج حوسبة
* لغة شكلية
* نظريات
	+ التشغيل الذاتي
	+ الحاسوبيَّة
	+ التعقيد الحسابي
* المنطق
* علم الدلالة الشكلي

 |
| الخوارزميات | 
* التحليل
* الكفاءة
* خوارزمية عشوائية
* هندسة مُحوسبة

 |
| رياضيات الحوسبة | 
* رياضيات مُتقطِّعة
* الاحتمالات
* الإحصاء
* برمجية رياضية
* نظرية المعلومات
* التحليل
	+ الرياضي
	+ العددي
* علم الحاسوب النظري

 |
| نظم المعلومات | 
* أنواع
	+ التخزين
		- قواعد البيانات
		- الوسائط المتعددة
	+ اقتصادية
	+ اجتماعية
	+ جغرافية
	+ دعم القرارات
	+ التحكُّم في العمليات
* تنقيب في البيانات
* مكتبة رقمية
* منصة حوسبة
* التسويق الرقمي
* شبكة عالمية المجال
* استرجاع المعلومات

 |
| الأمن | 
* أنواع
	+ العتاد
	+ الشبكات
	+ المعلومات
	+ التطبيقات
	+ الخدمات
* علم التعمية
* طريقة شكلية
* أنظمة كشف التسلسل

 |
| التفاعل الإنساني الحاسويبي | 
* حوسبة
	+ اجتماعية
	+ سائدة
* تصميم التفاعل
* تمثيل مرئي
* إمكانية الوصول

 |
| تزامن | 
* أنواع
	+ مُتزامِنة
	+ مُتوازيَّة
	+ مُوزَّعة
* تشعب مُتعدِّد
* مُعالَجة مُتعدِّدة

 |
| الذكاء الاصطناعي | 
* معالجة اللغة الطبيعية
* تمثيل المعرفة
* رؤية حاسوبية
* التخطيط الآلي والجدولة
* الاستمثال
* نظرية التَّحكُّم
* الفلسفة
* ذكاء اصطناعي مُوزَّع

 |
| تعلم الآلة | 
* أنواع التَّعلُّم
	+ مُراقَب
	+ غير مُراقَب
	+ مَدعُوم
	+ مُتعدِّد المهام
* التصديق المُتقاطِع

 |
| رسوميَّات | 
* التحريك
* الاستخلاص
* صور
	+ التَّلاعُب
	+ الضَّغط
* وحدة معالجة الرسوميَّات
* وُقُع
	+ افتراضي
	+ مُعزَّز
	+ مُختلَط
* نمذجة المُجسَّمات

 |
| الحوسبة التطبيقيَّة | 
* اختصاصات محوسبة
	+ رياضيات
	+ كيمياء
	+ فيزياء
	+ علم الأحياء
	+ هندسة
	+ العلوم الاجتماعية
* معلوماتية صحية
* التجارة الرقميَّة
* الفن الرقمي
* النشر الرقمي
* حرب رقمية عبر الشبكة
* التصويت الإلكتروني
* ألعاب الفيديو
* مُعالِجات النصوص
* بحوث العمليات
* تقنيات التعليم

 |
| 
* **تصنيف**
* **مُختصَر موجز**
* **مشروع**
* **كُومُنز**

 |

* أيقونة بوابةبوابة برمجة الحاسوب
* أيقونة بوابةبوابة تقانة
* أيقونة بوابةبوابة تقانة المعلومات
* أيقونة بوابةبوابة علم الحاسوب

| ضبط استنادي عدلها في ويكي بيانات |
| --- |
| دولية | 
* المُعرِّف مُتعدِّد الأوجه (FAST)

 |
| وطنية | 
* الملف الاستنادي المتكامِل (GND)
* المكتبة القومية الإسرائيلية (J9U)
* مكتبة الكونغرس (LCNAF)
* قاعدة البيانات الوطنية التشيكية (NLCR AUT)

 |