Preview

Труды Института системного программирования РАН

Расширенный поиск

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



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)