Динамическая компиляция математических выражений при помощи Kotlin
Ярослав Постовалов,
JetBrains Research
Вычисление математических выражений в рантайме — известная задача в научном ПО. Она решается по-разному: от создания DSL (доменно-ориентированного языка) с парсером и интерпретатором, созданными специально для этой задачи до встраивания компилятора языка программирования.
В докладе поговорим про компромиссное решение, добавленное в библиотеку KMath, использующее Kotlin DSL и собственные алгебраические абстракции, чтобы строить синтаксическое дерево математических выражений, а затем компилировать его в байт-код JVM и другие представления кода.