بستگی زبانی (رایانش)

یک بستگی یا قید  در برنامه‌نویسی یا طراحی نرم‌افزار، یک واسط برنامه‌نویسی کاربردی (API) است که یک «کد چسب» را فراهم می‌بیند. این واسط مخصوصاً برای یک زبان برنامه‌نویسی ساخته شده است تا به کمک آن استفاده از یک کتابخانه خارجی یا یک سرویس سیستم‌عامل را امکان‌پذیر کند (یعنی کتابخانه یا سرویسی که محلی آن زبان نیست).

در دانش رایانه و برنامه‌نویسی، یک قید از یک زبان به یک کتابخانه یا سرویس سیستم‌عامل، یک رابط برنامه‌نویسی نرم‌افزار است که امکان استفاده از آن کتابخانه یا سرویس سیستم‌عامل را در آن زبان فراهم می‌کند. برای مثال برای استفاده از کتابخانه‌ای که به زبان سی یا سی++ نوشته شده است، در زبانی دیگر مثلاً جاوا، باید یک قید جاوا به آن کتابخانه نوشت. به این ترتیب دیگر لازم نیست آن کتابخانه را به زبان جاوا بازنویسی کنید.

 مشخصات 
binding به‌طور کلی به نقشه‌برداری یک چیز به چیز دیگر اشاره دارد. در زمینه کتابخانه‌های نرم‌افزار، bindingها کتابخانه‌های پیچشی (wrapper libraries) هستند که بین دو زبان برنامه‌نویسی پل می‌شوند تا کتابخانه ای که برای یک زبان نوشته شده است بتواند برای زبان دیگری استفاده شود. بسیاری از کتابخانه‌های نرم‌افزار به زبان‌های برنامه‌نویسی سیستم مانند C یا C ++ نوشته شده‌اند. برای استفاده از چنین کتابخانه‌هایی از زبان دیگر، معمولاً از سطح بالاتر، مانند جاوا، Common Lisp به، طرح، پایتون، یا لوا، یک اتصال یا binding به کتابخانه باید در آن زبان ایجاد شود، که احتمالاً بسته به مقدار تغییرات مورد نیاز کامپایل مجدد کد زبان نیاز است با این حال، بسیاری از زبان‌ها رابط تابع خارجی (foreign function interface) ارائه می‌دهند، مانند ctypes در پایتون و اوکامی و cffi و uffi در Embeddable Common Lisp

به عنوان مثال، از binding پایتون زمانی استفاده می‌شود که لازم است از یک کتابخانه خارجی C که برای برخی از اهداف نوشته شده است برای پایتون استفاده شود. مثال دیگر libsvn است که به زبان C نوشته شده است تا یک API برای دسترسی به مخزن نرم‌افزار Subversion فراهم کند. برای دسترسی به Subversion از داخل کد جاوا، می‌توان از libsvnjavahl استفاده کرد، که به نصب libsvn بستگی دارد و به عنوان پلی بین زبان جاوا و libsvn عمل می‌کند؛ بنابراین یک API فراهم می‌کند که توابع را از libsvn فراخوانی می‌کند.

انگیزه‌های اصلی ایجاد اتصالات کتابخانه شامل استفاده مجدد از نرم‌افزار، کم شدن نیاز پیاده‌سازی مجدد کتابخانه‌ها به چندین زبان و دشواری پیاده‌سازی کارآمد برخی الگوریتم‌ها در برخی از زبان‌های سطح بالا است.

 محیط زمان اجرا 
مدل‌های شی
 معماری کارگزار درخواست مشترک اشیا ((CORBA) - مدل زبان از نوع کراس پلت فرم
 مدل شیon کامپوننت (COM) - فقط مدل کراس زبان Microsoft Windows
 مدل شی توزیع شده (DCOM) - پسوند COM را قادر می‌سازد تا از طریق شبکه کار کند
 Cross Object Model Component Object (XPCOM) - برنامه‌های چند پلتفرمی برنامه‌های Mozilla
 زیرساخت زبان مشترک - . NET Framework - مدل زبانی بین پلتفرمی
 Freedesktop.org D-Bus - مدل زبان -کراس پلت فرم باز

ماشین‌های مجازی
 مقایسه ماشین‌های مجازی کاربردی یا Comparison of application virtual machines

 انتقال 
 شی قابل حمل - تعریف مدل شی object زبانی از طریق پلت فرم

 منابع 

 پیوند به بیرون 
 قید بین سی و پیتون
 JTC1 / SC22 / WG11 - تکنیک‌های اتصال، یک استاندارد ISO برای اتصال زبان
 زبان الزام‌آور چیست؟

رده:برنامه‌نویسی
رده:کامپایلرها
رده:کتابخانه‌های رایانه