IBM представи инициативата CodeNet, в рамките на която на изследователите се предоставя огромен набор от данни, които могат да се използват за обучение на невронни мрежи, изпълняващи ролята на транслатори от един език на програмиране към друг, както и да работят като генератори и анализатори на сорс-код. CodeNet включва огромна колекция от 14 милиона примера сорс код, решаващи 4053 типови проблеми на програмирането. Като цяло колекцията включва около 500 милиона реда сорс код, написана 55 програмни езика, включително новите C++, Java, Python и Go, както и вече остарелите COBOL, Pascal и FORTRAN. Проектът се разпространява под лиценза Apache 2.0, а наборът от данни съвсем скоро ще стане обществено достояние.
Всички примери имат анотации и реализират идентични алгоритми на различни езици за програмиране. Предполага се, че предложената колекция рязко ще подобри тренирането на системи с машинно обучение и развитието на иновации в областта на транслиране на кода и машинен анализ на сорс кода. Процесът е аналогичен с този на базата данни от изображения ImageNet, която сериозна помогна в развитието на системите за разпознаване на образи и в усъвършенстването на машинното зрение. Един от основните източници за формиране на колекцията на IBM са различните състезания по програмиране.
За разлика от традиционните транслатори на сорс код, реализирани на базата на различни правила за преобразуване, системите с машинно обучение могат да улавят и отчитат контекста на използване на кода. При преобразуването от един програмен език към друг контекстът е не по-малко важен отколкото при превода от един човешки език към друг. Именно отсъствието на съобразяването с контекста пречи на преобразуването на кода от остарели езици, като например COBOL, към по съвременни езици за програмиране.
Наличието на една огромна база данни с реализирани алгоритми на различни езици за програмиране ще помогне в създаването на универсални системи с машинно обучение, които вместо директно транслиране между конкретните програмни езици могат да работят с по-абстрактно представяне на сорс-кода, независимо от конкретния език за програмиране. Една подобна ИИ система може да се използва като транслатор, преобразуващ подадения сорс-код на всеки един от поддържаните от него програмни езици в своя вътрешна абстрактна представа, от която след това може да бъде генериран нов сорс-код на огромен брой други програмни езици.
Подобна система може да извършва преобразуване и в двете направления. Така например в банките и държавните учреждения на САЩ продължават да се използват програми написани на остарелия език COBOL. Транслаторите, използващи машинно обучение, могат да преобразуват сорс-кода на COBOL в код на програмния език Java, както и от Java към COBOL.
Освен транслирането на сорс код към различни програмни езици, CodeNet може да се използва за създаването на смарт системи за автоматична корекция на сорс кода.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!
