Аннотация:
Часто при разработке сложных программных систем используется более чем один язык программирования. В таком случае принято говорить об основном (или исходном) языке и одном или нескольких встроенных языках. Из строковых выражений основного языка динамически формируются программы на отличном от него языке, которые потом интерпретируются специальными, работающими во время исполнения компонентами, такими как базы данных или веб-браузеры. Большинство языков программирования общего назначения могут играть роль как основного, так и встроенного языка. Самый яркий пример реализации такого подхода — динамический SQL, специфицированный в стандарте ISO SQL и поддерживаемый большинством СУБД.
Автодополнение и подсветка синтаксиса — стандартная для интерактивных сред разработки функциональность — значительно упрощают процесс разработки с использованием встроенных языков. Существует несколько инструментов, предоставляющих функциональность интегрированных сред разработки для встроенных языков, но они в основном поддерживают только один конкретный встроенный язык, и поддержка другого языка требует нетривиального ручного вмешательства. Мы продемонстрируем разрабатываемую платформу, позволяющую создавать инструменты для статического анализа динамически формируемых выражений.