جدول پیوندها
1 مقدمه
2 لینک رقص
3 زبان برنامه نویسی Rust
4 RAC: تضمین مشترک سخت افزار/نرم افزار در مقیاس
5 زنگ و RAR
5.1 زنگ الگوریتمی محدود
6 پیوند رقص در Rust و 6.1 تعاریف
6.2 ترجمه به ACL2
6.3 قضایای پیوندهای رقص
7 کارهای مرتبط
8 نتیجه گیری
9 قدردانی و مراجع
6.2 ترجمه به ACL2
ما از Plexi برای انتقال منبع RAR به RAC (نمایش داده نشده) استفاده می کنیم، سپس از مترجم RAC برای تبدیل منبع RAC به ACL2 استفاده می کنیم. ترجمه cdll_restore() در شکل 6 نشان داده شده است.
اولین چیزی که در مورد شکل 6 باید به آن توجه کرد این است که، حتی با وجود اینکه ما دو مرحله ترجمه با منبع اصلی RAR فاصله داریم، تابع ترجمه شده کاملاً قابل خواندن است، که برای کدهای تولید شده توسط ماشین نادر است. مشاهدات قابل توجه دیگر این است که عملیات «get» و «set» ساختار و آرایه به ترتیب به عملگرهای رکوردی بدون تایپ، AG و AS تبدیل میشوند – اینها سفارشیسازیهای مختصر RAC از اپراتورهای معمول رکورد بدون تایپ ACL2 هستند. علاوه بر این، IF1 یک ماکرو مخصوص RAC است و LOG، LOG=، LOG
یکی از جنبههای رکوردهای تایپ نشده که میتواند مشکل ساز باشد این است که عناصر رکوردی که مقدار پیشفرض را میگیرند به صراحت در فهرست ارتباطی برای رکورد ذخیره نمیشوند. برای رکوردهای تایپ نشده RAC، این مقدار پیش فرض صفر است. بنابراین، آن …