Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Разработка производительного пользовательского ...

CEE-SECR
October 21, 2017

Разработка производительного пользовательского DSL для анализа временных рядов, Алексей Семин, Devexperts, CEE-SECR 2017

О том, как сделать производительный DSL для пользователей, готовый к интеграции. О том, какие технологии делают приятной разработку компилятора, который делает приятной работу с DSL.

CEE-SECR

October 21, 2017
Tweet

More Decks by CEE-SECR

Other Decks in Technology

Transcript

  1. причины использования DSL подхода • громоздкий API или UI •

    сериализация • использование конечными пользователями 3
  2. безопасность • отсутствие Тьюринг-полноты ◦ запрещена рекурсия ◦ отсутствие явных

    циклов • конечная память ◦ конечный размер окна данных 9 dxScript
  3. производительность • компиляция в JVM байткод c помощью ASM •

    снижение нагрузки на garbage collector (GC) • оптимизации кода ◦ constant folding ◦ dead code elimination ◦ common subexpression elimination 11