Eduard Kamburjan

Research leader

 

Project title

Graph-based Verification of Reflective Programs

What is your project about?

Reflection is a technique that allows software to reason about its own structure and behavior. Writing such programs is a bit like giving instructions while looking in a mirror and is notoriously hard to get right. There are good theoretical reasons why programmers struggle with reflection and why there are no tools to support developers. At the same time, reflection is used in many software applications, so it is important to get it right. This project will overcome the theoretical challenges by identifying reflection patterns in real-world code and by applying ideas from knowledge graphs. In the end, we will support programmers in using reflection by providing logic-based tools to help them write more reliable software.

How did you become interested in your particular field of research?

Studying languages is something I care about, and programming languages are how developers communicate, not only with computers but also with one another. During my doctoral studies, I became interested in how humans express their thoughts and intentions in programs, and how this shapes the languages that we use for programming and documentation. It is a fascinating area where we can actively influence how languages are used with our research. Verification plays an interesting role here: It offers a way to compare different ways to express our intentions in different languages and helps to ensure that a program indeed does what we meant.

What are the scientific challenges and perspectives in your project?

Striking a balance between covering all theoretical possibilities and providing efficient support for practical use cases is always a delicate matter. 

To find this balance, the project will empirically study real-world code, an approach that is rarely used for logic-based tools, but has been very successful in other areas. In the long run, refining the balance between theory and practice should allow us to provide even more support and automation to developers and make their work significantly easier.

What is your estimate of the impact, which your project may have to society in the long term?

Digitization is advancing in all aspects of our lives, and we need to have reliable software to avoid costly errors. This includes not only software used in our public services, but also the software developed by researchers in academia and industry to process large datasets or drive AI applications. The software tools used in such applications heavily rely on reflection, and this project makes them more reliable. Reliability is not only about avoiding errors: IT projects frequently fail or exceed their budgets. The support we will develop will help manage the risks involved in IT projects.

Which impact do you expect the Sapere Aude programme will have on your career as a researcher?

I am honored to receive such a prestigious award. The Sapere Aude: DFF-Research Leader-grant will enable me to build a research team around my research interests, and I also hope to use this opportunity to support the next generation of young scientists by contributing to the collaborative environment I’ve been fortunate to be part of in my community.

Background and personal life

I’m a naturally curious person who loves exploring new things, especially restaurants, cafés, theaters, and music. There’s no shortage of all those things in beautiful Copenhagen, a city I really enjoy living in, even though I don’t like cycling. My biggest passions are literature, traveling and cooking, and I have a soft spot for animals.