ساده سازی ساختارهای داده دایره ای با زیر مجموعه RAR Rust

1 مقدمه

2 لینک رقص

3 زبان برنامه نویسی Rust

4 RAC: تضمین مشترک سخت افزار/نرم افزار در مقیاس

5 زنگ و RAR

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

6 پیوند رقص در Rust و 6.1 تعاریف

6.2 ترجمه به ACL2

6.3 قضایای پیوندهای رقص

7 کارهای مرتبط

8 نتیجه گیری

9 قدردانی و مراجع

در این بخش، ما یک لیست دایره‌ای مبتنی بر آرایه با پیوند دوگانه (CDLL) را با استفاده از بهینه‌سازی «پیوندهای رقصی» Knuth، که با استفاده از زیرمجموعه RAR Rust انجام شده است، توصیف می‌کنیم. اجرای ساختار داده CDLL بیش از 700 خط کد Rust را تشکیل می دهد که با ترجمه به ACL2 به 890 خط کد تبدیل می شود.

6.1 تعاریف

ابتدا، ما اعلان اصلی RAR را برای CDLL ارائه می کنیم.

اعلان‌های ساختار داده‌های Rust مشابه موارد در C هستند، اما عناصر ساختار با مشخص کردن نام عنصر و به دنبال آن جداکننده: و سپس نوع عنصر اعلام می‌شوند. همچنین توجه داشته باشید که Rust pragmas ممکن است با استفاده از ویژگی derive داده شود. در اعلان بالا، آرایه nodeArr گره های عنصر لیست را نگه می دارد. هر عنصر دارای شاخص های بعدی و قبلی است. توجه داشته باشید که شاخص‌ها در Rust معمولاً از نوع usize هستند. همچنین توجه داشته باشید که با استفاده از شاخص‌های آرایه به جای ارجاعات، ما دور می‌شویم

شکل 4: تابع ()cdll_remove در RAR.شکل 4: تابع ()cdll_remove در RAR.

مشکلات مدل مالکیت زنگ با داده های دایره ای…

Source link