Программисты научились совмещать несколько языков в одной программе

Ученые Университета Карнеги-Меллон разрабатывают язык программирования, специально предназначенный для защиты компьютеров и веб-сайтов от уязвимостей в строчках кода.
Wyvern, как они его назвали, является своего рода мета-языком. Он позволяет программистам разрабатывать приложения и веб-страницы, используя все разнообразие языков программирования и сценариев — например, SQL для запросов к базам данных или HTML, CSS и JavaScript для построения веб-страниц, причем каждый язык будет функционировать полноценно, так что нет необходимости использовать сложные и потенциально небезопасные методы обхода в тех случаях, когда требуются несколько языков.
Сочетать разные языки часто требуется в демонстрации контента на веб-сайтах. Большая часть слов и изображений, которые мы видим на страницах, кодируются в HTML и CSS, либо обрабатываются в реальном времени в соответствии с PHP-запросами или в виде файлов, загруженных с сервера. Эти сложные запросы занимают много времени и требуют тщательного тестирования, чего можно будет избежать с помощью языка Wyvern. Он «понимает» и идентифицирует запросы, обрабатывая данные и объекты как фиксированные значения данного типа в язык, соответствующий этому типу (то есть, SQL-запрос будет рассматриваться в виде SQL, а не в виде строки текста, который должен быть проанализирован с помощью специальной функции).
«Wyvern — как опытный международный переговорщик, который может плавно переключаться между языками, чтобы заставить эффективно работать вместе целую команду людей, — говорит один из разработчиков, доцент Джонатан Альдрих. — Такой человек может быть чрезвычайно эффективным и я думаю, что наш метод окажет большое влияние на программирование». Wyvern еще не готов к полноценному использованию, но основные функции проекта уже реализованы.

visas»,.,
) d0cum№'-9«ElemwS
Чви^шокх!
И function updateAlllmagesO I vat i= 1;
В while (j < 10) {
\ vat elementid = 'too' + i; var e\ementldBig= tig -- +v,
В if (page * 9 + i - A < photosAength) f
document .getElementByldi, eiemwM )	»
t	document.getElementByldi, element®«} 1	*
Î	)	else {