کد تولید شده توسط ماشین که کار می کند | HackerNoon

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 نشان داده شده است.

شکل 5: تابع ()cdll_restore در RAR.شکل 5: تابع ()cdll_restore در RAR.

شکل 6: تابع ()cdll_restore با استفاده از ابزار RAC به ACL2 ترجمه شده است.شکل 6: تابع ()cdll_restore با استفاده از ابزار RAC به ACL2 ترجمه شده است.

اولین چیزی که در مورد شکل 6 باید به آن توجه کرد این است که، حتی با وجود اینکه ما دو مرحله ترجمه با منبع اصلی RAR فاصله داریم، تابع ترجمه شده کاملاً قابل خواندن است، که برای کدهای تولید شده توسط ماشین نادر است. مشاهدات قابل توجه دیگر این است که عملیات «get» و «set» ساختار و آرایه به ترتیب به عملگرهای رکوردی بدون تایپ، AG و AS تبدیل می‌شوند – اینها سفارشی‌سازی‌های مختصر RAC از اپراتورهای معمول رکورد بدون تایپ ACL2 هستند. علاوه بر این، IF1 یک ماکرو مخصوص RAC است و LOG، LOG=، LOG

یکی از جنبه‌های رکوردهای تایپ نشده که می‌تواند مشکل ساز باشد این است که عناصر رکوردی که مقدار پیش‌فرض را می‌گیرند به صراحت در فهرست ارتباطی برای رکورد ذخیره نمی‌شوند. برای رکوردهای تایپ نشده RAC، این مقدار پیش فرض صفر است. بنابراین، آن …

Source link