Celebrating ACM Fellow Mira Mezini: Advancing Programming Languages for the Next Era of Computing
By Adriana Wilde
This month, we are delighted to spotlight Professor Mira Mezini, ACM Fellow (2024) and Professor of Computer Science at TU Darmstadt (TUDa), where she leads the Software Technology Lab. Honoured for her pioneering work in programming languages and software analysis—with applications in distributed systems, cybersecurity, and artificial intelligence—and for her contributions to learning-based code completion, her Fellowship offers a fitting moment to reflect on the evolution of programming languages, their growing intersection with AI, and the future of software engineering through her expert lens.

Your ACM Fellow recognition celebrates your work in programming languages and software analysis. What first inspired you to pursue this area, and how do you see its evolution in the coming years?
It was a serendipitous path: aiming to work on algorithms, a prospective advisor nudged an exploration of visual programming, which in turn led me to Smalltalk and the reflective systems that captivated my attention, launching a career in programming language design and program analysis. My research on PL (Programming Language) design has cemented a conviction: while computer science automates the world, programming languages automate computer science by encapsulating powerful mechanisms – distributed protocols, security, automatic differentiation – behind accessible abstractions. Smalltalk also influenced my view that language design and software analysis are inseparable complements.
Looking ahead, I believe the center of gravity will shift toward the intersection of programming languages, software engineering, and AI. Generative AI is raising the interface of programming closer to natural language, while simultaneously reinforcing—rather than erasing—the need for creativity, judgment, and rigorous engineering. We may be entering an era of “requirements as code.” I anticipate the rise of domain-specific, semi-natural languages that allow experts to express requirements directly, supported by AI systems that translate high-level intent into reliable implementations. This evolution enables requirements specified by domain experts to map almost directly into code.
Does this mean we will need fewer software engineers? Quite the opposite. As code generation accelerates, the premium will only increase on ensuring that translation from intent to code guarantees correctness, security, maintainability, and sound abstractions. Moreover, because AI systems are massive software artefacts, advancing and safeguarding them will demand deep expertise in programming languages and software engineering. The net outcome is clear: more software, more domains, and an even greater need for strong foundations coupled with practical impact.
Your research has applications in distributed systems, cybersecurity, and AI. In which of these areas would you say programming language innovations have made a transformative difference?
Programming language innovations have made genuinely transformative impacts, particularly in distributed systems and artificial intelligence. In distributed computing, functional programming concepts directly inspired paradigms like map-reduce, which revolutionized how large-scale data is processed. This influence extends to modern platforms like Spark and Flink, where advanced programming language techniques — type systems, APIs, declarative abstractions — enable scalable, fault-tolerant, and expressive distributed applications. In the AI arena, programming languages have enabled a radical shift through the advent of differentiable programming. This approach allows developers to write AI models as ordinary programs where gradients can be computed automatically, dramatically lowering barriers for machine learning development and opening doors for rapid model prototyping and optimization. This innovation has unified traditional programming and learning, powering contemporary breakthroughs in neural networks and deep learning. But also, cybersecurity has clearly benefited from formal methods and safer language constructs.
You have also contributed to learning-based code completion, a topic that has become even more relevant with the rise of AI-powered developer tools. How do you see these technologies shaping the role of the software developer?
LLM-empowered code completion tools are expected to transform how software is written, promising higher productivity for software developers. But we still lack systematic, long-term studies providing scientific evidence of increased developer productivity. What we know is that LLM-empowered code completion tools rely on resource-hungry AI and bring significant challenges regarding correctness. LLM-generated code often contains errors and security vulnerabilities, with studies showing that nearly half of such code can be unsafe or buggy, potentially requiring developers to spend more time on verification than on coding itself. These tools also suffer from hallucinations, generating code or APIs that do not exist, and can incur substantial energy and memory costs, especially at scale. My early work on intelligent code completion was based on classical ML techniques (e.g., clustering) and was built on high-quality code to learn from. As a result, it did not face these challenges.
To wrap up, secure, trustworthy, and less resource-hungry AI assistance for software engineering tasks remains a work in progress, and a careful balance of automation and rigorous validation is needed for real impact, thus reinforcing the need for creativity, judgment, and rigorous engineering. As code generation accelerates, the premium will only increase on ensuring correctness, security, maintainability, and sound abstractions. Moreover, because AI systems themselves are massive software artefacts, advancing and safeguarding them will demand deep expertise in programming languages and software engineering. The net outcome is clear: more software, more domains, and an even greater need for strong foundations coupled with practical impact.
Under your leadership, TU Darmstadt has become a strong hub for computer science research. How has your environment supported interdisciplinary collaborations and innovation?
TU Darmstadt has indeed earned its reputation as a hub for computer science research. While I’ve significantly contributed to this success, it is fundamentally the result of collaborative team efforts rather than individual leadership. The computer science department is especially strong in promoting interdisciplinary collaborations — connecting programming languages and software engineering with cybersecurity, distributed systems, and AI. Crucially, major collaborative research centers such as CROSSING and MAKI, supported by the German Research Foundation (DFG), the research center emergenCity supported by the state of Hesse, and joint initiatives like, hessian.AI and the ATHENE Center for Cybersecurity — funded jointly by the state of Hesse and the federal government — create fertile ground where diverse teams come together to tackle complex problems, spark innovation, and drive impactful scientific progress. This collective environment values openness, shared infrastructure, and cross-disciplinary dialogue, making TU Darmstadt an ideal place for world-class research and innovation in computer science.
Mentorship is an important part of your career. What strategies have you found most effective in supporting and inspiring students, especially women and underrepresented groups in computing?
A key element of my mentorship strategy is to give new students early, structured entry points into ongoing projects so they can earn quick wins, build confidence, and see how research fits together. I find near‑peer tandems, pairing junior with senior students, while keeping myself continuously in the loop, especially effective: they offer orientation at the start of a research journey and create a supportive learning loop where juniors absorb research habits “on the job” and seniors develop leadership skills. To make these tandems work, the team need to set clear expectations, inclusive norms, and transparent credit/authorship practices to ensure safety and fairness. I stay personally involved in order to model and monitor these standards.
While this structure anchors newcomers in a well‑scoped agenda, aligning that agenda with each student’s interests and strengths is equally important. I regularly revisit goals and am open to adapting projects in dialogue, because for research to succeed, the agenda must become the student’s agenda. For women and underrepresented groups, this scaffolding, paired with visible role models, regular check‑ins, and proactive networking, helps build belonging and sustained motivation.
What advice would you give to young researchers entering programming languages and software engineering today, especially those navigating the balance between theoretical foundations and practical impact?
I am afraid my advice is not specific to programming languages or software engineering areas. Search for a concrete problem and formulate a clear problem statement. Sketch the thesis of your work based on that problem statement and the methodology for evaluating a prototype solution, then abstract to principles; iterate until both the theory and the implementation get sharper. Clear writing, rigorous evaluation, and reproducible artefacts are key, as the exposure to a peer network that challenges assumptions.
Theory and practice are complements, not competitors: strong foundations make impact durable, and real problems sharpen theory into something testable and useful. The most influential PL/SE work treats foundations as the engine of practical progress and real systems as the crucible in which theories are tested and refined.
Professor Mezini’s journey exemplifies the spirit of innovation and mentorship that defines the ACM community. Her reflections remind us that the most transformative technologies begin with strong foundations, creative thinking, and a commitment to empowering others — values that continue to shape the future of software engineering.