TQL: тематическое исследование внедрения предметно-ориентированного языка в продукт
https://doi.org/10.15514/ISPRAS-2024-36(2)-2
Аннотация
Предметно-ориентированные языки используются во многих современных приложениях и программных библиотеках, среди них: Wolfram Alpha, Microsoft Excel, Graphviz. Данная работа описывает опыт, полученный при разработке TQL (Talisman Query Language) – предметно-ориентированного языка, используемого в платформе Talisman. Платформа Talisman – набор инструментов для автоматизации задач обработки данных, разработанный институтом системного программирования РАН. Реализация TQL, описанная в данной статье, поддерживает восстановление после ошибок, может запущена как в браузере, так и на сервере, и имеет интерактивную среду, позволяющую визуализировать дерево разбора во время печати. Данная статья описывает подходы и технологии, которые сделали данные качества возможными при единой, поддерживаемой кодовой базе.
Об авторе
Артём Дмитриевич БЕЛОУСОВРоссия
Cтарший лаборант, студент Высшей школы экономики. Сфера научных интересов: конструирование компиляторов и облачные вычисления.
Список литературы
1. M. Fowler and R. Parsons, Domain-Specific Languages. Boston, MA: Addison-Wesley Educational, 2009.
2. “TALISMAN – tracking and learning insights from social media analysis,” Ispras.ru. [Online]. Available: https://talisman.ispras.ru/. [Accessed: 13-May-2024].
3. M. Karpov, “megaparsec: Industrial-strength monadic parser combinator library.” [Online]. Available: https://github.com/mrkkrp/megaparsec. [Accessed: 31-Mar-2024].
4. J. Barretto, “chumsky: Write expressive, high-performance parsers with ease.” [Online]. Available: https://github.com/zesterer/chumsky. [Accessed: 31-Mar-2024].
5. “Language Server Protocol Specification,” Github.io. [Online]. Available: https://microsoft.github.io/language-serverprotocol/specifications/lsp/3.17/specification/. [Accessed: 31-Mar-2024].
6. C. Donnelly and R. Stallman, Bison. Samurai Media Limited, 2015.
7. A. Kladov, “Challenging LR parsing,” rustanalyzer, 16-Sep-2020. [Online]. Available: https://rustanalyzer.github.io/blog/2020/09/16/challeging-LR-parsing.html. [Accessed: 12-May-2024].
8. T. Parr, Definitive ANTLR 4 Reference, 2nd ed. Raleigh, NC: Pragmatic Programmers, 2013
9. S. Efftinge and M. Spoenemann, “Xtext - Language Engineering Made Easy!,” Eclipse.dev. [Online]. Available: https://eclipse.dev/Xtext/. [Accessed: 12-May-2024].
10. “GraphQL,” Graphql.org, 26-Oct-2021. [Online]. Available: https://spec.graphql.org/October2021/. [Accessed: 02-Jul-2024].
11. “rust-analyzer: A Rust compiler front-end for IDEs.” [Online]. Available: https://github.com/rust-lang/rust-analyzer. [Accessed: 31-Mar-2024].
12. “Introducing ungrammar,” Github.io, 24-Oct-2020. [Online]. Available: https://rust-analyzer.github.io//blog/2020/10/24/introducing-ungrammar.html. [Accessed: 02-Jul-2024].
Рецензия
Для цитирования:
БЕЛОУСОВ А.Д. TQL: тематическое исследование внедрения предметно-ориентированного языка в продукт. Труды Института системного программирования РАН. 2024;36(2):21-32. https://doi.org/10.15514/ISPRAS-2024-36(2)-2
For citation:
BELOUSOV A.D. TQL: a Case Study of Integrating DSL in a Product. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2024;36(2):21-32. https://doi.org/10.15514/ISPRAS-2024-36(2)-2