„Friendly rivalry worked to spur us both on”

„Friendly rivalry worked to spur us both on”
Professor Simon Thompson is a prominent researcher in the field of Functional Programming, and the author of several widely known books and of about 150 scientific articles. Since 2007 he has been collaborating with the Department of Programming Languages and Compilers of the Faculty of Informatics, Eötvös Loránd University in the field of R&D&I as well as in education. An interview.

Your connection to ELTE has its roots in the common interest in functional programming and refactoring. Competing on developing the de facto refactoring tool for Erlang shortly turned into long-lasting and fruitful cooperation. Can you highlight some significant results and fond memories of the cooperation?
Dr Zoltan Horvath's programming languages group in the Department of Informatics at ELTE are leading researchers into software refactoring. That is, the process of improving software design and resilience without changing its function: changing the how without the what, if you like. My group at Kent works in this field too, and our work overlaps on refactoring Erlang, a language developed by Ericsson to support large scale systems, originally for telecoms but now used more broadly – for example in WhatsApp. Friendly rivalry worked to spur us both on, and our work together has broadened and deepened over the years.

One particular piece of work that I remember very well was testing our tools out against each other. We did this by generating random programs and refactorings, and checking what the two tools did against each other. This way we found subtle errors ("bugs") in both tools, and so we were able to improve them both.

As a key part of our collaboration, I have been lucky enough to be able to host a series of final year masters students from your institution at Kent, working full time on substantial research projects, adding features to our systems, integrating with other commonly used software, and extending the scope of the tools from Kent (Wrangler) and ELTE (RefactorErl) tools.

Collaboration has also led to a series of visits for me to Budapest and other parts of Hungary. In particular I recall a very enjoyable summer school in Functional Programming hosted at ELTE, where I was able to give a course on refactoring to a group of highly-engaged students. The summer school was supported by the European Union, reminding me how much being members will be missed by nearly every academic in the UK, as well as much of the wider population.

Formerly, numerous ELTE students visited you in Kent, now you are a regular visitor at ELTE-FI, taking part in research activities and supervising students. What are the topics or groups you are involved in currently? What are the short-term and long-term research goals in the current activities?
As you could guess, because we build tools that modify people's programs, anyone who uses them needs to be able to trust that we don't break their software. So, our long-term goal is to re-think the basis of trust in refactorings.

This work on trust - with Dr Daniel Horpacsi who first visited Kent as a student, and is now on the staff in the Department of Programming Languages and Compilers at ELTE FI- has developed into a research project pulling in undergraduate, masters and PhD students, and linking with the University of Illinois, Urbana Champaign. We are using a combination of testing, "property-based" random testing, automated logic tools (such as the SMT solver Z3) and hand written – but machine checked – proofs to give users a range of arguments underpinning the trustworthiness of tools that modify programs.

I am really enjoying working with the wider academic community in the department too: the RefactorErl team, the type theorists, and the C++ tool builders. It's an stimulating and friendly environment, and I am very much looking forward to getting back to Budapest in person, rather than on Teams!, to see colleagues and friends again.

I must conclude by thanking Zoltan Horváth. I value his friendship and support very highly: without his efforts we would not have the thriving partnership that now exists. Thanks very much.