هوش مصنوعی فیسبوک کد زبان‌های برنامه‌نویسی را به هم تبدیل می‌کند

تاریخ انتشار : پنجشنبه، 22 خرداد 1399

 نبض بازار: محققان فیسبوک یک ترانسپایلر هوشمند توسعه داده‌اند که کدهای یک زبان برنامه نویسی سطح بالا مثل جاوا، ++C و پایتون را یکدیگر تبدیل می‌کند.

تبدیل کد سورس زبان‌های برنامه نویسی برای توسعه دهندگان کاری طاقت فرسا بوده و نیازمند دقت و شناخت دقیق از زبان‌های مبدا و مقصد است. فیسبوک برای راحت کردن کار این افراد سیستمی به نام «TransCoder» را بر پایه هوش مصنوعی توسعه داده که بدون نیاز به نظارت یا دخالت برنامه نویس کدهای جاوا، ++C و پایتون را با دقتی قابل توجه به هم تبدیل می‌کند.

TransCoder برخلاف دیگر ترانسپایلرها (Transpiler) روند کار را با یادگیری ماشینی فراگرفته و برای آموزش آن از ۲.۸ میلیون مخزن متن باز در گیت‌هاب استفاده شده است. در مدل های دیگر پس از تبدیل کد معمولا برخی موارد مثل اصلاح کامل تفاوت‌ها در سینتکس، تغییر در کتابخانه و مواردی از این دست بر عهده برنامه نویس است اما TransCoder تا حد زیادی این موارد را هم انجام می‌دهد.

 

ترانسپایلر

فیسبوک برای آزمایش ترانسپایلر از ۸۵۲ تابع در جاوا، ++C و پایتون موجود در پلتفرم GeeksforGeeks استفاده کرده که برای آموزش و حل مسائل برنامه نویسی کاربرد دارد. نتایج به دست آمده از کارایی بالای TransCoder حکایت دارد:

  • دقت تبدیل از  ++C به جاوا ۷۴.۸ درصد
  • دقت تبدیل از ++C  به پایتون  ۶۷.۲ درصد
  • دقت تبدیل از جاوا  به ++C بیش از ۹۱ درصد
  • دقت تبدیل از پایتون  به ++C حدود ۵۸ درصد
  • دقت تبدیل از  جاوا به پایتون ۶۸.۷ درصد
  • دقت تبدیل از  پایتون به جاوا ۵۶.۱ درصد

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

منبع:

VentureBeat