I am currently a PhD student at Centrum Wiskunde & Informatica, located at
Science Park 123, 1098 XG, Amsterdam, The Netherlands
You can find my complete CV here.
I am interested in various aspects of developing programming languages and their tool support: parsing,
interpreters, compilers, language semantics, refactoring. Since March 2011, I have been working in the Software Analysis and Transformation (SWAT) group at Centrum Wiskunde & Informatica (CWI).
Iguana parsing framework: I am one of the main developers and currently mostly working on the Iguana parsing framework. Iguana is a general parsing framework that supports data-dependent grammars. Iguana is a research project with a number of recent publications. Iguana has a number of distinct features, making it different from other parsing tools. Iguana is based on faster GLL parsing and supports the core data-dependent features, such as parameterized nonterminals, expressions, variable binding, and constraints. In addition, it provides out-of-the-box high-level disambiguation constructs and enables user-defined ones. So far, we have mostly been using Iguana to validate our research results. However, our goal is to make Iguana a practical parsing framework with proper tool support. We are currently focused on achieving this!
Meerkat library: I am one of the main developers of a parser combinator library in Scala for parsing real programming languages. Our Meerkat library supports all context-free grammars, which implies support for left recursion and runtime performance guarantees. Meerkat does not rely on a traditional-sense general parsing algorithm such as Earley, GLR or GLL. Instead, its functional formulation provides a direct embedding into the host language, where a parser is a normal function. While developing the Meerkat library, we used our insights and experiences with Iguana, for example, to implement a declarative operator precedence for parser combinators.
Rascal compiler: I am one of the main developers of the Rascal compiler. Rascal is a language for metaprogramming, which has been developed in the SWAT group at CWI and has its root in the ASF+SDF Meta Environment. Rascal is an impure functional programming language with pattern matching as one of the central concepts. Rascal supports both concrete and abstract pattern matching, also allowing backtracking and deep matching. More forms of patterns are planned in the future. Almost each feature in Rascal interacts with pattern matching. Maintaining and evolving implementation of such a language is not easy. To manage the complexity of Rascal and its implementation, we implemented two intermediate languages in the Rascal compiler. One of them is a small high-level intermediate language, muRascal, with coroutines as a central feature. In particular, the use of muRascal let us achieve compositional compilation of pattern matching.
During my first year as a PhD student, I was working on an approach to extensible implementation of refactoring. This relates to cases when a new language feature is added to a language, e.g., extending Java with generics, and when the existing implementation of all refactoring has to be extended to accommodate this change. To achieve this kind of extensibility, we used a monadic approach, well-known in modular language semantics and modular interpreters. As a case study, we took an existing, constraint-based approach to refactoring, implemented some common Java refactoring in a monadic style, and then extended their implementation for Java with generics.
As part of SWAT team, I am also a contributor to the Rascal interpreter.
Ali Afroozeh and Anastasia Izmaylova. Iguana: A Practical Data-dependent Parsing Framework. Accepted for publication to Conference on Compiler Construction (CC) 2016.
Ali Afroozeh and Anastasia Izmaylova. Operator Precedence for Data-Dependent Grammars. Accepted for publication to Symposium on Partial Evaluation and Program Manipulation (PEPM) 2016. PDF
Anastasia Izmaylova, Ali Afroozeh, Tijs van der Storm. Practical, General Parser Combinators. Accepted for publication to Symposium on Partial Evaluation and Program Manipulation (PEPM) 2016. PDF
Ali Afroozeh and Anastasia Izmaylova. One Parser to Rule Them All. In Proceedings of the 2015 ACM International Symposium on New Ideas, New Paradigms, and Reflections on Programming & Software (Onward!), SPLASH'15, pages 151-170. ACM, 2015. PDF
Ali Afroozeh and Anastasia Izmaylova. Faster, Practical GLL Parsing. In Compiler Construction (CC), 24th International Conference, LNCS 9031, pages 89-108. Springer, 2015. PDF
Miguel Garcia, Anastasia Izmaylova and Sibylle Schupp. Extending Scala with Database Query Capability. In the Journal of Object Technology, July 2010. PDF
Stamatis Karnouskos and Anastasia Izmaylova. Simulation of Web Service Enabled Smart Meters in an Event-Based Infrastructure. SAP Research, Karlsruhe, Germany. In INDIN'09: Proceedings of the 7th IEEE International Conference on Industrial Informatics, pages 125-130, UK, 2009. PDF
SUBMITTED DRAFTS AND TECHNICAL REPORTS:
Anastasia Izmaylova and Paul Klint. Using Coroutines for Modular Compilation of Pattern Matching. Under review.
Miguel Garcia and Anastasia Izmaylova. Compiling LINQ and a Scala subset into SQL: 1999. Technical report, Institute for Software Systems, Hamburg University of Technology, Germany, Sep. 2009.
Anastasia Izmaylova. Program Transformation in the Scala programming language. Master thesis, Hamburg University of Technology, Germany, Institute for Software Systems, October 2009.
Anastasia Izmaylova. Calculation and realization of three dimensionally curved mechanical trajectories of an unmanned vehicle. Dipl.-Eng. thesis, Bauman Moscow State Technical University, Russia, Department of Mathematical Modelling, July 2009.
Presenter at Onward! 2015, SPLASH 2015, Pittsburgh, USA. One Parser to Rule Them All. Slides.
Speaker at Parsing@SLE 2015, co-located with SPLASH 2015, Pittsburgh, USA. Operator Precedence for Parser Combinators.
Speaker at ScalaDays 2015, Amsterdam, The Netherlands. Meerkat parsers: a general parser combinator library for real programming languages (with Ali Afroozeh).
Slides and Video.
Speaker at Parsing@SLE 2014, co-located with ASE 2014, Sweden.