Graduated in 2015 from the St. Petersburg State University, Mathematics and Mechanics Faculty, Software Engineering Department.
Currently a PhD student at the St. Petersburg State University.
I am currently working on program transformations for the relational programming language miniKanren; developing a generic programming framework for dealing with terms and applying parsing for the Context-Free Path Querying problem.
Syntax Errors Detection in Dynamically Generated Code, a bachelor's thesis by Rustam Azimov. Defended at the Software Engineering Department, SPbU in 2016.
Proceedings of the 9th ACM SIGPLAN International Symposium on Scala, September 2018
Transparent integration of a domain-specific language for specification of context-free path queries (CFPQs) into a general-purpose programming language as well as static checking of errors in queries may greatly simplify the development of applications using CFPQs. LINQ and ORM can be used for the integration, but they have issues with flexibility: query decomposition and reusing of subqueries are a challenge. Adaptation of parser combinators technique for paths querying may solve these problems. Conventional parser combinators process linear input, and only the Trails library is known to apply this technique for path querying. We demonstrate that it is possible to create general parser combinators for CFPQ which support arbitrary context-free grammars and arbitrary input graphs. We implement a library of such parser combinators and show that it is applicable for realistic tasks.
Perspectives of System Informatics, June 2016
We present a technique for syntax analysis of a regular set of input strings. This problem is relevant for the analysis of string-embedded languages when a host program generates clauses of embedded language at run time. Our technique is based on a generalization of RNGLR algorithm, which, inherently, allows us to construct a finite representation of parse forest for regularly approximated set of input strings. This representation can be further utilized for semantic analysis and transformations in the context of reengineering, code maintenance, program understanding etc. The approach in question implements relaxed parsing: non-recognized strings in approximation set are ignored with no error detection.
Programming Languages and Tools Lab Researcher
- Functional and Relational Programming