Bayou سیستمی است که بسته به نیاز دولوپرهای جاوا در حین استفاده از API این زبان، دست به تولید خودکار کدهای مرتبط میزند. در واقع، این فناوری هوش مصنوعی بدین صورت عمل میکند که پس از مشخص شدن تَسک مد نظر توسط دولوپر، سیستم اِسنیپِت مورد نیاز برای انجام آن تَسک را با استفاده از شبکههای عصبی در دسترس دلووپر قرار میدهد.
در مورد سازوکار کلی این سرویس بایستی گفت که دولوپر طرح کلی برنامهاش (Draft Program) را نوشته سپس Bayou با توجه به متدهای به کار گرفته شده از API جاوا از یکسو و همچنین نوع متغیرهای مورد استفاده در این برنامه از سوی دیگر، دست به تولید کد میزند. به عبارت دیگر، سورسکد نوشته شده توسط دولوپر با استفاده از متدی تحت عنوان Neural Sketch Learning تحلیل میشود که نوعی از شبکههای عصبی به نام Gaussian Encoder-Decoder است.
به عنوان مثال، کدهای زیر را در این سرویس که به صورت آنلاین از طریق لینک Bayou در دسترس است وارد میکنیم:
import java.io.*;
import java.util.*;
public class TestList {
void remove(List<String> list) {
{
/// type:Iterator call:next call:remove
}
}
}
حال به عنوان برنامهٔ تکمیلی توسعه داده شده توسط هوش مصنوعی داریم:
import java.io.*;
import java.util.*;
import java.util.Iterator;
import java.util.List;
public class TestList {
void remove(List<String> list) {
{
Iterator<String> i1;
boolean b1;
i1 = list.iterator();
while ((b1 = i1.hasNext())) {
i1.remove();
}
return;
}
}
}
در واقع، این نوع شبکهٔ عصبی از میان دیتاستی از برنامههای مختلف، آن چیزی که با برنامهٔ دولوپر همخوانی بیشتری دارا است را انتخاب کرده و خروجی منطبقترین برنامهٔ ممکن با نیاز دولوپر است.
در پایان لازم به ذکر است که Bayou در گروه کامپیوتر دانشگاه Rice و به عنوان بخشی از طراح Mining and Understanding Software Enclaves سازمان DARPA طراحی شده است.