Динамическая компиляция математических выражений при помощи Kotlin

Вычисление математических выражений в рантайме — известная задача в научном ПО. Она решается по-разному: от создания DSL (доменно-ориентированного языка) с парсером и интерпретатором, созданными специально для этой задачи до встраивания компилятора языка программирования.

В докладе поговорим про компромиссное решение, добавленное в библиотеку KMath, использующее Kotlin DSL и собственные алгебраические абстракции, чтобы строить синтаксическое дерево математических выражений, а затем компилировать его в байт-код JVM и другие представления кода.


Ярослав Постовалов,

JetBrains Research

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

В докладе поговорим про компромиссное решение, добавленное в библиотеку KMath, использующее Kotlin DSL и собственные алгебраические абстракции, чтобы строить синтаксическое дерево математических выражений, а затем компилировать его в байт-код JVM и другие представления кода.
О докладчике
О докладчике
В 14 выучил Kotlin, чтобы писать моды к Майнкрафту. Затем писал ПО для методов Монте-Карло в составе школьной лаборатории, после чего перешел в одну из лабораторий JetBrains Research, где работаю над библиотекой KMath и некоторыми другими проектами.
Все спикеры SnowOne
Все спикеры SnowOne
Показать ещё