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

5 زنگ و RAR

زبان برنامه نویسی Rust [16] یک زبان برنامه نویسی مدرن و سطح بالا است که برای ترکیب کارایی تولید کد C/C++ با بهبود چشمگیر ایمنی نوع و ویژگی های مدیریت حافظه طراحی شده است. ویژگی متمایز Rust این است که یک شی غیر اسکالر ممکن است فقط یک مالک داشته باشد. به عنوان مثال، نمی توان یک مرجع را به یک شی در یک متغیر محلی اختصاص داد و سپس آن مرجع را به یک تابع منتقل کرد. این محدودیت مشابه محدودیت های اعمال شده بر روی اشیاء تک رشته ای ACL2 (stobjs) است. [4]، با پیچیدگی های اضافی اعمال چنین محدودیت های “تک مالک” در زمینه یک زبان برنامه نویسی ضروری و همه منظوره. Rust Run تایم بررسی مرزهای آرایه و همچنین بررسی سرریز حسابی را انجام می دهد (این دومی را می توان با تنظیم محیط ساخت غیرفعال کرد).

از بسیاری جهات دیگر، Rust یک زبان برنامه نویسی مدرن نسبتاً متعارف است، با رابط (به نام صفات)، لامبدا (معروف به بسته شدن)، و تطبیق الگو، و همچنین قابلیت ماکرو. همچنین مطابق با دیگر اکوسیستم‌های زبان برنامه‌نویسی مدرن، Rust دارای یک سیستم مدیریت ساخت و بسته‌بندی مخصوص زبان به نام cargo است.

5.1 زنگ الگوریتمی محدود

از آنجایی که می خواهیم از زنجیره ابزار RAC به عنوان پشتوانه در کار اولیه خود استفاده کنیم، …

Source link