My main research interests lie in the intersection of programming languages and software engineering. From the start of my career, a primary research interest has been the formal syntax and semantics of programming languages. There are several benefits of formal specification of programming languages, such as: the meaning of a program is precisely and unambiguously defined, and formal specifications offer a unique possibility for automatic generation of compilers or interpreters.
My latest research focuses on the design and implementation of domain-specific languages and grammar-based systems. I have a strong interest in promoting software engineering benefits through programming language design. Ideally, a programming language should provide the right level of abstraction, meaning that it describes solutions naturally and hides unnecessary details; it should be expressive enough in the problem domain; it should provide guarantees on properties critical for the problem domain; it should also have precise semantics to enable formal reasoning about a program.
The importance of grammars for programming language development is tremendeous. However, there are many other application areas for grammars beyond the traditional area of languages. Grammars can be found in many other applications, such as: information theory, evolutionary computation, neural networks, software engineering, and even in areas outside computer science (e.g., organizational science and mechanical engineering). The impact of grammar-based solutions across multiple areas has just recently become a topic of interest to many researchers in programming languages and software engineering.
Recently, I have been involved into research of nature-inspired meta-heuristics. I am investigating how different meta-heuristics perform the search, as well as comparison and ranking of meta-heuristics.
Major Research Topics
- Concepts and Implementation of Programming Languages
- Formal Language Definition, Attribute Grammars
- Compiler Generators
- Domain Specific Languages
- Grammar-based Systems
- Grammatical Inference