فریم‌ورک رز

**فریم‌ورک رز** (به انگلیسی :ROSE(compiler framework)) یک مترجم متن‌باز برای ترجمه زبان‌های برنامه‌نویسی می‌باشد که برای اولین بار در آزمایش‌گاه Lawrence Livermore National Laboratory ایجاد شد. این مترجم توانایی ترجمه زبان‌هایی چون C, C++, JAVA, OpenMP, PHP, Python, Fortran را دارد، همچنین یک ابزار برای آنالیز و بررسی زبان نوشته شده نیز می‌باشد.

## مقدمه
رز به عنوان یک مترجم متن‌باز برای ترجمه مستقیم زبان‌های برنامه‌نویسی و همچنین یک ابزار تحلیل و بررسی زبان‌هایی چون Fortran 77/95/2003, C, C++, OpenMP, UPC در مقیاس بزرگ می‌باشد. متن‌بازبودن این مترجم باعث می‌شود که هر کاربر استفاده‌کننده از رز که حتی دانش اندکی در زمینه مترجم‌ها دارد بتواند به عنوان یک محقق در زمینه پروژه رز عمل کند و بتواند تغییرات خود را روی آن اعمال کند و در اختیار سایرین قرار دهد. رز یک ساختار مناسبی برای ساخت و تغییر یک بستر برای تحلیل‌های غیرپویا، بهینه‌سازی برنامه‌ها، بهینه‌سازی دورهای موجود در برنامه‌ها، تحلیل بهره‌وری و امنیت اینترنتی ایجاد می‌کند. همانند سایر مترجم‌ها، رز از یک معماری سه لایه رویی، میانی و پس‌زمینه بهره می‌برد که لایه پس‌زمینه برنامه ترجمه شده را ایجاد می‌کند.

رز برای ترجمه و تحلیل از مولد میانی(Intermediate Representation) بهره می‌برد تا یک درخت محتوای انتزاعی (AST) را تولید کند که بسیار مناسب برای ترجمه مستقیم می‌باشد.

## تولیدکنندگان
### اعضای اجرایی
* Dr. Daniel J. Quinlanبندانگشتی|Dr. Quinlan
* Dr. Chunhua (Leo) Liaoبندانگشتی|Dr. Chunhua (Leo) Liao
* Justin Too
* Robb P. Matzke
* Markus Schordan

### محقق دوره پسادکترا
* Pei-Hung Lin

### اعضای اجرایی پیشین
* Thomas Panas

### محقق پیشین دوره پسادکترا
* Peter Pirkelbauer
* Jeremiah Willcock
* Chunhua (Leo) Liao
* Thomas Panas
* Rich Vuduc
* Qing Yi
* Markus Schordan

## اهداف
بنا بر گفته سازندگان این فریم‌ورک، هدف اصلی از ساخت رز این است که برنامه‌ها را با معیارهای مرکز انرژی آمریکا بهینه کند. از دیگر اهداف رز می‌توان موارد زیر را خلاصه کرد:
* یک کتابخانه باشد که سریع و راحت بتواند روش‌های مترجم‌ها را به برنامه شما اضافه کند.
* بهره‌وری و کارایی برنامه‌ها را افزایش دهد.
* یک پروژه متن باز باشد که یک حالت تحقیق همگانی داشته باشد تا بتوانید مترجم‌های خود را به آن اضافه کنید و قابلیتهای جدید خود را در اختیار دیگران نیز قرار دهید.

## بسترهای موردنیاز
رز قابلیت کار روی سیستم‌عامل لینوکس و مک بر روی پلتفرم‌های 32-I A و 64-x86 را دارد. اکثر توسعه دهندگان رز از محیط 7 Red Hat Enterprise Linux برای کار خود استفاده می‌کنند. برنامه‌های مورد نیاز برای اجرا و استفاده از رز نیاز به تعدادی برنامه از پیش نصب شده دارید که در زیر آورده شده‌است:
* gcc
* ++G
* gfortran برای پشتیبانی از فورترن
* boost library: 1.50 نسخه to 1.61
* Sun Java JDK، تنها اگر نیاز به پشتیبانی از جاوا و فورترن دارید نیاز است.
* GNU
* libtool:>=۱٫۵٫۶
* bison
* flex
* glibc-devel
* git
* libxml2-devel
* sqlite
* texlive-full، برای ساخت فایلهای لاتک

## جوایز
مترجم رز در سال ۲۰۰۹ یکی از برندگان ۱۰۰ پروژه تحقیق و توسعه بود. :en:ROSE (compiler framework)#cite note-3 این جایزه توسط مجله R&D به ۱۰۰ پروژه تحقیق و توسعه برتر سال داده می‌شود.

## منابع

* ROSE compiler framework
* سایت اصلی مترجم رز
* /Supported Programming Languages
* ROSE Compiler, Dan Quinlan
* 

رده:آزمایشگاه ملی لارنس لیورمور
رده:کامپایلرها
رده:کامپایلرها و مفسرهای آزاد
رده:کامپایلرهای سی++
رده:کامپایلرهای سی
رده:کامپایلرهای فورترن
رده:کامپایلرهای کد منبع به کد منبع
رده:نرم‌افزارهایی که از پروانه بی‌اس‌دی استفاده می‌کنند
رده:ویکی‌سازی رباتیک