تأیید اجرای Rust از پیوندهای رقص کنوت با استفاده از ACL2: چکیده و مقدمه

خلاصه

“پیوندهای رقص” بهینه سازی را برای پیاده سازی ساختار داده لیست با پیوند دوگانه دایره ای دارد که حذف و بازیابی سریع عناصر لیست را فراهم می کند. بهینه‌سازی Dancing Links عمدتاً در الگوریتم‌های سریع برای یافتن جلدهای دقیق مورد استفاده قرار می‌گیرد و توسط Knuth در جلد 4B از مجموعه اصلی خود به نام هنر برنامه‌نویسی کامپیوتری رایج شده است. ما پیاده‌سازی بهینه‌سازی Dancing Links را در زبان برنامه‌نویسی Rust و همچنین تأیید رسمی آن با استفاده از اثبات قضیه ACL2 توصیف می‌کنیم. Rust در چند سال گذشته به عنوان یک جانشین مدرن و ایمن برای حافظه C/C++ در شرکت هایی مانند آمازون، گوگل و مایکروسافت مورد تایید قرار گرفته است و در حال ادغام در هسته سیستم عامل لینوکس و ویندوز است. علاقه ما به Rust از پتانسیل آن به عنوان یک زبان تضمین مشترک سخت افزار/نرم افزار با کاربرد در سیستم های حیاتی ناشی می شود. ما زیرمجموعه Rust را با الهام از الگوریتم محدود شده C (RAC) Russinoff ساخته‌ایم که نام آن را به صورت تخیلی Restricted Algorithmic Rust یا RAR گذاشته‌ایم. در کار قبلی، پیاده‌سازی اولیه یک زنجیره ابزار RAR را توضیح دادیم که در آن به سادگی منبع RAR را به RAC تبدیل می‌کنیم. با انجام این کار، تعدادی از سخت افزار/نرم افزار موجود را تضمین می کنیم…

Source link