پیش‌نویس:زبان انتقال ثبات

از ویکی‌پدیا، دانشنامهٔ آزاد

 

در علوم کامپیوتر ، زبان انتقال ثبات (RTL) نوعی کد هدف، یا نوعی نمایش واسطه (IR)، است که به دلیل استفاده در کامپایلر بسیار نزدیک به زبان اسمبلی می‌باشد. از این زبان جهت توصیف جریان داده‌ها در مرحله انتقال ثبات معماری کامپیوتری استفاده می‌شود. مقالات دانشگاهی و کتاب‌های درسی اغلب از نسخه‌ای از RTL، که مشابه یک زبان اسمبلیِ فارق از نوع معماری کامپیوتر است، استفاده می کنند. از نام RTL جهت نمایش واسطه‌ای خاص در چندین کامپایلر، از جمله مجموعه کامپایلرهای گنو (GCC)، زفیر (Zephyr)، و پروژه‌های کامپایلر اروپایی CerCo و CompCert استفاده می‌شود.

تاریخچه[ویرایش]

ایده پشت زبان انتقال ثبات برای نخستین بار در طراحی و کاربرد یک بهینه ساز چشمی با قابلیت هدف‌گیری مجدد شرح داده شد.[۱]

مجموعه کامپایلرهای گنو (GCC)[ویرایش]

در مجموعه کامپایلرهای گنو، زبان انتقال ثبات از بازنمایی گیمپل (GIMPLE) تولید شده، توسط گذرگاه‌های میانی مختلف در GCC تغییر یافته و سپس به زبان اسمبلی تبدیل می‌شود.

زبان انتقال ثبات GCC معمولاً به شکلی نوشته می‌شود که مشابه با یک عبارت نمادین در زبان لیسپ (Lisp) است:

(set (reg:SI 140)
     (plus:SI (reg:SI 138)
              (reg:SI 139)))

این مقاله در حال ترجمه از ویکی انگلیسی می‌باشد. لطفا حذف نشود.

این عبارت عوارض جانبی می گوید: "محتوای ثبات 138 را با محتویات ثبات 139 جمع کنید و نتیجه را در ثبات 140 ذخیره کنید". SI حالت دسترسی را برای هر ثبات مشخص می کند. در مثال "SImode" است، یعنی "دسترسی به ثبات به عنوان عدد صحیح 32 بیتی".

توالی RTL تولید شده تا حدی به ویژگی های پردازنده ای که GCC برای آن کد تولید می کند، بستگی دارد. با این حال، معنای RTL کمابیش مستقل از هدف است: معمولاً خواندن و درک یک قطعه از RTL بدون دانستن اینکه برای چه پردازنده ای تولید شده است امکان پذیر است. به طور مشابه، معنای RTL معمولاً به زبان سطح بالای اصلی برنامه بستگی ندارد.

زبان انتقال رجیستر سیستمی است برای بیان توالی های ریزعملیات به شکل نمادین در میان ثبات های یک ماژول دیجیتال. این یک ابزار مناسب برای توصیف سازمان داخلی کامپیوترهای دیجیتال به شیوه ای مختصر و دقیق است. همچنین می توان از آن برای تسهیل فرآیند طراحی سیستم های دیجیتال استفاده کرد.

منابع[ویرایش]

۱. Davidson and Fraser; The Design and Application of a Retargetable Peephole Optimizer; ToPLaS v2(2) 191-202 (April 1980)

لینک‌های خارجی[ویرایش]

رده:ساختارهای کامپایلر

  1. Davidson and Fraser; The Design and Application of a Retargetable Peephole Optimizer; ToPLaS v2(2) 191-202 (April 1980)