Представлено систему машинного навчання для синтезу коду на Java

2 хв. читання

Група дослідників з університету Райса (США) розвиває інтелектуальний асистент для розробника – 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). Проте розробники мають намір реалізувати можливість формування запитів звичайною мовою та додати функціональність інтерактивної оболонки, що дозволить вибирати різні варіанти коду та задавати точніші запити. В майбутньому планується забезпечити генерацію більш складного коду, включаючи групи методів та класів.

Помітили помилку? Повідомте автору, для цього достатньо виділити текст з помилкою та натиснути Ctrl+Enter
Codeguida 5.7K
Приєднався: 8 місяців тому
Коментарі (0)

    Ще немає коментарів

Щоб залишити коментар необхідно авторизуватися.

Вхід / Реєстрація