<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Система машинного обучения для синтеза типового кода на язык...</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html</link>
    <description>Группа исследователей из университета Райса (США) разработала (https://arxiv.org/pdf/1703.05698.pdf) интеллектуальный ассистент разработчика Bayou (https://github.com/capergroup/bayou), позволяющий частично автоматизировать процесс написания кода на языке Java. Проект использует алгоритмы глубинного  машинного обучения и модель, натренированную на примерах рабочего Java-кода, представленного на GitHub. Наработки проекта открыты (https://github.com/capergroup/bayou) под лицензией Apache 2.0, код написан на Java и Python. Модель машинного обучения реализована при помощи платформы Tensorflow (https://www.opennet.ru/opennews/art.shtml?num=46058) и инструментария scikit-learn (http://scikit-learn.org/).&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;На основе задаваемых разработчиком меток c упоминанием методов API и типов данных, которые следует использовать в коде, Bayou позволяет синтезировать готовые программные блоки с реализацией шаблонов использования Java API,  соответствующих контексту уже имеющегося кода. Иными словами, Bayou позволяет исполь</description>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (yyyy)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#115</link>
    <pubDate>Tue, 08 May 2018 15:11:50 GMT</pubDate>
    <description>Собственно, строгий формализм - это не удел и человека тоже.&lt;br&gt;&lt;br&gt;Есть огромное количество однотипных бизнес-задач, где абсолютная корректность не нужна, а нужно, чтобы было написано быстро и дёшево и работало в этих 99&#037; случаев, а убытки от оставшегося 1&#037; с лихвой компенсирует экономия на разработке. &lt;br&gt;&lt;br&gt;Эти задачи сейчас обслуживает армия низкоквалифицированных кодеров, которые уже, по сути, являются такими нейронками: им на вход приходит подробное ТЗ, а они выдают нечто, что работает как-то похоже на то, что просили.&lt;br&gt;&lt;br&gt;А что касается эксперимента, то он пока что выглядит игрушечным, я с этим и не спорю.&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#114</link>
    <pubDate>Mon, 30 Apr 2018 22:05:11 GMT</pubDate>
    <description>&amp;gt; Ресурсом, который нужно освобождать, владеет FileReader. Поэтому try должен быть после него.&lt;br&gt;&lt;br&gt;А можно поподробнее? Как вынос FileReader наружу от try/catch исправит ситуацию?&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#113</link>
    <pubDate>Mon, 30 Apr 2018 21:56:02 GMT</pubDate>
    <description>&amp;gt; не вижу в синтаксе Джаве ничего сверхъестественного&lt;br&gt;&lt;br&gt;А проблема не в синтаксисе.&lt;br&gt;&lt;br&gt;Можно ведь написать&#091;code&#093;int min (int a, int b) &#123; return a &amp;lt; b ? a : b; &#125;&#091;/code&#093;а можно&#091;code&#093;&lt;br&gt;/*&lt;br&gt; * Compare two values and returns the minimal one.&lt;br&gt; *&lt;br&gt; * &#064;param int firstValue The first value to compare.&lt;br&gt; * &#064;param int secondValue The second value to compare.&lt;br&gt; *&lt;br&gt; * &#064;return int The minimal of the two values passed.&lt;br&gt; */&lt;br&gt;int&lt;br&gt;min (&lt;br&gt;    int firstValue,&lt;br&gt;    int secondValue)&lt;br&gt;&#123;&lt;br&gt;    int result = 0;&lt;br&gt;&lt;br&gt;    if (firstValue &amp;lt; secondValue)&lt;br&gt;    &#123;&lt;br&gt;        result = firstValue;&lt;br&gt;    &#125;&lt;br&gt;    else&lt;br&gt;    &#123;&lt;br&gt;        result = secondValue;&lt;br&gt;    &#125;&lt;br&gt;&lt;br&gt;    return result;&lt;br&gt;&#125;&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (freehck)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#112</link>
    <pubDate>Mon, 30 Apr 2018 07:12:27 GMT</pubDate>
    <description>&amp;gt; Т.к. в жаве куча готовых библиотек, и в отличие от Node.js экосистемы &lt;br&gt;&amp;gt; они в среднем лучшего качества, так что их проще импортить в &lt;br&gt;&amp;gt; свой проект вместо копипасты.&lt;br&gt;&lt;br&gt;Ммм, как мило. Видимо, очень хотелось сказать, что для Java библиотеки лучшего качества, но язык не поворачивался. Тогда добавил &quot;в отличие от Node.js&quot; -- и ура, ура, теперь повернулся! Впрочем, кто бы сомневался. Это ж Node.js.&lt;br&gt;&lt;br&gt;У Java тем не менее проблема обычная. Библиотек переизбыток, и большинство из них кусок сами знаете чего.&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (freehck)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#111</link>
    <pubDate>Sun, 29 Apr 2018 23:39:09 GMT</pubDate>
    <description>&amp;gt;&amp;gt; Не лучше ли просто взять более высокоуровневый язык, вот в чём вопрос?&lt;br&gt;&amp;gt; И менее многословный, чем Java. Например, Haskell. :-) &lt;br&gt;&lt;br&gt;Да, пожалуй, это одна из причин, по которым OCaml я люблю больше, чем Haskell. :)&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (freehck)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#110</link>
    <pubDate>Sun, 29 Apr 2018 23:35:55 GMT</pubDate>
    <description>&amp;gt; Специально для &quot;необезьянки&quot; сообщаю, при помощи panic и recover ты можешь использовать &lt;br&gt;&amp;gt; в Go свой любимый стиль обработки ошибок всем скопом через исключения. &lt;br&gt;&amp;gt; Но среди &quot;обезьянок&quot; такой стиль считается неприемлемым из-за наличия более подходящего &lt;br&gt;&amp;gt; механизма. Поэтому твой код с исключениями и код &quot;обезьянок&quot; с возвращением &lt;br&gt;&amp;gt; ошибки будут плохо сочетаться в одном проекте.&lt;br&gt;&lt;br&gt;Я всё же думаю, что основная мысль заключается в том, что исключения действительно упрощают дело, и плюс к тому в ряде случаев приводят к ускорению работы программы.&lt;br&gt;&lt;br&gt;&amp;gt; Ну а еще &quot;необязьянке&quot; неплохо было бы освоить некоторые &quot;обезьяньи&quot; техники программирования &lt;br&gt;&amp;gt; вроде итераторов, врапперов  и кодогенераторов. А заодно при помощи бенча &lt;br&gt;&amp;gt; проверить насколько исключения &quot;ускоряют&quot; работу программы по сравнению с условиями.&lt;br&gt;&lt;br&gt;Делал бенчи на OCaml. Исключения весьма неплохо работают, если надо вернуться сразу через большое число кадров стека.&lt;br&gt;&lt;br&gt;Итераторы, врапперы, Option.t/Result.t весьма неплохо сочетаются с исключениями</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (Vkni)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#109</link>
    <pubDate>Sun, 29 Apr 2018 23:28:22 GMT</pubDate>
    <description>&amp;gt; Не лучше ли просто взять более высокоуровневый язык, вот в чём вопрос?&lt;br&gt;&lt;br&gt;И менее многословный, чем Java. Например, Haskell. :-)&lt;br&gt;</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (freehck)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#108</link>
    <pubDate>Sun, 29 Apr 2018 23:24:58 GMT</pubDate>
    <description>Ты не понимаешь, о чём говоришь. Для языков используются нейронки потому, что у живых языков правила не столь строгие. При это результат получается менее-более приемлемый для того, чтобы его мог понять человек, но уж точно далеко не идеальный.&lt;br&gt;&lt;br&gt;Что касается программирования, то строгий формализм -- это явно не удел нейронок. Нейронка тут собственно почти не причём. Сам AST формируется разработчиком и подаётся ей на вход, а уж она просто пытается угадать, какие шаблоны кода подходят к тому или иному случаю.&lt;br&gt;&lt;br&gt;То, что это работает в простых случаях -- это конечно здорово. Но если она, как и большинство нейронок, будет выбирать правильный шаблон лишь в 80&#037; случаев -- это никуда не годится при проектировании сложных систем.&lt;br&gt;&lt;br&gt;А впрочем, даже если в 99&#037; случаев она будет права, Вы представляете себе ту боль, которой обернётся дебаг оставшегося одного процента её жизнедеятельности?&lt;br&gt;&lt;br&gt;И это притом, что на вход ей всё равно нужно писать программу. На некоем языке шаблонов, но всё же программу. Не лучше ли просто</description>
</item>

<item>
    <title>Система машинного обучения для синтеза типового кода на язык... (Аноним)</title>
    <link>https://opennet.ru/openforum/vsluhforumID3/114170.html#107</link>
    <pubDate>Sun, 29 Apr 2018 06:44:13 GMT</pubDate>
    <description>&amp;gt; если вы заметили название Amazon в списке, то сообщаю вам для общего кругозора, что сия компания является крупнейшей в мире платформой розничной торговли, а также разработчиком и вендором одной из крупнейших в мире кластерных инфраструктур. так что поверьте, что в их распоряжении имеется достаточное количество высококлассных спецов, которые досканально проанализировали ТЗ и стратегию разработки, прежде чем остановить свой выбор на Джаве.&lt;br&gt;&lt;br&gt;А я Вам сообщаю, что эти высококлассные спецы сделали абсолютно неюзабельное оно, которое может только тормозить, грузить процессор и слать по 100500 запросов на каждое шевеление мышки и даже без него. У Алика и то лучше лабаз работает. Это всё, конечно, про вебню, что там в бекенде &amp;#8212; не знаю, но сомневаюсь, что сильно лучше. Только благодаря &amp;#171;одной из крупнейших в мире кластерных инфраструктур&amp;#187;, небось, и пыхтит.&lt;br&gt;</description>
</item>

</channel>
</rss>
