یک یا (به : ) در ، با کوته‌نوشت یک است که بین دو «پودمان برنامه دودویی» وجود دارد. معمولاً یکی از این پودمان‌ها یک یا وسیله است، و دیگری یک برنامه است که توسط یک کاربر در حال اجرا است.
 یک ABI در واقع دارد نحوه دسترسی به یا رویه محاسباتی را در تعریف می‌کند، که این کد ماشین یک قالب سطح پایین و وابسته به سخت‌افزار است. در مقابل این دیدگاه، مفهوم است که این دسترسی را در تعریف می‌کند، که کد منبع یک قالب نسبتاً سطح بالا، مستقل از سخت‌افزار، و معمولاً است. یک بخش معمول از یک ABI تعریف است، که تعیین می‌کند که چگونه داده به عنوان ورودی ارائه گردد، یا به عنوان خروجی، از رویه‌های محاسباتی خوانده شود. مثال‌هایی در این زمینه اند.
 یک مفهوم پیوسته با ABI (که می‌تواند استانداردسازی شود یا نشود)، کارهای نویسنده یک ، سیستم‌عامل، یا کتابخانه است. با این حال، یک برنامه‌نویس کاربردی موقعی که «یک برنامه را به صورت مخلوطی از چند زبان برنامه‌نویسی می‌نویسد» یا حتی موقعی که «یک برنامه نوشته شده به یک زبان را با چند کامپالر متفات کامپایل می‌کند» با ABIها سروکار دارد.
 ABIها شامل این جزییات هستند:
 
 
 
 
 یک ABI کامل، مثل (iBCS) این امکان را فراهم می‌سازد تا یک برنامه از یک سیستم‌عامل که از آن ABI پشتیبانی می‌کند، بدون هیچ دستکاری روی هر سامانه دیگر مشابه (پشتیبانی کننده از ABI) اجرا گردد، برای این موضوع باید کتابخانه‌های مشترک لازم وجود داشته باشد، و پیش‌نیازهای مشابه برآورده گردد.
 دیگر ABIها جزییاتی مثل ، انتشار حالت ، و قراداد تماس‌گیری بین کامپایلرها در یک بن‌سازه را استانداردسازی می‌کند، اما نیازی به سازگاری بین بن‌سازه‌ایی ندارد.
 یک واسط دودویی کاربردی توکار (به : ) با کوته‌نوشت EABI قراردادهای استانداردی را برای ، انواع داده، استفاده از ثبات، سازماندهی ، و قراردادن پارامتر تابعی یک برنامه نرم‌افزاری توکار، برای استفاده با یک تعیین می‌کند.
 که از EABI پشتیبانی می‌کنند، می‌سازند که با کد تولید شده دیگر کامپایلرهای مشابه سازگار است، این موضوع به توسعه‌دهنده‌ها امکان پیوند کتابخانه‌های ساخته شده با یک کامپایلر را با آبجکت کد تولید شده با یک کامپایلر دیگر می‌دهد. توسعه‌دهندگانی که کد خودشان را می‌نویسند هم ممکن است بخواهند با کد اسمبلی تولید شده با کامپابلر سازگار، واسط‌سازی انجام دهند.
 EABIها برای بهینه‌سازی کارایی در داخل منابع محدود یک سامانه توکار طراحی شده‌اند؛ بنابراین، EABIها، بیشتر انتزاع‌هایی که بین کد کاربر و هسته در سیستم‌عامل‌های پیچیده وجود دارد را حذف می‌کنند. برای مثال از جلوگیری می‌شود، تا کداجرایی کوچکتری ایجاد شود، و بارگذاری سریعتر شود، همچنین استفاده از ثبات‌های ثابت، به ما امکان ایجاد پشته‌ها و تماس هسته‌ای فشرده‌تر را می‌دهد، و اجرای برنامه کاربردی در حالت مجوزدهی شده، امکان دسترسی مستقیم به عملیات‌های سخت‌افزاری سفارشی بدون تغییر مسیر بواسطه تماس به یک را می‌دهد. انتخاب EABI می‌تواند روی کارایی تأثیر بگذارد. 
 EABIهایی که امروزه زیاد استفاده می‌شوند شامل: , EABI و EABI هستند. پیاده‌سازی‌های نرم‌افزاری خاص مثل کتابخانه C ممکن است محدودیت‌های اضافی را تحمیل کند، و این موجب ایجاد یک ABI واقعی‌تر (غیرانتزاعی‌تر) می‌شود؛ یک مثل GNU OABI و EABI برای ARM است که هردو آن‌ها زیرمجموعه ARM EABI هستند.
{"title": "واسط دودویی کاربردی", "link": "https://fa.wikipedia.org//w/index.php?title=%D9%88%D8%A7%D8%B3%D8%B7_%D8%AF%D9%88%D8%AF%D9%88%DB%8C%DB%8C_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C&oldid=34869485", "language": "fa"}