From Wikipedia, the free encyclopedia
یک بستگی یا قید (به انگلیسی: binding) در برنامهنویسی یا طراحی نرمافزار، یک واسط برنامهنویسی کاربردی (API) است که یک «کد چسب» را فراهم میبیند. این واسط مخصوصاً برای یک زبان برنامهنویسی ساخته شده است تا به کمک آن استفاده از یک کتابخانه خارجی یا یک سرویس سیستمعامل را امکانپذیر کند (یعنی کتابخانه یا سرویسی که محلی آن زبان نیست).[1]
در دانش رایانه و برنامهنویسی، یک قید از یک زبان به یک کتابخانه یا سرویس سیستمعامل، یک رابط برنامهنویسی نرمافزار است که امکان استفاده از آن کتابخانه یا سرویس سیستمعامل را در آن زبان فراهم میکند. برای مثال برای استفاده از کتابخانهای که به زبان سی یا سی++ نوشته شده است، در زبانی دیگر مثلاً جاوا، باید یک قید جاوا به آن کتابخانه نوشت. به این ترتیب دیگر لازم نیست آن کتابخانه را به زبان جاوا بازنویسی کنید.[2]
binding بهطور کلی به نقشهبرداری یک چیز به چیز دیگر اشاره دارد. در زمینه کتابخانههای نرمافزار، bindingها کتابخانههای پیچشی (wrapper libraries) هستند که بین دو زبان برنامهنویسی پل میشوند تا کتابخانه ای که برای یک زبان نوشته شده است بتواند برای زبان دیگری استفاده شود.[3] بسیاری از کتابخانههای نرمافزار به زبانهای برنامهنویسی سیستم مانند C یا C ++ نوشته شدهاند. برای استفاده از چنین کتابخانههایی از زبان دیگر، معمولاً از سطح بالاتر، مانند جاوا، Common Lisp به، طرح، پایتون، یا لوا، یک اتصال یا binding به کتابخانه باید در آن زبان ایجاد شود، که احتمالاً بسته به مقدار تغییرات مورد نیاز کامپایل مجدد کد زبان نیاز است[4] با این حال، بسیاری از زبانها رابط تابع خارجی (foreign function interface) ارائه میدهند، مانند ctypes
در پایتون و اوکامی و cffi
و uffi
در Embeddable Common Lisp[5][6][7]
به عنوان مثال، از binding پایتون زمانی استفاده میشود که لازم است از یک کتابخانه خارجی C که برای برخی از اهداف نوشته شده است برای پایتون استفاده شود. مثال دیگر libsvn
است که به زبان C نوشته شده است تا یک API برای دسترسی به مخزن نرمافزار Subversion فراهم کند. برای دسترسی به Subversion از داخل کد جاوا، میتوان از libsvnjavahl
استفاده کرد، که به نصب libsvn
بستگی دارد و به عنوان پلی بین زبان جاوا و libsvn
عمل میکند؛ بنابراین یک API فراهم میکند که توابع را از libsvn
فراخوانی میکند.[8]
انگیزههای اصلی ایجاد اتصالات کتابخانه شامل استفاده مجدد از نرمافزار، کم شدن نیاز پیادهسازی مجدد کتابخانهها به چندین زبان و دشواری پیادهسازی کارآمد برخی الگوریتمها در برخی از زبانهای سطح بالا است.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.