Система Wyvern - множество языков программирования в одной программе | Наука 21 век

Наука 21 век » Система Wyvern - множество языков программирования в одной программе





Система Wyvern - множество языков программирования в одной программе

Август 12th, 2014

Система Wyvern - множество языков программирования в одной программеСети были бы намного более безопасными, если бы не было уязвимостей, связанных с обычными практиками кодирования: связанные строчки команд баз данных, используемые обычно либо для запросов SQL, либо для пользовательских взаимодействий с помощью JavaScript, могут использоваться со злым умыслом. Специалисты в области компьютерных наук из Университета Карнеги — Меллон (США) разрабатывают язык программирования, который лучше всего подходит для зашиты компьютеров и веб-сайтов от подобных угроз.

Система Wyvern - множество языков программирования в одной программе

Wyvern (именно так был назван этот язык) является, скорее, метаязыком. Он позволяет программистам создавать веб-страницы и приложения с помощью множества языков программирования и шифрования, таких как SQL запросов по базам данных или HTML, CSS и JavaScript для создания веб-страниц. Особенность заключается в том, что каждый язык работает так, как он и должен работать, и для использования множества языков не требуется дополнительных необычных и потенциально уязвимых обходных решений.

Использование множества языков необходимо при размещении контента на веб-сайтах. Словесные выражения и образы, которые видит пользователь, закодированы на языке HTML или CSS, генерируются на ходу при помощи запросов PHP или возникают как файлы, скачанные непосредственно с сервера. Однако ссылки, которые генерируются строкой поиска при печати, и мгновенная загрузка страницы, часто возникающая при перемещении по многостраничным статьям, возможны лишь благодаря JavaScript (обычно в совокупности с Lua, PHP и/или Python). К тому же, если вам необходимо переместиться на страницу вашего счета или, к примеру, купить что-нибудь в интернет-магазине, скорее всего, вы будете использовать SQL запрос. 

Решение проблем с безопасностью, связанных с комплексным использованием и переводом кода, которые неизбежны при этих сложных запросах, требует внимательности и длительного тестирования, однако специальный язык, такой как Wyvern, может помочь в этом деле. Язык распознает и идентифицирует эти субъязыки по контексту и обрабатывает объекты и данные соответственно как литералы (константы) определенного типа и определенного языка, связанного с типом литерала. К примеру, литерал запроса SQL будет обрабатываться кодом SQL, а не как строка текста, которая должна быть проанализирована специальной функцией. 

«Wyvern напоминает опытного дипломата, который легко переходит на разные языки для того, чтобы организовать работу разных людей, - говорит доцент Джонатан Алдрич (Jonathan Aldrich). – Он чрезвычайно эффективен, таким образом, и наш подход может оказать весьма заметное влияние на создание систем программного обеспечения».

Wyvern не единственный проект, связанный с метапрограммированием и анализом кода на разных языках, есть другие проекты, такие как ProteaJ, Scheme, OJ, и Spoofax, которые подходят к решению проблемы под другим углом. Вместе с тем, разработчики Wyvern предполагают, что их язык обладает наибольшей выразительной возможностью и сочетаемостью с другими языками, что позволяет использовать множество языков более или менее свободно. 

Язык, однако, пока не готов к внедрению: Wyvern на данном этапе можно применять лишь для базового уровня, поскольку многие функции пока не разработаны или не действуют. 

Иван Штепа nauka21vek.ru