Група дослідників з університету Райса (США) розвиває інтелектуальний асистент для розробника – Bayou, який дозволяє частково автоматизувати процес написання коду на Java. Проект використовує алгоритми глибинного машинного навчання та моделі, що натреновані на прикладах робочого Java-коду, представленого на GitHub. Напрацювання по проекту відкриті під ліцензією Apache 2.0, код написано на Java і Python. Модель машинного навчання реалізована за допомогою платформи Tensorflow та інструментарію scikit-learn. Поглянути на можливості Bayou можна тут.
Bayou позиціонують як розумну систему автоматичного доповнення коду. З часом на базі Bayou планується створити плагіни для IDE, які дозволять при наборі коду розробником, інтерактивно пропонувати йому відповідні за контекстом шматки коду.
На основі міток, які задав розробник з позначенням методів API та типів даних, які слід використовувати в коді, Bayou буде синтезувати готові програмні блоки з реалізацією шаблонів використання Java API, що відповідають контексту вже наявного коду. Іншими словами, Bayou дозволяє використовувати методи машинного навчання для втілення парадигми розробки copy&paste, при якій розробник знаходить і використовує готові шматки коду, що застосовуються в інших проектах.
В поточному вигляді система вимагає задання досить точних міток, не підтримує вказання масок для типів і може використовувати лише обмежений набір API (java.lang, java.io і java.util). Проте розробники мають намір реалізувати можливість формування запитів звичайною мовою та додати функціональність інтерактивної оболонки, що дозволить вибирати різні варіанти коду та задавати точніші запити. В майбутньому планується забезпечити генерацію більш складного коду, включаючи групи методів та класів.
Ще немає коментарів