Исследователи из MIT предложили возможность натурального языка программирования

Сотрудники MIT в двух статья, которые они представили на ближайших конференциях, показали, что для некоторых специфических задач есть возможность создавать компьютерные программы, пользуясь обычным языком вместо специализированных языков для программирования.

С помощью результатов полученных в MIT можно помочь людям, которые незнакомы с программирование, более эффективно проводить манипуляции с обычными типами файлов, наподобие документов редактора электронных таблиц или текстового процессора. Помимо этого, предложенные методы можно применять для прочих задач программирования, расширяя контекст, в котором программисты будут иметь возможность определять функции, пользуясь обычным языком.

В работе, которую представили в июне на конференции Ассоциации компьютерной лингвистики, было показано, как на примерах, обнаруженных в сети, обучить компьютерную систему переводить описания на обычном языке в регулярные выражения.

Хотя, они в основном очень плохо согласуются с обычным языком, ученые смогли установить, что для каждого регулярного выражения можно найти эквивалент, который очень хорошо переносится на естественный язык. Более того, если применить математическую конструкцию, которая известна, как теория графов, можно представлять все эквивалентные версии регулярного выражения одновременно. То есть, система должна обучиться самому легкому для нее способу преобразования натурального языка в символы регулярных выражений – потом, самый сжатый вариант будет найден с применением теории графов.

В еще одном докладе, который был подготовлен для конференции Ассоциации в августе, было описано автоматическое обучение системы обращению с информацией, записанной в разных форматах. Система, созданная в MIT, может написать код входного синтаксического анализатора на основании спецификаций простом языке. В тестах она смогла написать работающие парсеры для около 80% спецификаций. Во всех прочих случаях, правда с затруднениями, удавалось разобраться, поменяв несколько слов в спецификации.