Исследователи Массачусетского технологического института (MIT) предприняли ряд шагов по созданию языков программирования, умеющих «самодописывать» код.

Одним из примеров является язык программирования Sketch, который разработал Армандо Солар-Лезама, адъюнкт-профессор MIT из Отделения электротехники и вычислительных систем. Sketch автоматически заполняет определенные пробелы, оставленные программистом в своем коде.

Несколько иной подход представил в декабре другой исследователь MIT. Профессор в области технологий программирования Адам Члипала описал новый язык программирования под названием Ur/Web, позволяющий разрабатывать веб-приложения как исполняемые программы.

Компилятор языка Ur/Web сам генерирует требуемые спецификации XML, таблицы стилей, JavaScript и код баз данных, освобождая разработчика от хлопот по отслеживанию того, как эти элементы взаимодействуют и обмениваются данными.

По словам Члипалы, Ur/Web не только облегчает написание веб-приложений, но и делает их более безопасными. «Допустим, вы хотите поместить на свою веб-страницу календарный виджет и собираетесь использовать соответствующую библиотеку, а на этой странице также присутствует рекламный блок на базе кода, предоставленного рекламной сетью. Но вы совершенно не хотите, чтобы рекламная сеть изменяла работу календаря или, наоборот, календарный код как-то влиял на отображение рекламы», — говорит Члипала.

По его словам, Ur/Web аналогично развитым языкам программирования типа C++ или Java преодолевает слабости многих фреймворков для веб-разработки, так как любая определяемая программистом новая переменная ограничена конкретным типом данных.

«Вам может понадобиться написать библиотеку, содержащую внутри себя в скрытом состоянии таблицу базы данных, где записаны имена пользователей и пароли, — говорит Члипала. — И надо исключить, чтобы любая другая часть вашего приложения могла бы читать и перезаписывать пароли. Такую возможность большинство веб-фреймворков не поддерживают. Они предполагают, что любая часть вашей программы имеет полный доступ к базе данных».

В нынешней версии, добавил Члипала, компилятор Ur/Web автоматически генерирует код XML, JavaScript и SQL, но пока еще не создает таблицы стилей.