IBM kodni tarjima qiladigan va tasdiqlaydigan mashinalarni o'rganish tizimlari uchun CodeNet-ni ochadi

IBM o‘zining CodeNet tashabbusini taqdim etdi, uning maqsadi tadqiqotchilarga dasturlash tili tarjimonlari, kod generatorlari va analizatorlarini yaratish uchun mashina o‘rganish usullaridan foydalanishda tajriba o‘tkazish imkonini beruvchi ma’lumotlar to‘plamini taqdim etishdir. CodeNet 14 ta keng tarqalgan dasturlash muammolarini hal qiladigan 4053 million kod misollari to'plamini o'z ichiga oladi. Umuman olganda, to'plam taxminan 500 million qator kodlarni o'z ichiga oladi va 55 ta dasturlash tillarini, C++, Java, Python va Go kabi zamonaviy tillarni hamda COBOL, Paskal va FORTRAN kabi eski tillarni qamrab oladi. Loyihaning ishlanmalari Apache 2.0 litsenziyasi ostida tarqatiladi va ma'lumotlar to'plamlari jamoat mulki shaklida tarqatilishi rejalashtirilgan.

Misollar izohlangan va turli dasturlash tillarida bir xil algoritmlarni amalga oshiradi. Taklif etilayotgan to'plam mashinani o'rganish tizimlarini o'qitishga va ImageNet izohli tasvirlar ma'lumotlar bazasi naqshni aniqlash va kompyuter ko'rish tizimlarini rivojlantirishga qanday yordam berganiga o'xshash tarjima va mashina kodini tahlil qilish sohasida innovatsiyalarni rivojlantirishga yordam berishi kutilmoqda. To'plamni shakllantirishning asosiy manbalaridan biri sifatida turli xil dasturlash musobaqalari keltirilgan.

Tarjima qoidalari asosida amalga oshiriladigan an'anaviy tarjimonlardan farqli o'laroq, mashinani o'rganish tizimlari koddan foydalanish kontekstini qamrab olishi va hisobga olishi mumkin. Bir dasturlash tilidan ikkinchisiga o'tishda kontekst bir inson tilidan ikkinchisiga tarjima qilishda bo'lgani kabi muhim ahamiyatga ega. Ushbu kontekstni hisobga olmaslik kodni COBOL kabi eski tillardan aylantirishga to'sqinlik qiladi.

Turli tillarda algoritmlarni amalga oshirishning katta ma'lumotlar bazasiga ega bo'lish, ma'lum tillar o'rtasida to'g'ridan-to'g'ri tarjima qilish o'rniga, muayyan dasturlash tillaridan mustaqil ravishda kodning mavhumroq ko'rinishini boshqaradigan universal mashinalarni o'rganish tizimlarini yaratishga yordam beradi. Bunday tizim tarjimon sifatida ishlatilishi mumkin, har qanday qo'llab-quvvatlanadigan tillarda uzatilgan kodni ichki mavhum tasvirga tarjima qiladi, undan keyin kod bir nechta tillarda yaratilishi mumkin.

Tizim ikki tomonlama transformatsiyalarni ham amalga oshirishi mumkin bo'ladi. Masalan, banklar va davlat idoralari eskirgan COBOL tilidagi loyihalardan foydalanishda davom etmoqda. Mashinani o'rganishga asoslangan tarjimon COBOL kodini Java ko'rinishiga aylantirishi va kerak bo'lganda Java fragmentini COBOL kodiga qayta tarjima qilishi mumkin.

Tillar o'rtasida tarjima qilishdan tashqari, CodeNet-ni qo'llashning aqlli kodlarni qidirish tizimlarini yaratish va klonlarni aniqlashni avtomatlashtirish, shuningdek optimallashtiruvchilar va avtomatik kodlarni tuzatish tizimlarini ishlab chiqish kabi sohalari qayd etilgan. Xususan, CodeNet-da keltirilgan misollar ishlash testi natijalarini, natijada olingan dastur hajmini, xotira sarfini va holatini tavsiflovchi metama'lumotlar bilan jihozlangan, bu bizga to'g'ri kodni xatoli koddan ajratish imkonini beradi (to'g'ri kodni noto'g'ri koddan ajratish uchun, to'plam, xususan, xatolari bo'lgan misollarni o'z ichiga oladi, ularning ulushi 29.5% ni tashkil qiladi. Mashinani o'rganish tizimi eng maqbul kodni yaratish yoki tahlil qilingan koddagi regressiyalarni aniqlash uchun ushbu metama'lumotni hisobga olishi mumkin (tizim taqdim etilgan koddagi algoritm optimal tarzda amalga oshirilmaganligini yoki xatolarni o'z ichiga olganligini tushunishi mumkin).

Manba: opennet.ru

a Izoh qo'shish