# "Errors are everywhere"

Can computer programs be used to understand other programs and find errors? Professor Laura Kovacs is combining logic with informatics. She has been awarded an ERC grant and the prestigious Wallenberg Prize.

We are constantly relying on computer programs - whether we are surfing the Internet with our mobile phone, using our car's on-board electronics or even riding in a lift. At the same time, we are well aware that programs are repeatedly prone to error. As laypeople, it is hardly ever possible for us to just take a look to identify any potential undesired behaviour of a computer program. But why shouldn't analysis tasks like these be automated, like so much else is?

The computer scientist, Laura Kovacs, is a professor at the Chalmers University in Gothenburg and at TU Wien. She is investigating how we can use computer algorithms to analyse, abstract and ultimately improve other computer algorithms. To do this, she is combining mathematical and logical methodology.

## The computer program as a formula

"In an initial step, the computer code is translated into the language of logic," explains Laura Kovacs. The program is converted into a formula, whose properties can then be automatically examined by the computer. For example, one property of the program could be how the value of the variable changes over time. The computer can potentially recognise that certain variables only ever have positive values.

"Suppose a computer is investigating a program that calculates the numbers in the Fibonacci sequence," says Laura Kovacs. "The numbers in the Fibonacci sequence increase according to certain mathematical laws, and it is this increase that the computer is able to recognise automatically."

If two people write programs independently of each other that can result in a Fibonacci sequence, the lines of program code could look completely different - but when you investigate the properties of an abstracted version of the program, you can see that both programs display very similar behaviour.

This enables us to establish the purpose and operating principle of program codes. And that is how we can also avoid errors. "Time and time again, a program accesses repositories that don't exist, which often causes the program to crash," says Laura Kovacs. "Our methods make it possible to also specify which repositories can be accessed in the first place by the program code - that is also a property of the code that can be calculated." Laura Kovacs is also working with Microsoft Research in this field. Logic methods in informatics play a key role in today's software industry.

## International career and prestigious awards

Kovacs has recently received two highly-prized awards: a Starting Grant from the European Research Council (ERC) and the research award from the Wallenberg Foundation. She now has around three million euros at her disposal to increase the size of her team.

Laura Kovacs is Hungarian and was born in Timisoara in Romania, where she also completed her studies. She then moved to Austria for her dissertation and studied for her doctorate at the RISC at JKU Linz. She subsequently took up post-doctoral positions in Lausanne and at ETH Zurich before coming to TU Wien as a Hertha Finberg scholar. She is currently a professor at the Chalmers University in Gothenburg, but also has a part-time position at TU Wien, where she continues to support students.

As well as her huge scientific achievements, Laura Kovacs also enjoyed a very happy personal achievement last year with the birth of her daughter in the summer of 2014. "Work-life balance is good in Sweden," stresses Kovacs. "Everything works very well such that, ultimately, neither my academic work nor my daughter loses out. Austria has a lot to learn from the Swedish system."