`

СПЕЦІАЛЬНІ
ПАРТНЕРИ
ПРОЕКТУ

Чи використовує ваша компанія ChatGPT в роботі?

BEST CIO

Определение наиболее профессиональных ИТ-управленцев, лидеров и экспертов в своих отраслях

Человек года

Кто внес наибольший вклад в развитие украинского ИТ-рынка.

Продукт года

Награды «Продукт года» еженедельника «Компьютерное обозрение» за наиболее выдающиеся ИТ-товары

 

Sketch синтезирует ПО по указаниям программиста

0 
 

Со времен своей аспирантуры Армандо Солар-Лезама (Solar-Lezama), ныне адъюнкт-профессор факультета электро- и вычислительной техники Массачуссетского технологического института (MIT), работал над языком программирования под названием Sketch, призванным избавить авторов от излишней тщательности при написании программ. Предполагается, что Sketch будет автоматически заполнять пропуски в черновой версии кода, превращая его в полноценную программу.

В конечном итоге Sketch призван облегчить жизнь разработчикам ПО, но пока что его алгоритмы доказывают свою ценность в составе инструментов для синтеза или автоматического генерирования программ. В одном из недавних проектов лаборатории MIT CSAIL (Science and Artificial Intelligence Laboratory) на базе Sketch построена система автоматического составления экзаменационных задач для классов информатики, в другом — утилита, преобразующая код Java в запросы SQL, в третьем — средство трансформации в программы нарисованных от руки диаграм.

На состоявшейся в этом году конференции, Солар-Лезама вместе со своими студентами рассказал об усовершенствовании Sketch, которое позволяет гораздо более эффективно решать задачи сложного программного синтеза. Авторы тестировали новую версию языка на нескольких существующих приложениях, включая упомянутую выше систему составления экзаменационных задач. В случаях, когда предыдущая версия «зависала» или думала слишком долго, новая была способна выдавать код за миллисекунды.

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

В новой статье, исследователи предложили способ сужения этой области поиска. Разумеется, чуда не происходит, и выигрыш в производительности автоматического синтеза ПО достигается за счет более детального определения задачи самим программистом на языке высокого уровня. Выполняемые сегменты кода (функции) заменяются моделями, удовлетворяющими упрощенным требованиям к этим функциям со стороны основной программы. Так, например, вместо отнимающей довольно много вычислительных ресурсов проверки правильности функционирования низкоуровневого кода извлечения квадратного корня, можно всего лишь контролировать соблюдение критерия: возвращаемое значение, перемноженное на себя должно равняться входному.

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

«Все же, для достижения цели требуется опыт работы и некоторое понимание того, как действует эта технология, — признает Солар-Лезама. — Предстоит еще хорошо поработать, прежде чем все поголовно захотят отказаться от С и перейти на Sketch».

Ready, set, buy! Посібник для початківців - як придбати Copilot для Microsoft 365

0 
 

Напечатать Отправить другу

Читайте также

 

Ukraine

 

  •  Home  •  Ринок  •  IТ-директор  •  CloudComputing  •  Hard  •  Soft  •  Мережі  •  Безпека  •  Наука  •  IoT