تفاوت میان نسخه‌های «واسط دودویی کاربردی»

بدون خلاصه ویرایش
(اصلاح نویسه‌های عربی، اصلاح فاصلهٔ مجازی، اصلاح ارقام، اصلاح سجاوندی، اصلاح املا، ابرابزار)
* [[قرارداد تماس‌گرفتن|قرارداد تماس]]، که نحوه ارسال آرگومان‌های [[رویه (علوم رایانه)|تابع]]، و بازیابی مقادیر بازگشتی را کنترل می‌کند. مثلاً این موارد را کنترل می‌کند:
** آیا همه پارامترها باید روی پشته قرار گیرند یا بعضی از آن‌ها در ثبات قرار گیرند
** کدام ثبات برای کدانکدام عملکرد تابعی استفاده شود؛
** آیا اولین پارامتر تابعی قرارگرفته روی پشته، اول یا آخر روی پشته نشانده شده‌است.
* یک برنامه‌کاربردی چگونه باید با سیستم‌عامل [[تماس با سامانه (رایانه)|تماس سامانه‌ای]] بگیرد، و اگر ABI «تماس‌های سامانه‌ای مستقیم» را به جای تماس‌های رویه‌ای به [[شگرد ته‌رسید|ته‌رسیدهای]] تماس سامانه‌ای تعیین نموده‌است، باید اعداد تماس سامانه‌ای تعیین شود.
* و در حالتی که با یک ABI سیستم‌عاملی کامل سروکار داریم، قالب دودویی [[آبجکت فایل]]، کتابخانه برنامه، و غیره.
 
یک ABI کامل، مثل [[:en:Intel_Binary_Compatibility_Standard|استاندارد سازگاری دودویی اینتل]] (iBCS)<ref>[http://www.everything2.com/index.pl?node=iBCS Intel Binary Compatibility Standard (iBCS)]</ref> این امکان را فراهم می‌سازد تا یک برنامه از یک سیستم‌عامل که از آن ABI پشتیبانی می‌کند، بدون هیچ دستکاری روی هر سامانه دیگر مشابه (پشتیبانی کننده از ABI) اجرا گردد، برای این موضوع باید کتابخانه‌های مشترک لازم وجود داشته باشد، و پیش‌نیازهای مشابه برآورده گردد.
 
دیگر ABIها جزییاتی مثل [[دستکاری نام|دستکاری نام <bdi>C++</bdi>]]،<ref>{{cite web|url=https://itanium-cxx-abi.github.io/cxx-abi/|title=Itanium C++ ABI}} (compatible with multiple architectures)</ref> انتشار حالت [[رسیدگی به استثناء|استثنا]]،<ref>{{cite web|url=http://itanium-cxx-abi.github.io/cxx-abi/abi-eh.html|title=Itanium C++ ABI: Exception Handling}} (compatible with multiple architectures)</ref> و قراداد تماس‌گیری بین کامپایلرها در یک بن‌سازه را استانداردسازی می‌کند، اما نیازی به سازگاری بین بن‌سازه‌ایی ندارد.
 
== ABIهای توکار ==