В Массачусетском технологическом институте разрабатывают язык программирования Sketch, позволяющий при реализации некоторой функциональности только указывать условие задачи, а код для ее решения генерируется автоматически. Авторы Sketch называют этот процесс «синтезом программ».
![]() |
Источник: Christine Daniloff/MIT |
Со временем, когда Sketch доработают и сделают более дружественным к пользователю, он сможет облегчить труд программистов, а пока язык используется в основе других инструментов. В частности, на основе Sketch создали систему автоматического выставления оценок за выполнение учебных заданий по программированию, систему преобразования в код нарисованных от руки блок-схем и транслятор кода на Java в SQL-запросы.
Недавно разработчики Sketch сообщили об усовершенствовании, благодаря которому язык стал гораздо эффективнее справляться со сложными задачами синтеза кода. В частности, в случаях, когда система автоматического оценивания «зависала», с новой версией Sketch она выставляет оценки мгновенно.
Авторы признают, что понадобится еще немало труда, чтобы Sketch cмогли пользоваться разработчики коммерческого программного обеспечения; пока что, если вы не знаете внутренних особенностей системы, трудно составить условие задачи так, чтобы код генерировался быстро и был высокоэффективным.